[*] Binary protection state of libuClibc-0.9.33.2.so
No RELRO Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of libuClibc-0.9.33.2.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x244f8 */
| #include <stdint.h>
|
; (fcn) fcn.000244f8 () | void fcn_000244f8 () {
0x000244f8 lui gp, 9 |
0x000244fc addiu gp, gp, 0x11e8 |
0x00024500 addu gp, gp, t9 | gp += t9;
0x00024504 lw a1, -0x75d0(gp) | a1 = *((gp - 7540));
0x00024508 lw a2, -0x7588(gp) | a2 = *((gp - 7522));
0x0002450c lw t9, -0x7604(gp) | t9 = *((gp - 7553));
0x00024510 addiu sp, sp, -0xc0 |
0x00024514 sw ra, 0xbc(sp) | *(var_bch) = ra;
0x00024518 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0002451c sw s3, 0xb0(sp) | *(var_b0h) = s3;
0x00024520 sw s0, 0xa4(sp) | *(var_a4h) = s0;
0x00024524 sw s5, 0xb8(sp) | *(var_b8h) = s5;
0x00024528 sw s4, 0xb4(sp) | *(var_b4h) = s4;
0x0002452c sw s2, 0xac(sp) | *(var_ach) = s2;
0x00024530 sw s1, 0xa8(sp) | *(var_a8h) = s1;
0x00024534 move s3, a0 | s3 = a0;
0x00024538 sw zero, 0x9c(sp) | *(var_9ch) = 0;
0x0002453c addiu a0, sp, 0x8c | a0 = sp + 0x8c;
0x00024540 jalr t9 | t9 ();
0x00024544 lw gp, 0x10(sp) | gp = *(var_10h);
0x00024548 lw a0, -0x7588(gp) | a0 = *((gp - 7522));
0x0002454c lw t9, -0x758c(gp) | t9 = *((gp - 7523));
0x00024550 jalr t9 | t9 ();
0x00024554 nop |
0x00024558 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002455c lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00024560 lw t9, -0x7f84(gp) | t9 = *((gp - 8161));
0x00024564 addiu a0, a0, -0x77e0 | a0 += -0x77e0;
0x00024568 jalr t9 | t9 ();
0x0002456c move s0, v0 | s0 = v0;
0x00024570 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00024574 bnez v0, 0x2472c | goto label_6;
| }
0x00024578 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x0002457c lw s2, -0x7f34(gp) | s2 = *((gp - 8141));
0x00024580 move a1, zero | a1 = 0;
0x00024584 move t9, s2 | t9 = s2;
0x00024588 addiu a0, a0, -0x7800 | a0 += -0x7800;
0x0002458c jalr t9 | t9 ();
0x00024590 move s1, v0 | s1 = v0;
0x00024594 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00024598 bltz v0, 0x245e4 |
0x0002459c lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x000245a0 addiu s2, sp, 0x18 | s2 = sp + 0x18;
0x000245a4 move a0, v0 | a0 = v0;
0x000245a8 move a1, s2 | a1 = s2;
0x000245ac addiu a2, zero, 0x44 | a2 = 0x44;
0x000245b0 jalr t9 | t9 ();
0x000245b4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x000245b8 bltz v0, 0x246d8 | goto label_7;
| }
0x000245bc addu v0, s2, v0 | v0 = s2 + v0;
0x000245c0 sltu v1, s2, v0 | v1 = (s2 < v0) ? 1 : 0;
0x000245c4 addiu v1, zero, 0xa | v1 = 0xa;
| if (v1 == 0) {
0x000245c8 beqz v1, 0x246d8 | goto label_7;
| }
0x000245cc lbu a0, -1(v0) | a0 = *(var_18h);
0x000245d0 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (a0 != v1) {
0x000245d4 bne a0, v1, 0x246dc | goto label_8;
| }
0x000245d8 sb zero, -1(v0) | *(var_18h) = 0;
0x000245dc move s0, s2 | s0 = s2;
0x000245e0 b 0x246dc | goto label_8;
| }
0x000245e4 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x000245e8 move a1, zero | a1 = 0;
0x000245ec move t9, s2 | t9 = s2;
0x000245f0 addiu a0, a0, -0x77f8 | a0 += -0x77f8;
0x000245f4 jalr t9 | t9 ();
0x000245f8 move s1, v0 | s1 = v0;
0x000245fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00024600 bltz v0, 0x246ec | goto label_0;
| }
0x00024604 lw s4, -0x7f98(gp) | s4 = *((gp - 8166));
0x00024608 addiu s2, sp, 0x18 | s2 = sp + 0x18;
0x0002460c move a0, v0 | a0 = v0;
0x00024610 move a1, s2 | a1 = s2;
0x00024614 move t9, s4 | t9 = s4;
0x00024618 addiu a2, zero, 0x44 | a2 = 0x44;
0x0002461c jalr t9 | t9 ();
0x00024620 addiu v1, zero, 0x44 | v1 = 0x44;
0x00024624 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != v1) {
0x00024628 bne v0, v1, 0x246d8 | goto label_7;
| }
0x0002462c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00024630 lw t9, -0x7d98(gp) | t9 = *((gp - 8038));
0x00024634 move a0, s2 | a0 = s2;
0x00024638 addiu a1, a1, -0x77e8 | a1 += -0x77e8;
0x0002463c addiu a2, zero, 4 | a2 = 4;
0x00024640 bal 0x3b810 | sym_strncmp ();
0x00024644 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00024648 bnez v0, 0x246d8 | goto label_7;
| }
0x0002464c lbu v0, 0x1c(sp) | v0 = *(var_1ch);
0x00024650 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00024654 lw t9, -0x7e80(gp) | t9 = *((gp - 8096));
| if (v0 != 0) {
0x00024658 bnez v0, 0x246d8 | goto label_7;
| }
0x0002465c move a0, s1 | a0 = s1;
0x00024660 addiu a1, zero, -0x44 | a1 = -0x44;
0x00024664 addiu a2, zero, 2 | a2 = 2;
0x00024668 bal 0xd9f0 | sym_lseek ();
0x0002466c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00024670 bltz v0, 0x246d8 | goto label_7;
| }
0x00024674 move a0, s1 | a0 = s1;
0x00024678 move a1, s2 | a1 = s2;
0x0002467c move t9, s4 | t9 = s4;
0x00024680 addiu a2, zero, 0x44 | a2 = 0x44;
0x00024684 jalr t9 | t9 ();
0x00024688 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 <= 0) {
0x0002468c blez v0, 0x246d8 | goto label_7;
| }
0x00024690 addiu v0, v0, -1 | v0 += -1;
0x00024694 addu v1, s2, v0 | v1 = s2 + v0;
0x00024698 lbu a1, (v1) | a1 = *(v1);
0x0002469c addiu a0, zero, 0xa | a0 = 0xa;
0x000246a0 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (a1 != a0) {
0x000246a4 bne a1, a0, 0x246dc | goto label_8;
| }
0x000246a8 sb zero, (v1) | *(v1) = 0;
0x000246ac addiu v1, zero, 0xa | v1 = 0xa;
0x000246b0 b 0x246cc |
| while (v0 != 0) {
0x000246b4 addu a0, s2, v0 | a0 = s2 + v0;
0x000246b8 lbu a0, (a0) | a0 = *(a0);
0x000246bc addiu s0, v0, 1 | s0 = v0 + 1;
| if (a0 == v1) {
0x000246c0 bne a0, v1, 0x246cc |
0x000246c4 addu s0, s2, s0 | s0 = s2 + s0;
0x000246c8 b 0x246d8 | goto label_7;
| }
0x000246cc addiu v0, v0, -1 | v0 += -1;
0x000246d0 bnez v0, 0x246b4 |
| }
0x000246d4 move s0, zero | s0 = 0;
| label_7:
0x000246d8 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| label_8:
0x000246dc move a0, s1 | a0 = s1;
0x000246e0 jalr t9 | t9 ();
0x000246e4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != 0) {
0x000246e8 bnez s0, 0x2472c | goto label_6;
| }
| label_0:
0x000246ec lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
| do {
| label_3:
0x000246f0 lw a0, -0x7d00(gp) | a0 = *((gp - 8000));
0x000246f4 lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
0x000246f8 move a1, zero | a1 = 0;
0x000246fc addiu a2, zero, 0x30 | a2 = 0x30;
0x00024700 sb zero, -0x1a18(v0) | *(v0) = 0;
0x00024704 bal 0x3a940 | sym_memset ();
0x00024708 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002470c lw a0, -0x7d00(gp) | a0 = *((gp - 8000));
0x00024710 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00024714 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00024718 addiu a0, a0, 0x10 | a0 += 0x10;
0x0002471c addiu a1, a1, -0x77dd | a1 += -0x77dd;
0x00024720 bal 0x3b600 | sym_strcpy ()
0x00024724 lw gp, 0x10(sp) | gp = *(var_10h);
0x00024728 b 0x24ac8 | goto label_9;
| label_6:
0x0002472c lbu v0, (s0) | v0 = *(s0);
0x00024730 beql v0, zero, 0x246f0 |
| } while (v0 == 0);
0x00024734 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
0x00024738 lw s1, -0x7ecc(gp) | s1 = *((gp - 8115));
0x0002473c xori v0, v0, 0x3a | v0 ^= 0x3a;
0x00024740 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00024744 lw t9, -0x7e94(gp) | t9 = *((gp - 8101));
0x00024748 addu s0, s0, v0 | s0 += v0;
0x0002474c move a0, s0 | a0 = s0;
0x00024750 addiu a1, s1, -0x1a18 | a1 = s1 + -aav.0x00001a18;
0x00024754 bal 0x3b5d0 | sym_strcmp ();
0x00024758 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0002475c beqz v0, 0x24afc | goto label_10;
| }
0x00024760 lw t9, -0x7ce4(gp) | t9 = *((gp - 7993));
0x00024764 addiu a0, s1, -0x1a18 | a0 = s1 + -aav.0x00001a18;
0x00024768 move a1, s0 | a1 = s0;
0x0002476c addiu a2, zero, 0x44 | a2 = 0x44;
0x00024770 bal 0x3b8e0 | sym_strncpy ();
0x00024774 lw gp, 0x10(sp) | gp = *(var_10h);
0x00024778 sb zero, 0x84(sp) | *(var_84h) = 0;
0x0002477c move s2, zero | s2 = 0;
0x00024780 lw s4, -0x7f74(gp) | s4 = *((gp - 8157));
0x00024784 lw s5, -0x7ddc(gp) | s5 = *((gp - 8055));
| label_2:
0x00024788 lbu a0, (s0) | a0 = *(s0);
0x0002478c addiu v0, zero, 0x3c | v0 = 0x3c;
0x00024790 move v1, zero | v1 = 0;
| if (a0 == v0) {
0x00024794 bne a0, v0, 0x247a0 |
0x00024798 addiu s0, s0, 1 | s0++;
0x0002479c addiu v1, zero, 0x3e | v1 = 0x3e;
| }
0x000247a0 addiu a1, zero, 0x18 | a1 = 0x18;
0x000247a4 mul a0, s2, a1 | __asm ("mul a0, s2, a1");
0x000247a8 addiu v0, sp, 0x5c | v0 = sp + 0x5c;
0x000247ac move s1, s0 | s1 = s0;
0x000247b0 addiu t0, zero, -0x80 | t0 = -0x80;
0x000247b4 addiu t1, zero, 0x2b | t1 = 0x2b;
0x000247b8 addiu a3, zero, 0x2d | a3 = 0x2d;
0x000247bc addiu t2, zero, 7 | t2 = 7;
0x000247c0 addu a1, a0, v0 | a1 = a0 + v0;
0x000247c4 addiu a1, a1, 0x10 | a1 += 0x10;
0x000247c8 move a0, zero | a0 = 0;
0x000247cc b 0x247e0 | goto label_11;
| label_1:
0x000247d0 sb v0, (a1) | *(a1) = v0;
0x000247d4 addiu s1, s1, 1 | s1++;
0x000247d8 addiu a1, a1, 1 | a1++;
| if (a0 == t2) {
0x000247dc beq a0, t2, 0x246ec | goto label_0;
| }
| label_11:
0x000247e0 lbu v0, (s1) | v0 = *(s1);
0x000247e4 and a2, v0, t0 | a2 = v0 & t0;
| if (v0 == 0) {
0x000247e8 beqz v0, 0x24834 | goto label_12;
| }
0x000247ec sll a2, v0, 1 | a2 = v0 << 1;
| if (a2 != 0) {
0x000247f0 bnez a2, 0x24834 | goto label_12;
| }
0x000247f4 lw t3, (s4) | t3 = *(s4);
0x000247f8 addu a2, t3, a2 | a2 = t3 + a2;
0x000247fc lhu a2, (a2) | a2 = *(a2);
0x00024800 andi t3, a2, 4 | t3 = a2 & 4;
0x00024804 andi t3, t3, 0xffff | t3 &= 0xffff;
0x00024808 addiu a0, a0, 1 | a0++;
| if (t3 == 0) {
0x0002480c bnel t3, zero, 0x247d0 | goto label_1;
| }
0x00024810 andi a2, a2, 0x800 | a2 &= aav.0x00000800;
| if (v1 == 0) {
0x00024814 beqz v1, 0x24834 | goto label_12;
| }
0x00024818 andi a2, a2, 0xffff | a2 &= 0xffff;
0x0002481c addiu a0, a0, 1 | a0++;
| if (a2 == 0) {
0x00024820 bnel a2, zero, 0x247d0 | goto label_1;
| }
| if (v0 == t1) {
0x00024824 beql v0, t1, 0x247d0 | goto label_1;
| }
0x00024828 addiu a0, a0, 1 | a0++;
| if (v0 == a3) {
0x0002482c beql v0, a3, 0x247d0 | goto label_1;
| }
0x00024830 addiu a0, a0, 1 | a0++;
| label_12:
0x00024834 slti a0, a0, 3 | a0 = (a0 < 3) ? 1 : 0;
0x00024838 sb zero, (a1) | *(a1) = 0;
| if (a0 != 0) {
0x0002483c bnez a0, 0x246ec | goto label_0;
| }
0x00024840 lbu v0, (s1) | v0 = *(s1);
| if (v1 == 0) {
0x00024844 beqz v1, 0x24854 | goto label_13;
| }
0x00024848 addiu s1, s1, 1 | s1++;
| if (v0 != v1) {
0x0002484c bne v0, v1, 0x246ec | goto label_0;
| }
0x00024850 lbu v0, (s1) | v0 = *(s1);
| label_13:
0x00024854 addiu v1, zero, 0x2d | v1 = 0x2d;
0x00024858 addiu v1, zero, 0x2b | v1 = 0x2b;
| if (v0 != v1) {
0x0002485c beq v0, v1, 0x24890 |
0x00024860 move a0, s1 | a0 = s1;
| if (v0 == v1) {
0x00024864 beq v0, v1, 0x24894 | goto label_14;
| }
0x00024868 addiu a0, s1, -1 | a0 = s1 + -1;
| if (s2 == 0) {
0x0002486c beqz s2, 0x24894 | goto label_14;
| }
0x00024870 addiu v0, v0, -0x30 | v0 += -0x30;
0x00024874 sltiu v0, v0, 0xa | v0 = (v0 < 0xa) ? 1 : 0;
0x00024878 lw v0, 0x9c(sp) | v0 = *(var_9ch);
| if (v0 != 0) {
0x0002487c bnez v0, 0x24894 | goto label_14;
| }
0x00024880 move s0, s1 | s0 = s1;
0x00024884 addiu v0, v0, -0xe10 | v0 += -0xe10;
0x00024888 sw v0, 0x9c(sp) | *(var_9ch) = v0;
0x0002488c b 0x248cc | goto label_15;
| }
0x00024890 move a0, s1 | a0 = s1;
| label_14:
0x00024894 addiu a0, a0, 1 | a0++;
0x00024898 addiu t9, s5, 0x4450 | t9 = s5 + 0x4450;
0x0002489c addiu a1, sp, 0x9c | a1 = sp + 0x9c;
0x000248a0 bal 0x24450 | fcn_00024450 ();
0x000248a4 move s0, v0 | s0 = v0;
0x000248a8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000248ac beqz v0, 0x246ec | goto label_0;
| }
0x000248b0 lbu v1, (s1) | v1 = *(s1);
0x000248b4 addiu v0, zero, 0x2d | v0 = 0x2d;
0x000248b8 addiu v1, zero, 0x18 | v1 = 0x18;
| if (v1 == v0) {
0x000248bc bne v1, v0, 0x248d0 |
0x000248c0 lw v0, 0x9c(sp) | v0 = *(var_9ch);
0x000248c4 negu v0, v0 | __asm ("negu v0, v0");
0x000248c8 sw v0, 0x9c(sp) | *(var_9ch) = v0;
| label_15:
0x000248cc addiu v1, zero, 0x18 | v1 = 0x18;
| }
0x000248d0 mul a1, s2, v1 | __asm ("mul a1, s2, v1");
0x000248d4 lw v0, 0x9c(sp) | v0 = *(var_9ch);
0x000248d8 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x000248dc addu v1, a1, a0 | v1 = a1 + a0;
0x000248e0 sw v0, 0x44(v1) | *(var_5ch) = v0;
| if (s2 != 0) {
0x000248e4 bnez s2, 0x24900 | goto label_16;
| }
0x000248e8 sw v0, 0x74(sp) | *(var_74h) = v0;
0x000248ec lbu v0, (s0) | v0 = *(s0);
0x000248f0 addiu s2, zero, 1 | s2 = 1;
| if (v0 != 0) {
0x000248f4 bnez v0, 0x24788 | goto label_2;
| }
0x000248f8 lw a0, -0x7d00(gp) | a0 = *((gp - 8000));
0x000248fc b 0x24ab4 | goto label_17;
| label_16:
0x00024900 lbu v0, (s0) | v0 = *(s0);
0x00024904 lw s2, -0x7fa8(gp) | s2 = *((gp - 8170));
| if (v0 == 0) {
0x00024908 bnez v0, 0x24928 |
| if (s3 != 0) {
0x0002490c beql s3, zero, 0x24920 |
0x00024910 lw s0, -0x7fa8(gp) | s0 = *((gp - 8170));
0x00024914 lw s0, -0x7fa8(gp) | s0 = *((gp - 8170));
0x00024918 addiu s0, s0, -0x77ca | s0 += -0x77ca;
0x0002491c b 0x24928 |
| } else {
0x00024920 addiu s0, s0, -0x77ba | s0 += -0x77ba;
0x00024924 lw s2, -0x7fa8(gp) | s2 = *((gp - 8170));
| }
| }
0x00024928 lw s3, -0x7fa8(gp) | s3 = *((gp - 8170));
0x0002492c lw s4, -0x7fa8(gp) | s4 = *((gp - 8170));
0x00024930 lw s5, -0x7ddc(gp) | s5 = *((gp - 8055));
0x00024934 move s1, zero | s1 = 0;
0x00024938 lbu v1, (s0) | v1 = *(s0);
| label_5:
0x0002493c addiu v0, zero, 0x2c | v0 = 0x2c;
0x00024940 addiu v1, zero, 0x4d | v1 = 0x4d;
| if (v1 != v0) {
0x00024944 bne v1, v0, 0x246ec | goto label_0;
| }
0x00024948 lbu v0, 1(s0) | v0 = *((s0 + 1));
0x0002494c addiu a2, s0, 2 | a2 = s0 + 2;
| if (v0 != v1) {
0x00024950 beq v0, v1, 0x24974 |
0x00024954 addiu v1, zero, 0x4a | v1 = 0x4a;
| if (v0 != v1) {
0x00024958 beql v0, v1, 0x24984 |
0x0002495c addiu a1, zero, 0x4a | a1 = 0x4a;
0x00024960 addiu a2, s0, 1 | a2 = s0 + 1;
0x00024964 move a1, zero | a1 = 0;
0x00024968 addiu v1, zero, 0x16d | v1 = 0x16d;
0x0002496c addiu v0, s4, -0x77d0 | v0 = s4 + -0x77d0;
0x00024970 b 0x2498c |
| } else {
0x00024974 addiu a1, zero, 0x4d | a1 = 0x4d;
0x00024978 addiu v1, zero, 0xc | v1 = 0xc;
0x0002497c addiu v0, s2, -0x77d6 | v0 = s2 + -0x77d6;
0x00024980 b 0x2498c |
| } else {
0x00024984 addiu v1, zero, 0x16d | v1 = 0x16d;
| }
0x00024988 addiu v0, s3, -0x77ce | v0 = s3 + -0x77ce;
| }
0x0002498c addiu t0, zero, 0x18 | t0 = 0x18;
0x00024990 mul t0, s1, t0 | __asm ("mul t0, s1, t0");
0x00024994 addiu a0, sp, 0x5c | a0 = sp + 0x5c;
0x00024998 move s0, a2 | s0 = a2;
0x0002499c addiu a3, t0, 8 | a3 = t0 + 8;
0x000249a0 addu a3, a0, a3 | a3 = a0 + a3;
0x000249a4 addu t0, sp, t0 | t0 = sp + t0;
0x000249a8 addiu a0, a3, 6 | a0 = a3 + 6;
0x000249ac sh a1, 0x6a(t0) | *(var_6h) = a1;
0x000249b0 addiu a3, a3, 2 | a3 += 2;
0x000249b4 xori a1, a1, 0x4d | a1 ^= 0x4d;
| if (a1 == 0) {
0x000249b8 movn a0, a3, a1 | a0 = a3;
| }
0x000249bc addiu t0, zero, 0xa | t0 = 0xa;
0x000249c0 b 0x249c8 | goto label_18;
| label_4:
0x000249c4 move v0, a1 | v0 = a1;
| label_18:
0x000249c8 addiu a2, zero, 3 | a2 = 3;
0x000249cc move a1, zero | a1 = 0;
0x000249d0 b 0x249e4 |
| while (t1 != 0) {
0x000249d4 addiu a2, a2, -1 | a2 += -1;
0x000249d8 addiu s0, s0, 1 | s0++;
0x000249dc addu a1, t1, a3 | a1 = t1 + a3;
| if (a2 == 0) {
0x000249e0 beqz a2, 0x249f8 | goto label_19;
| }
0x000249e4 lbu a3, (s0) | a3 = *(s0);
0x000249e8 addiu a3, a3, -0x30 | a3 += -0x30;
0x000249ec sltiu t1, a3, 0xa | t1 = (a3 < 0xa) ? 1 : 0;
0x000249f0 mul t1, a1, t0 | __asm ("mul t1, a1, t0");
0x000249f4 bnez t1, 0x249d4 |
| }
| label_19:
0x000249f8 addiu a3, zero, 3 | a3 = 3;
| if (a2 == a3) {
0x000249fc beql a2, a3, 0x246f0 | goto label_3;
| }
0x00024a00 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
| if (s0 == 0) {
0x00024a04 beql s0, zero, 0x246f0 | goto label_3;
| }
0x00024a08 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
0x00024a0c lbu a2, 2(v0) | a2 = *((v0 + 2));
0x00024a10 subu a2, a1, a2 | __asm ("subu a2, a1, a2");
0x00024a14 sltu v1, v1, a2 | v1 = (v1 < a2) ? 1 : 0;
0x00024a18 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
| if (v1 == 0) {
0x00024a1c bnel v1, zero, 0x246f0 | goto label_3;
| }
0x00024a20 lbu v1, 1(v0) | v1 = *((v0 + 1));
| if (v1 == 0) {
0x00024a24 beql v1, zero, 0x24a3c | goto label_20;
| }
0x00024a28 lbu v1, 3(v0) | v1 = *((v0 + 3));
0x00024a2c lbu a2, (s0) | a2 = *(s0);
0x00024a30 addiu s0, s0, 1 | s0++;
| if (a2 != v1) {
0x00024a34 bne a2, v1, 0x246ec | goto label_0;
| }
0x00024a38 lbu v1, 3(v0) | v1 = *((v0 + 3));
| label_20:
0x00024a3c addiu a0, a0, -2 | a0 += -2;
0x00024a40 sh a1, (a0) | *(a0) = a1;
0x00024a44 addiu a1, v0, 3 | a1 = v0 + 3;
| if (v1 != 0) {
0x00024a48 bnez v1, 0x249c4 | goto label_4;
| }
0x00024a4c addiu v0, zero, 0x1c20 | v0 = 0x1c20;
0x00024a50 sw v0, 0x9c(sp) | *(var_9ch) = v0;
0x00024a54 lbu v1, (s0) | v1 = *(s0);
0x00024a58 addiu v0, zero, 0x2f | v0 = 0x2f;
0x00024a5c addiu v0, zero, 0x18 | v0 = 0x18;
| if (v1 != v0) {
0x00024a60 bne v1, v0, 0x24a84 | goto label_21;
| }
0x00024a64 addiu a0, s0, 1 | a0 = s0 + 1;
0x00024a68 addiu t9, s5, 0x4450 | t9 = s5 + 0x4450;
0x00024a6c addiu a1, sp, 0x9c | a1 = sp + 0x9c;
0x00024a70 bal 0x24450 | fcn_00024450 ();
0x00024a74 move s0, v0 | s0 = v0;
0x00024a78 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00024a7c beqz v0, 0x246ec | goto label_0;
| }
0x00024a80 addiu v0, zero, 0x18 | v0 = 0x18;
| label_21:
0x00024a84 mul v1, s1, v0 | __asm ("mul v1, s1, v0");
0x00024a88 addiu s1, s1, 1 | s1++;
0x00024a8c addu v0, v1, sp | v0 = v1 + sp;
0x00024a90 lw v1, 0x9c(sp) | v1 = *(var_9ch);
0x00024a94 sw v1, 0x60(v0) | *(var_60h) = v1;
0x00024a98 addiu v0, zero, 1 | v0 = 1;
| if (s1 == v0) {
0x00024a9c beql s1, v0, 0x2493c | goto label_5;
| }
0x00024aa0 lbu v1, (s0) | v1 = *(s0);
0x00024aa4 lbu v0, (s0) | v0 = *(s0);
0x00024aa8 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
| if (v0 != 0) {
0x00024aac bnez v0, 0x246f0 | goto label_3;
| }
0x00024ab0 lw a0, -0x7d00(gp) | a0 = *((gp - 8000));
| label_17:
0x00024ab4 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00024ab8 addiu a1, sp, 0x5c | a1 = sp + 0x5c;
0x00024abc addiu a2, zero, 0x30 | a2 = 0x30;
0x00024ac0 bal 0x3a800 | sym_memcpy ();
0x00024ac4 lw gp, 0x10(sp) | gp = *(var_10h);
| label_9:
0x00024ac8 lw v0, -0x7d00(gp) | v0 = *((gp - 8000));
0x00024acc lw v1, -0x75b8(gp) | v1 = *((gp - 7534));
0x00024ad0 addiu a0, v0, 0x10 | a0 = v0 + 0x10;
0x00024ad4 sw a0, (v1) | *(v1) = a0;
0x00024ad8 addiu a0, v0, 0x28 | a0 = v0 + 0x28;
0x00024adc sw a0, 4(v1) | *((v1 + 1)) = a0;
0x00024ae0 lbu a0, 0x28(v0) | a0 = *((v0 + 40));
0x00024ae4 lw v1, -0x7580(gp) | v1 = *((gp - 7520));
0x00024ae8 sltu a0, zero, a0 | a0 = (0 < a0) ? 1 : 0;
0x00024aec sw a0, (v1) | *(v1) = a0;
0x00024af0 lw v1, (v0) | v1 = *(v0);
0x00024af4 lw v0, -0x75f0(gp) | v0 = *((gp - 7548));
0x00024af8 sw v1, (v0) | *(v0) = v1;
| label_10:
0x00024afc lw t9, -0x75ac(gp) | t9 = *((gp - 7531));
0x00024b00 addiu a0, sp, 0x8c | a0 = sp + 0x8c;
0x00024b04 addiu a1, zero, 1 | a1 = 1;
0x00024b08 jalr t9 | t9 ();
0x00024b0c lw ra, 0xbc(sp) | ra = *(var_bch);
0x00024b10 lw s5, 0xb8(sp) | s5 = *(var_b8h);
0x00024b14 lw s4, 0xb4(sp) | s4 = *(var_b4h);
0x00024b18 lw s3, 0xb0(sp) | s3 = *(var_b0h);
0x00024b1c lw s2, 0xac(sp) | s2 = *(var_ach);
0x00024b20 lw s1, 0xa8(sp) | s1 = *(var_a8h);
0x00024b24 lw s0, 0xa4(sp) | s0 = *(var_a4h);
0x00024b28 addiu sp, sp, 0xc0 |
0x00024b2c jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x252c0 */
| #include <stdint.h>
|
; (fcn) fcn.000252c0 () | void fcn_000252c0 () {
0x000252c0 lui gp, 9 |
0x000252c4 addiu gp, gp, 0x420 |
0x000252c8 addu gp, gp, t9 | gp += t9;
0x000252cc addiu sp, sp, -0x50 |
0x000252d0 sw s3, 0x34(sp) | *(var_34h) = s3;
0x000252d4 lw s3, -0x7fa8(gp) | s3 = *((gp - 8170));
0x000252d8 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x000252dc sw s4, 0x38(sp) | *(var_38h) = s4;
0x000252e0 sw s2, 0x30(sp) | *(var_30h) = s2;
0x000252e4 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x000252e8 sw s0, 0x28(sp) | *(var_28h) = s0;
0x000252ec sw gp, 0x10(sp) | *(var_10h) = gp;
0x000252f0 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x000252f4 sw fp, 0x48(sp) | *(var_48h) = fp;
0x000252f8 sw s7, 0x44(sp) | *(var_44h) = s7;
0x000252fc sw s6, 0x40(sp) | *(var_40h) = s6;
0x00025300 move s4, a0 | s4 = a0;
0x00025304 move s0, a1 | s0 = a1;
0x00025308 move s2, a2 | s2 = a2;
0x0002530c move s1, zero | s1 = 0;
0x00025310 addiu s5, s3, -0x7760 | s5 = s3 + -0x7760;
| label_0:
0x00025314 addiu s6, zero, 0x18 | s6 = 0x18;
0x00025318 mul v0, s1, s6 | __asm ("mul v0, s1, s6");
0x0002531c lui v1, 9 | v1 = 0x93a80;
0x00025320 ori v1, v1, 0x3a80 |
0x00025324 lui a1, 0x7ff6 | a1 = 0x7ff6c580;
0x00025328 ori a1, a1, 0xc580 |
0x0002532c addu s6, v0, s2 | s6 = v0 + s2;
0x00025330 lw v0, (s6) | v0 = *(s6);
0x00025334 subu v0, v1, v0 | __asm ("subu v0, v1, v0");
0x00025338 lw v1, (s4) | v1 = *(s4);
0x0002533c slt a0, v1, a1 | a0 = (v1 < a1) ? 1 : 0;
0x00025340 addiu a1, zero, -7 | a1 = -7;
| if (a0 == 0) {
0x00025344 bnez a0, 0x25350 |
0x00025348 negu v0, v0 | __asm ("negu v0, v0");
0x0002534c addiu a1, zero, 7 | a1 = 7;
| }
0x00025350 lw t9, -0x7d08(gp) | t9 = *((gp - 8002));
0x00025354 addu v0, v1, v0 | v0 = v1 + v0;
0x00025358 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0002535c addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00025360 move a2, s0 | a2 = s0;
0x00025364 bal 0x24b80 | fcn_00024b80 ();
0x00025368 lw gp, 0x10(sp) | gp = *(var_10h);
0x0002536c lw v0, (s6) | v0 = *(s6);
0x00025370 sw s1, 0x20(s0) | *((s0 + 8)) = s1;
0x00025374 lw s7, -0x7654(gp) | s7 = *((gp - 7573));
0x00025378 lw t9, -0x7e94(gp) | t9 = *((gp - 8101));
0x0002537c negu v0, v0 | __asm ("negu v0, v0");
0x00025380 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00025384 addiu s6, s6, 0x10 | s6 += 0x10;
0x00025388 addiu fp, s7, 4 | fp = s7 + 4;
| do {
0x0002538c sw t9, 0x20(sp) | *(var_20h) = t9;
0x00025390 move a0, fp | a0 = fp;
0x00025394 move a1, s6 | a1 = s6;
0x00025398 jalr t9 | t9 ();
0x0002539c lw gp, 0x10(sp) | gp = *(var_10h);
0x000253a0 lw t9, 0x20(sp) | t9 = *(var_20h);
| if (v0 == 0) {
0x000253a4 beqz v0, 0x25418 | goto label_1;
| }
0x000253a8 lw s7, (s7) | s7 = *(s7);
0x000253ac addiu fp, s7, 4 | fp = s7 + 4;
0x000253b0 bnel s7, zero, 0x2538c |
| } while (s7 == 0);
0x000253b4 lw t9, -0x7cd8(gp) | t9 = *((gp - 7990));
0x000253b8 move a0, s6 | a0 = s6;
0x000253bc addiu a1, zero, 7 | a1 = 7;
0x000253c0 bal 0x3b9c0 | sym_strnlen ();
0x000253c4 slti v1, v0, 7 | v1 = (v0 < 7) ? 1 : 0;
0x000253c8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000253cc bnez v1, 0x253dc |
| while (v0 == 0) {
0x000253d0 lw fp, -0x7584(gp) | fp = *((gp - 7521));
0x000253d4 addiu fp, fp, 4 | fp += 4;
0x000253d8 b 0x25418 | goto label_1;
0x000253dc lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x000253e0 addiu a0, v0, 8 | a0 = v0 + 8;
0x000253e4 jalr t9 | t9 ();
0x000253e8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000253ec beqz v0, 0x253d0 |
| }
0x000253f0 lw v1, -0x7584(gp) | v1 = *((gp - 7521));
0x000253f4 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x000253f8 move a1, s6 | a1 = s6;
0x000253fc lw a0, (v1) | a0 = *(v1);
0x00025400 sw v0, (v1) | *(v1) = v0;
0x00025404 sw a0, (v0) | *(v0) = a0;
0x00025408 addiu a0, v0, 4 | a0 = v0 + 4;
0x0002540c bal 0x3b600 | sym_strcpy ()
0x00025410 lw gp, 0x10(sp) | gp = *(var_10h);
0x00025414 move fp, v0 | fp = v0;
| label_1:
0x00025418 addiu s1, s1, 1 | s1++;
0x0002541c addiu v0, zero, 1 | v0 = 1;
0x00025420 sw fp, 0x28(s0) | *((s0 + 10)) = fp;
| if (s1 != v0) {
0x00025424 bne s1, v0, 0x25638 | goto label_2;
| }
0x00025428 lbu v0, 0x28(s2) | v0 = *((s2 + 40));
0x0002542c move a1, zero | a1 = 0;
| if (v0 == 0) {
0x00025430 beqz v0, 0x2562c | goto label_3;
| }
0x00025434 lw v1, 0x1c(s0) | v1 = *((s0 + 7));
0x00025438 addiu t1, zero, 0x18 | t1 = 0x18;
0x0002543c lw v0, 8(s0) | v0 = *((s0 + 2));
0x00025440 mul a0, t1, v1 | __asm ("mul a0, t1, v1");
0x00025444 lw v1, 4(s0) | v1 = *((s0 + 1));
0x00025448 addu t1, a0, v0 | t1 = a0 + v0;
0x0002544c addiu v0, zero, 0x3c | v0 = 0x3c;
0x00025450 mul a0, t1, v0 | __asm ("mul a0, t1, v0");
0x00025454 addu t1, a0, v1 | t1 = a0 + v1;
0x00025458 mul a0, t1, v0 | __asm ("mul a0, t1, v0");
0x0002545c lw v1, (s0) | v1 = *(s0);
0x00025460 addu t1, a0, v1 | t1 = a0 + v1;
0x00025464 lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x00025468 addiu a0, zero, 0x190 | a0 = aav.0x00000190;
0x0002546c div zero, v1, a0 | __asm ("div zero, v1, a0");
0x00025470 teq a0, zero, 7 | __asm ("teq a0, zero, 7");
0x00025474 mfhi v1 | __asm ("mfhi v1");
0x00025478 addiu v0, v1, 0x76c | v0 = v1 + 0x76c;
0x0002547c andi a1, v0, 3 | a1 = v0 & 3;
0x00025480 move a3, zero | a3 = 0;
| if (a1 == 0) {
0x00025484 bnez a1, 0x254bc |
0x00025488 addiu a1, zero, 0x64 | a1 = 0x64;
0x0002548c div zero, v0, a1 | __asm ("div zero, v0, a1");
0x00025490 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x00025494 mfhi a2 | __asm ("mfhi a2");
| if (a2 != 0) {
0x00025498 beqz a2, 0x254a8 |
0x0002549c nop |
0x000254a0 addiu a3, zero, 1 | a3 = 1;
0x000254a4 b 0x254bc |
| } else {
0x000254a8 div zero, v0, a0 | __asm ("div zero, v0, a0");
0x000254ac teq a0, zero, 7 | __asm ("teq a0, zero, 7");
0x000254b0 mfhi a1 | __asm ("mfhi a1");
| if (a1 == 0) {
0x000254b4 beql a1, zero, 0x254bc | goto label_4;
| }
0x000254b8 addiu a3, zero, 1 | a3 = 1;
| }
| }
| label_4:
0x000254bc addiu v1, v1, 0x76b | v1 += 0x76b;
0x000254c0 addiu a0, zero, -0x64 | a0 = -0x64;
0x000254c4 div zero, v1, a0 | __asm ("div zero, v1, a0");
0x000254c8 teq a0, zero, 7 | __asm ("teq a0, zero, 7");
0x000254cc sra t7, v1, 2 | t7 = v1 >> 2;
0x000254d0 addiu a0, zero, 0x190 | a0 = aav.0x00000190;
0x000254d4 addu t7, v0, t7 | t7 = v0 + t7;
0x000254d8 lui t6, 1 | t6 = 0x10000;
0x000254dc move t4, zero | t4 = 0;
0x000254e0 move a1, zero | a1 = 0;
0x000254e4 move a2, zero | a2 = 0;
0x000254e8 addiu t8, zero, 0x4a | t8 = 0x4a;
0x000254ec addiu t9, zero, 0x4d | t9 = 0x4d;
0x000254f0 addiu s6, s3, -0x7760 | s6 = s3 + -0x7760;
0x000254f4 addiu s7, zero, 0x1f | s7 = 0x1f;
0x000254f8 addiu t2, zero, 7 | t2 = 7;
0x000254fc addiu t6, t6, 0x5180 | t6 += 0x5180;
0x00025500 addiu t5, zero, 1 | t5 = 1;
0x00025504 mflo v0 | __asm ("mflo v0");
0x00025508 addu t7, t7, v0 | t7 += v0;
0x0002550c div zero, v1, a0 | __asm ("div zero, v1, a0");
0x00025510 teq a0, zero, 7 | __asm ("teq a0, zero, 7");
0x00025514 addiu v1, zero, 7 | v1 = 7;
0x00025518 mflo v0 | __asm ("mflo v0");
0x0002551c addu t7, t7, v0 | t7 += v0;
0x00025520 move v0, s2 | v0 = s2;
0x00025524 div zero, t7, v1 | __asm ("div zero, t7, v1");
0x00025528 teq v1, zero, 7 | __asm ("teq v1, zero, 7");
0x0002552c mfhi t7 | __asm ("mfhi t7");
0x00025530 b 0x25538 |
| while (a2 == t5) {
0x00025534 move t4, v1 | t4 = v1;
0x00025538 lh a0, 0xe(v0) | a0 = *((v0 + 7));
0x0002553c lh v1, 8(v0) | v1 = *((v0 + 4));
| if (a0 == t8) {
0x00025540 bne a0, t8, 0x25560 |
| if (a3 == 0) {
0x00025544 beql a3, zero, 0x255e8 | goto label_5;
| }
0x00025548 addiu v1, v1, -1 | v1 += -1;
0x0002554c slti a0, v1, 0x3c | a0 = (v1 < 0x3c) ? 1 : 0;
| if (a0 == 0) {
0x00025550 beqz a0, 0x255e8 | goto label_5;
| }
0x00025554 nop |
0x00025558 addiu v1, v1, -1 | v1 += -1;
0x0002555c b 0x255e8 |
| if (a0 != t9) {
| } else {
0x00025560 bne a0, t9, 0x255e8 | goto label_5;
| }
0x00025564 nop |
0x00025568 lh t0, 0xc(v0) | t0 = *((v0 + 6));
0x0002556c addu a0, t0, s6 | a0 = t0 + s6;
0x00025570 lbu t3, -1(a0) | t3 = *((a0 - 1));
0x00025574 mul a0, t0, s7 | __asm ("mul a0, t0, s7");
0x00025578 subu a0, a0, t3 | __asm ("subu a0, a0, t3");
| if (a3 != 0) {
0x0002557c beqz a3, 0x2558c |
0x00025580 slti fp, a0, 0x3b | fp = (a0 < 0x3b) ? 1 : 0;
0x00025584 sltiu fp, fp, 1 | fp = (fp < 1) ? 1 : 0;
0x00025588 addu a0, a0, fp | a0 += fp;
| }
0x0002558c addu fp, s5, t0 | fp = s5 + t0;
0x00025590 lbu fp, (fp) | fp = *(fp);
0x00025594 addiu t3, t3, 0x1f | t3 += 0x1f;
0x00025598 subu t3, t3, fp | __asm ("subu t3, t3, fp");
| if (a3 != 0) {
0x0002559c beqz a3, 0x255ac |
0x000255a0 xori t0, t0, 2 | t0 ^= 2;
0x000255a4 sltiu t0, t0, 1 | t0 = (t0 < 1) ? 1 : 0;
0x000255a8 addu t3, t3, t0 | t3 += t0;
| }
0x000255ac addu t0, t7, a0 | t0 = t7 + a0;
0x000255b0 div zero, t0, t2 | __asm ("div zero, t0, t2");
0x000255b4 teq t2, zero, 7 | __asm ("teq t2, zero, 7");
0x000255b8 mfhi fp | __asm ("mfhi fp");
0x000255bc subu v1, v1, fp | __asm ("subu v1, v1, fp");
0x000255c0 addiu t0, v1, -7 | t0 = v1 + -7;
0x000255c4 slti fp, v1, 0 | fp = (v1 < 0) ? 1 : 0;
| if (fp != 0) {
0x000255c8 movz v1, t0, fp | v1 = t0;
| }
0x000255cc lh t0, 0xa(v0) | t0 = *((v0 + 5));
0x000255d0 mul fp, t0, t2 | __asm ("mul fp, t0, t2");
0x000255d4 addu v1, fp, v1 | v1 = fp + v1;
0x000255d8 slt t3, v1, t3 | t3 = (v1 < t3) ? 1 : 0;
0x000255dc addiu t0, v1, -7 | t0 = v1 + -7;
| if (t3 != 0) {
0x000255e0 movz v1, t0, t3 | v1 = t0;
| }
0x000255e4 addu v1, a0, v1 | v1 = a0 + v1;
| }
| label_5:
0x000255e8 mul t0, v1, t6 | __asm ("mul t0, v1, t6");
| if (a2 != 0) {
0x000255ec beqz a2, 0x2560c |
0x000255f0 lw t0, -0x18(v0) | t0 = *((v0 - 6));
0x000255f4 lw a0, (v0) | a0 = *(v0);
0x000255f8 slt t4, v1, t4 | t4 = (v1 < t4) ? 1 : 0;
0x000255fc addu a1, a1, t4 | a1 += t4;
0x00025600 subu a0, t0, a0 | __asm ("subu a0, t0, a0");
0x00025604 addu t1, t1, a0 | t1 += a0;
0x00025608 mul t0, v1, t6 | __asm ("mul t0, v1, t6");
| }
0x0002560c lw a0, 4(v0) | a0 = *((v0 + 1));
0x00025610 addiu a2, a2, 1 | a2++;
0x00025614 addiu v0, v0, 0x18 | v0 += 0x18;
0x00025618 addu a0, t0, a0 | a0 = t0 + a0;
0x0002561c slt a0, t1, a0 | a0 = (t1 < a0) ? 1 : 0;
0x00025620 sltiu a0, a0, 1 | a0 = (a0 < 1) ? 1 : 0;
0x00025624 addu a1, a1, a0 | a1 += a0;
0x00025628 beq a2, t5, 0x25534 |
| }
| label_3:
0x0002562c andi a1, a1, 1 | a1 &= 1;
0x00025630 sw a1, 0x20(s0) | *((s0 + 8)) = a1;
| if (a1 != 0) {
0x00025634 bnez a1, 0x25314 | goto label_0;
| }
| label_2:
0x00025638 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0002563c move v0, s0 | v0 = s0;
0x00025640 lw fp, 0x48(sp) | fp = *(var_48h);
0x00025644 lw s7, 0x44(sp) | s7 = *(var_44h);
0x00025648 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0002564c lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00025650 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00025654 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00025658 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0002565c lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00025660 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00025664 addiu sp, sp, 0x50 |
0x00025668 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x356d0 */
| #include <stdint.h>
|
; (fcn) fcn.000356d0 () | void fcn_000356d0 () {
0x000356d0 lui gp, 8 |
0x000356d4 addiu gp, gp, 0x10 |
0x000356d8 addu gp, gp, t9 | gp += t9;
0x000356dc lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x000356e0 lw v1, 0x3c(a0) | v1 = *((a0 + 15));
0x000356e4 addiu sp, sp, -0x108 |
0x000356e8 addiu v0, v0, -0x6e50 | v0 += -0x6e50;
0x000356ec addu v0, v1, v0 | v0 = v1 + v0;
0x000356f0 sw s1, 0xe4(sp) | *(var_e4h) = s1;
0x000356f4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000356f8 lbu s1, -1(v0) | s1 = *((v0 - 1));
0x000356fc addiu v0, zero, 1 | v0 = 1;
0x00035700 sw s7, 0xfc(sp) | *(var_fch) = s7;
0x00035704 sw s0, 0xe0(sp) | *(var_e0h) = s0;
0x00035708 sw ra, 0x104(sp) | *(var_104h) = ra;
0x0003570c sw fp, 0x100(sp) | *(var_100h) = fp;
0x00035710 sw s6, 0xf8(sp) | *(var_f8h) = s6;
0x00035714 sw s5, 0xf4(sp) | *(var_f4h) = s5;
0x00035718 sw s4, 0xf0(sp) | *(var_f0h) = s4;
0x0003571c sw s3, 0xec(sp) | *(var_ech) = s3;
0x00035720 sw s2, 0xe8(sp) | *(var_e8h) = s2;
0x00035724 move s0, a0 | s0 = a0;
0x00035728 move s7, a1 | s7 = a1;
0x0003572c sw v1, 0xd0(sp) | *(var_d0h) = v1;
| if (v1 != v0) {
0x00035730 bne v1, v0, 0x357c8 | goto label_3;
| }
0x00035734 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x00035738 lw s4, -0x7b80(gp) | s4 = *((gp - 7904));
0x0003573c addiu s2, v0, -0x6f9c | s2 = v0 + -0x6f9c;
0x00035740 move s3, v0 | s3 = v0;
0x00035744 move t9, s4 | t9 = s4;
| do {
0x00035748 move a0, s7 | a0 = s7;
0x0003574c bal 0x3531c | fcn_0003531c ();
0x00035750 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x00035754 bltz v0, 0x35768 |
0x00035758 lbu a0, (s2) | a0 = *(s2);
0x0003575c lw v0, (s7) | v0 = *(s7);
| if (a0 == v0) {
0x00035760 beql a0, v0, 0x3578c | goto label_4;
| }
0x00035764 addiu s2, s2, 1 | s2++;
| }
0x00035768 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x0003576c addiu s3, s3, -0x6f9c | s3 += -0x6f9c;
0x00035770 move a0, s7 | a0 = s7;
0x00035774 sltu s2, s3, s2 | s2 = (s3 < s2) ? 1 : 0;
0x00035778 bal 0x353b4 | fcn_000353b4 ();
0x0003577c lw gp, 0x10(sp) | gp = *(var_10h);
| if (s2 == 0) {
0x00035780 beqz s2, 0x357c8 | goto label_3;
| }
0x00035784 addiu v0, zero, -2 | v0 = -2;
0x00035788 b 0x36054 | goto label_5;
| label_4:
0x0003578c lbu v0, (s2) | v0 = *(s2);
0x00035790 move t9, s4 | t9 = s4;
0x00035794 bnez v0, 0x35748 |
| } while (v0 != 0);
0x00035798 lbu v0, 0x44(s0) | v0 = *((s0 + 68));
0x0003579c lw v0, 0x34(s0) | v0 = *((s0 + 13));
| if (v0 != 0) {
0x000357a0 bnel v0, zero, 0x357ac |
0x000357a4 move v0, zero | v0 = 0;
0x000357a8 b 0x36054 | goto label_5;
| }
0x000357ac lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x000357b0 lw a1, 0x38(s0) | a1 = *((s0 + 14));
0x000357b4 addiu v0, v0, 1 | v0++;
0x000357b8 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
0x000357bc move a2, zero | a2 = 0;
0x000357c0 move a3, zero | a3 = 0;
0x000357c4 b 0x35cd8 | goto label_6;
| label_3:
0x000357c8 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x000357cc move a0, s7 | a0 = s7;
0x000357d0 bal 0x3531c | fcn_0003531c ();
0x000357d4 lw v0, (s7) | v0 = *(s7);
0x000357d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x000357dc bltz v0, 0x36050 | goto label_7;
| }
0x000357e0 addiu a0, zero, 0x2b | a0 = 0x2b;
0x000357e4 addiu a0, zero, 0x2d | a0 = 0x2d;
| if (v0 != a0) {
0x000357e8 beq v0, a0, 0x357f4 |
0x000357ec addiu fp, sp, 0x18 | fp = sp + 0x18;
| if (v0 != a0) {
0x000357f0 bne v0, a0, 0x3580c | goto label_8;
| }
| }
0x000357f4 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x000357f8 sb v0, 0x18(sp) | *(var_18h) = v0;
0x000357fc move a0, s7 | a0 = s7;
0x00035800 bal 0x3531c | fcn_0003531c ();
0x00035804 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035808 addiu fp, sp, 0x19 | fp = sp + 0x19;
| label_8:
0x0003580c andi v0, s1, 0xef | v0 = s1 & 0xef;
0x00035810 lbu v0, 0x45(s0) | v0 = *((s0 + 69));
| if (v0 != 0) {
0x00035814 bnel v0, zero, 0x358b8 |
0x00035818 lw s2, (s7) | s2 = *(s7);
0x0003581c addiu v0, zero, 0x30 | v0 = 0x30;
0x00035820 addiu v0, zero, 0xa | v0 = 0xa;
| if (s2 == v0) {
0x00035824 bne s2, v0, 0x358a8 |
0x00035828 lw s4, -0x7b80(gp) | s4 = *((gp - 7904));
0x0003582c move t9, s4 | t9 = s4;
0x00035830 move a0, s7 | a0 = s7;
0x00035834 bal 0x3531c | fcn_0003531c ();
0x00035838 lw s3, (s7) | s3 = *(s7);
0x0003583c addiu v0, zero, 0x78 | v0 = 0x78;
0x00035840 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035844 ori s3, s3, 0x20 | s3 |= 0x20;
0x00035848 move a0, s7 | a0 = s7;
| if (s3 == v0) {
0x0003584c bne s3, v0, 0x35878 |
0x00035850 move t9, s4 | t9 = s4;
0x00035854 bal 0x3531c | fcn_0003531c ();
0x00035858 nop |
0x0003585c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00035860 bltz v0, 0x3603c | goto label_9;
| }
0x00035864 sb s2, (fp) | *(fp) = s2;
0x00035868 sb s3, 1(fp) | *(var_1h) = s3;
0x0003586c addiu s1, zero, 0x10 | s1 = 0x10;
0x00035870 addiu fp, fp, 2 | fp += 2;
0x00035874 b 0x358b4 |
0x00035878 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x0003587c bal 0x353b4 | fcn_000353b4 ();
0x00035880 nop |
0x00035884 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035888 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003588c slti v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x00035890 sw s2, (s7) | *(s7) = s2;
| } else {
| } else {
| }
| }
| if (v0 != 0) {
0x00035894 beqz v0, 0x358b0 |
0x00035898 ext s1, s1, 1, 8 | __asm ("ext s1, s1, 1, 8");
0x0003589c addiu s1, s1, 8 | s1 += 8;
0x000358a0 andi s1, s1, 0xff | s1 &= 0xff;
0x000358a4 b 0x358b4 |
| if (s1 != 0) {
0x000358a8 movz s1, v0, s1 | s1 = v0;
| }
0x000358ac b 0x358b4 |
| } else {
0x000358b0 addiu s1, zero, 0xa | s1 = 0xa;
| }
0x000358b4 lbu v0, 0x45(s0) | v0 = *((s0 + 69));
| }
0x000358b8 andi v0, v0, 0x20 | v0 &= 0x20;
0x000358bc andi v0, v0, 0xff | v0 &= 0xff;
0x000358c0 move s2, zero | s2 = 0;
| if (v0 == 0) {
0x000358c4 beqz v0, 0x35b78 | goto label_10;
| }
0x000358c8 addiu v0, zero, 0xa | v0 = 0xa;
0x000358cc move s3, zero | s3 = 0;
| if (s1 != v0) {
0x000358d0 bne s1, v0, 0x35b7c | goto label_11;
| }
0x000358d4 lw v0, 0x30(s7) | v0 = *((s7 + 12));
0x000358d8 lbu s5, (v0) | s5 = *(v0);
| if (s5 == 0) {
0x000358dc beql s5, zero, 0x35b80 | goto label_12;
| }
0x000358e0 lw v0, (s7) | v0 = *(s7);
0x000358e4 lbu t1, 1(v0) | t1 = *((v0 + 1));
| if (t1 != 0) {
0x000358e8 beql t1, zero, 0x35904 |
0x000358ec sw s5, 0xd4(sp) | *(var_d4h) = s5;
0x000358f0 slt v0, s5, t1 | v0 = (s5 < t1) ? 1 : 0;
0x000358f4 move v1, s5 | v1 = s5;
| if (v0 == 0) {
0x000358f8 movn v1, t1, v0 | v1 = t1;
| }
0x000358fc sw v1, 0xd4(sp) | *(var_d4h) = v1;
0x00035900 b 0x35908 |
| } else {
0x00035904 move t1, s5 | t1 = s5;
| }
0x00035908 lw v0, (s7) | v0 = *(s7);
0x0003590c addiu a0, v0, -0x30 | a0 = v0 + -0x30;
0x00035910 sltiu a0, a0, 0xa | a0 = (a0 < 0xa) ? 1 : 0;
0x00035914 addiu a0, zero, 0x30 | a0 = 0x30;
| if (a0 == 0) {
0x00035918 bnez a0, 0x35934 |
0x0003591c lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035920 slti v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x00035924 move s2, zero | s2 = 0;
| if (v0 == 0) {
0x00035928 beqz v0, 0x35cec | goto label_13;
| }
0x0003592c lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035930 b 0x36040 | goto label_14;
| }
0x00035934 move s2, zero | s2 = 0;
| if (v0 == a0) {
0x00035938 bne v0, a0, 0x35948 |
0x0003593c sb v0, (fp) | *(fp) = v0;
0x00035940 addiu s2, zero, 1 | s2 = 1;
0x00035944 addiu fp, fp, 1 | fp++;
| }
0x00035948 addiu t9, sp, 0x59 | t9 = sp + 0x59;
0x0003594c sw zero, 0xcc(sp) | *(var_cch) = 0;
0x00035950 move s4, zero | s4 = 0;
0x00035954 move s3, zero | s3 = 0;
0x00035958 sw t9, 0xc8(sp) | *(var_c8h) = t9;
| label_0:
0x0003595c move a1, zero | a1 = 0;
0x00035960 b 0x359e8 |
| while (a0 != 0) {
0x00035964 lw t9, 0xcc(sp) | t9 = *(var_cch);
| if (a1 == v1) {
0x00035968 bne a1, v1, 0x35994 |
0x0003596c slt a1, s5, a1 | a1 = (s5 < a1) ? 1 : 0;
| if (t9 != 0) {
0x00035970 bnel t9, zero, 0x35984 |
0x00035974 addiu s2, zero, 1 | s2 = 1;
| if (s4 != 0) {
0x00035978 bnez s4, 0x35bc0 | goto label_15;
| }
0x0003597c lw v0, (s7) | v0 = *(s7);
0x00035980 b 0x35b80 | goto label_12;
| }
0x00035984 addiu s2, zero, 1 | s2 = 1;
| if (a1 != 0) {
0x00035988 bnez a1, 0x3603c | goto label_9;
| }
0x0003598c lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035990 b 0x35c54 | goto label_16;
| }
0x00035994 addiu a1, a1, 1 | a1++;
| if (s4 == 0) {
0x00035998 bnez s4, 0x359a8 |
0x0003599c addiu v1, zero, 0x30 | v1 = 0x30;
0x000359a0 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| if (v0 == v1) {
0x000359a4 beq v0, v1, 0x359c8 | goto label_17;
| }
| }
0x000359a8 lw t9, 0xc8(sp) | t9 = *(var_c8h);
0x000359ac sltu a0, fp, t9 | a0 = (fp < t9) ? 1 : 0;
| if (a0 != 0) {
0x000359b0 beql a0, zero, 0x359c4 |
0x000359b4 addiu s3, s3, 1 | s3++;
0x000359b8 sb v0, (fp) | *(fp) = v0;
0x000359bc addiu s4, zero, 1 | s4 = 1;
0x000359c0 addiu fp, fp, 1 | fp++;
| }
0x000359c4 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| label_17:
0x000359c8 sw a1, 0xdc(sp) | *(var_dch) = a1;
0x000359cc sw t1, 0xd8(sp) | *(var_d8h) = t1;
0x000359d0 move a0, s7 | a0 = s7;
0x000359d4 bal 0x3531c | fcn_0003531c ();
0x000359d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000359dc lw t1, 0xd8(sp) | t1 = *(var_d8h);
0x000359e0 lw a1, 0xdc(sp) | a1 = *(var_dch);
0x000359e4 addiu s2, zero, 1 | s2 = 1;
0x000359e8 lw v0, (s7) | v0 = *(s7);
0x000359ec addiu a0, v0, -0x30 | a0 = v0 + -0x30;
0x000359f0 sltiu a0, a0, 0xa | a0 = (a0 < 0xa) ? 1 : 0;
0x000359f4 lw v1, 0xd4(sp) | v1 = *(var_d4h);
0x000359f8 bnez a0, 0x35964 |
| }
0x000359fc lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
| if (a1 == 0) {
0x00035a00 beqz a1, 0x36040 | goto label_14;
| }
0x00035a04 slt a0, a1, t1 | a0 = (a1 < t1) ? 1 : 0;
| if (a1 != t1) {
0x00035a08 beq a1, t1, 0x35a1c |
0x00035a0c lw v1, 0xcc(sp) | v1 = *(var_cch);
| if (a0 == 0) {
0x00035a10 beqz a0, 0x35b54 | goto label_18;
| }
| if (v1 != 0) {
0x00035a14 bnez v1, 0x35b54 | goto label_18;
| }
0x00035a18 nop |
| }
0x00035a1c lw s6, 0x34(s7) | s6 = *((s7 + 13));
0x00035a20 lbu a0, (s6) | a0 = *(s6);
0x00035a24 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| if (a0 != v0) {
0x00035a28 bne a0, v0, 0x35b54 | goto label_18;
| }
0x00035a2c sw a1, 0xdc(sp) | *(var_dch) = a1;
0x00035a30 sw t1, 0xd8(sp) | *(var_d8h) = t1;
0x00035a34 move a0, s7 | a0 = s7;
0x00035a38 bal 0x3531c | fcn_0003531c ();
0x00035a3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035a40 lw t1, 0xd8(sp) | t1 = *(var_d8h);
0x00035a44 lw a1, 0xdc(sp) | a1 = *(var_dch);
| do {
0x00035a48 addiu s6, s6, 1 | s6++;
0x00035a4c lbu v0, (s6) | v0 = *(s6);
0x00035a50 lw a0, (s7) | a0 = *(s7);
| if (v0 != 0) {
0x00035a54 bnel v0, zero, 0x35a68 |
0x00035a58 lw v1, 0xcc(sp) | v1 = *(var_cch);
0x00035a5c addiu v1, v1, 1 | v1++;
0x00035a60 sw v1, 0xcc(sp) | *(var_cch) = v1;
0x00035a64 b 0x3595c | goto label_0;
| }
0x00035a68 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| if (v0 != a0) {
0x00035a6c bne v0, a0, 0x35a90 | goto label_19;
| }
0x00035a70 sw a1, 0xdc(sp) | *(var_dch) = a1;
0x00035a74 sw t1, 0xd8(sp) | *(var_d8h) = t1;
0x00035a78 move a0, s7 | a0 = s7;
0x00035a7c bal 0x3531c | fcn_0003531c ();
0x00035a80 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035a84 lw a1, 0xdc(sp) | a1 = *(var_dch);
0x00035a88 lw t1, 0xd8(sp) | t1 = *(var_d8h);
0x00035a8c b 0x35a48 |
| } while (1);
| label_19:
0x00035a90 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035a94 move a0, s7 | a0 = s7;
0x00035a98 sw a1, 0xdc(sp) | *(var_dch) = a1;
0x00035a9c bal 0x353b4 | fcn_000353b4 ();
0x00035aa0 lw v0, (s7) | v0 = *(s7);
0x00035aa4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035aa8 lw a0, 0x34(s7) | a0 = *((s7 + 13));
0x00035aac lw a1, 0xdc(sp) | a1 = *(var_dch);
| if (v0 < 0) {
0x00035ab0 bgez v0, 0x35ac4 |
0x00035ab4 addiu v0, a0, 1 | v0 = a0 + 1;
0x00035ab8 sltu v0, v0, s6 | v0 = (v0 < s6) ? 1 : 0;
| if (v0 == 0) {
0x00035abc beqz v0, 0x35b54 | goto label_18;
| }
0x00035ac0 nop |
| }
0x00035ac4 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035ac8 subu s6, s6, a0 | __asm ("subu s6, s6, a0");
0x00035acc slti v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x00035ad0 addiu s6, s6, -1 | s6 += -1;
| if (v0 != 0) {
0x00035ad4 bnez v0, 0x36048 | goto label_20;
| }
0x00035ad8 lw v1, 0xcc(sp) | v1 = *(var_cch);
0x00035adc lw t9, -0x7d80(gp) | t9 = *((gp - 8032));
| if (v1 != 0) {
0x00035ae0 beqz v1, 0x35aec |
0x00035ae4 addiu v0, zero, -2 | v0 = -2;
| if (a1 != s5) {
0x00035ae8 bne a1, s5, 0x36054 | goto label_5;
| }
| }
0x00035aec lw a1, 0x4c(s7) | a1 = *((s7 + 19));
0x00035af0 move a2, s6 | a2 = s6;
0x00035af4 bal 0x3aaec | sym_bcmp ();
0x00035af8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00035afc bnez v0, 0x36048 | goto label_20;
| }
0x00035b00 lw s5, -0x7b80(gp) | s5 = *((gp - 7904));
0x00035b04 move t9, s5 | t9 = s5;
0x00035b08 move a0, s7 | a0 = s7;
0x00035b0c bal 0x3531c | fcn_0003531c ();
0x00035b10 lw v0, 0x4c(s7) | v0 = *((s7 + 19));
0x00035b14 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035b18 addu s6, v0, s6 | s6 = v0 + s6;
| do {
0x00035b1c addiu s6, s6, 1 | s6++;
0x00035b20 lbu v0, (s6) | v0 = *(s6);
0x00035b24 lw a0, (s7) | a0 = *(s7);
| if (v0 != 0) {
0x00035b28 bnel v0, zero, 0x35b34 |
0x00035b2c lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00035b30 b 0x35d0c | goto label_21;
| }
| if (v0 != a0) {
0x00035b34 beql v0, a0, 0x35b44 |
0x00035b38 move t9, s5 | t9 = s5;
0x00035b3c lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035b40 b 0x36040 | goto label_14;
| }
0x00035b44 move a0, s7 | a0 = s7;
0x00035b48 bal 0x3531c | fcn_0003531c ();
0x00035b4c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035b50 b 0x35b1c |
| } while (1);
| if (a1 == s5) {
| label_18:
0x00035b54 beql a1, s5, 0x35c54 | goto label_16;
| }
0x00035b58 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035b5c slt a1, a1, s5 | a1 = (a1 < s5) ? 1 : 0;
0x00035b60 lw v1, 0xcc(sp) | v1 = *(var_cch);
| if (a1 == 0) {
0x00035b64 beqz a1, 0x3603c | goto label_9;
| }
| if (v1 == 0) {
0x00035b68 beql v1, zero, 0x35c54 | goto label_16;
| }
0x00035b6c lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035b70 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035b74 b 0x36040 | goto label_14;
| label_10:
0x00035b78 move s3, zero | s3 = 0;
| label_11:
0x00035b7c lw v0, (s7) | v0 = *(s7);
| label_12:
0x00035b80 addiu a0, zero, 0x30 | a0 = 0x30;
0x00035b84 move s4, zero | s4 = 0;
| if (v0 != a0) {
0x00035b88 bne v0, a0, 0x35c08 | goto label_22;
| }
0x00035b8c lw s2, -0x7b80(gp) | s2 = *((gp - 7904));
0x00035b90 sb v0, (fp) | *(fp) = v0;
0x00035b94 addiu s4, zero, 0x30 | s4 = 0x30;
0x00035b98 addiu fp, fp, 1 | fp++;
| do {
0x00035b9c move t9, s2 | t9 = s2;
0x00035ba0 move a0, s7 | a0 = s7;
0x00035ba4 bal 0x3531c | fcn_0003531c ();
0x00035ba8 lw v0, (s7) | v0 = *(s7);
0x00035bac lw gp, 0x10(sp) | gp = *(var_10h);
0x00035bb0 beq v0, s4, 0x35b9c |
| } while (v0 == s4);
0x00035bb4 addiu s2, zero, 1 | s2 = 1;
0x00035bb8 move s4, zero | s4 = 0;
0x00035bbc b 0x35c08 | goto label_22;
| label_15:
0x00035bc0 addiu s4, zero, 1 | s4 = 1;
0x00035bc4 b 0x35c08 |
| while (s1 == a1) {
0x00035bc8 subu a0, fp, s6 | __asm ("subu a0, fp, s6");
| label_1:
0x00035bcc slti a0, a0, 0x41 | a0 = (a0 < 0x41) ? 1 : 0;
| if (a0 != 0) {
0x00035bd0 beql a0, zero, 0x35be8 |
0x00035bd4 addiu s3, s3, 1 | s3++;
0x00035bd8 sb v0, (fp) | *(fp) = v0;
0x00035bdc addiu s2, zero, 1 | s2 = 1;
0x00035be0 addiu fp, fp, 1 | fp++;
0x00035be4 addiu s4, zero, 1 | s4 = 1;
| }
0x00035be8 sw a1, 0xdc(sp) | *(var_dch) = a1;
0x00035bec sw t9, 0xd8(sp) | *(var_d8h) = t9;
0x00035bf0 move a0, s7 | a0 = s7;
0x00035bf4 jalr t9 | t9 ();
0x00035bf8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035bfc lw a1, 0xdc(sp) | a1 = *(var_dch);
0x00035c00 lw t9, 0xd8(sp) | t9 = *(var_d8h);
0x00035c04 b 0x35c18 | goto label_23;
| label_22:
0x00035c08 lw s5, -0x7f74(gp) | s5 = *((gp - 8157));
0x00035c0c lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x00035c10 addiu a1, zero, 0x10 | a1 = 0x10;
0x00035c14 addiu s6, sp, 0x18 | s6 = sp + 0x18;
| label_23:
0x00035c18 lw v0, (s7) | v0 = *(s7);
0x00035c1c lw a2, (s5) | a2 = *(s5);
0x00035c20 sll a0, v0, 1 | a0 = v0 << 1;
0x00035c24 addu a0, a2, a0 | a0 = a2 + a0;
0x00035c28 lhu a0, (a0) | a0 = *(a0);
0x00035c2c andi a0, a0, 0x10 | a0 &= 0x10;
0x00035c30 andi a0, a0, 0xffff | a0 &= 0xffff;
| if (a0 == 0) {
0x00035c34 beql a0, zero, 0x35c54 | goto label_16;
| }
0x00035c38 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
0x00035c3c addiu a0, v0, -0x2f | a0 = v0 + -0x2f;
0x00035c40 beq s1, a1, 0x35bc8 |
| }
0x00035c44 slt a0, s1, a0 | a0 = (s1 < a0) ? 1 : 0;
0x00035c48 subu a0, fp, s6 | __asm ("subu a0, fp, s6");
| if (a0 == 0) {
0x00035c4c beqz a0, 0x35bcc | goto label_1;
| }
0x00035c50 lw v0, 0x3c(s0) | v0 = *((s0 + 15));
| label_16:
0x00035c54 slti v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
| if (v0 != 0) {
0x00035c58 beql v0, zero, 0x35cf8 |
0x00035c5c lw s5, 0x4c(s7) | s5 = *((s7 + 19));
0x00035c60 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035c64 move a0, s7 | a0 = s7;
0x00035c68 bal 0x353b4 | fcn_000353b4 ();
0x00035c6c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035c70 sb zero, (fp) | *(fp) = 0;
| if (s2 == 0) {
0x00035c74 beqz s2, 0x36048 | goto label_20;
| }
0x00035c78 lbu v0, 0x44(s0) | v0 = *((s0 + 68));
0x00035c7c lbu v1, 0x18(sp) | v1 = *(var_18h);
| if (v0 == 0) {
0x00035c80 beqz v0, 0x36034 | goto label_24;
| }
0x00035c84 lw t9, 0xd0(sp) | t9 = *(var_d0h);
0x00035c88 addiu a3, zero, 1 | a3 = 1;
0x00035c8c xori v0, v1, 0x2d | v0 = v1 ^ 0x2d;
0x00035c90 lw v1, 0x34(s0) | v1 = *((s0 + 13));
0x00035c94 slti s6, t9, 6 | s6 = (t9 < 6) ? 1 : 0;
0x00035c98 lw t9, -0x7b68(gp) | t9 = *((gp - 7898));
| if (v0 != 0) {
0x00035c9c movz s6, zero, v0 | s6 = 0;
| }
0x00035ca0 addiu v1, v1, 1 | v1++;
0x00035ca4 lw s2, 0x2c(s0) | s2 = *((s0 + 11));
0x00035ca8 sw v1, 0x34(s0) | *((s0 + 13)) = v1;
0x00035cac addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00035cb0 lw s0, 0x38(s0) | s0 = *((s0 + 14));
0x00035cb4 move a1, zero | a1 = 0;
0x00035cb8 move a2, s1 | a2 = s1;
0x00035cbc subu a3, a3, s6 | __asm ("subu a3, a3, s6");
0x00035cc0 jalr t9 | t9 ();
0x00035cc4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035cc8 move a0, s2 | a0 = s2;
0x00035ccc move a1, s0 | a1 = s0;
0x00035cd0 move a2, v0 | a2 = v0;
0x00035cd4 move a3, v1 | a3 = v1;
| label_6:
0x00035cd8 lw t9, -0x7ba4(gp) | t9 = *((gp - 7913));
0x00035cdc bal 0x31a30 | fcn_00031a30 ();
0x00035ce0 nop |
0x00035ce4 b 0x36034 | goto label_24;
0x00035ce8 nop |
| label_13:
0x00035cec move s4, zero | s4 = 0;
0x00035cf0 move s3, zero | s3 = 0;
0x00035cf4 lw s5, 0x4c(s7) | s5 = *((s7 + 19));
| }
0x00035cf8 lw s6, -0x7b80(gp) | s6 = *((gp - 7904));
| do {
0x00035cfc lbu v0, (s5) | v0 = *(s5);
0x00035d00 lw a0, (s7) | a0 = *(s7);
| if (v0 != 0) {
0x00035d04 bnel v0, zero, 0x35d28 |
0x00035d08 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
| label_21:
0x00035d0c lw a1, 0x40(s7) | a1 = *((s7 + 16));
0x00035d10 move a0, fp | a0 = fp;
0x00035d14 bal 0x3b600 | sym_strcpy ()
0x00035d18 lw v0, 0x44(s7) | v0 = *((s7 + 17));
0x00035d1c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035d20 addu fp, fp, v0 | fp += v0;
0x00035d24 b 0x35d5c |
| } else {
0x00035d28 move t9, s6 | t9 = s6;
| if (v0 != a0) {
0x00035d2c beq v0, a0, 0x35d48 |
0x00035d30 lw v0, 0x4c(s7) | v0 = *((s7 + 19));
0x00035d34 sltu s5, v0, s5 | s5 = (v0 < s5) ? 1 : 0;
0x00035d38 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
| if (s5 == 0) {
0x00035d3c beqz s5, 0x35e28 | goto label_25;
| }
0x00035d40 b 0x36040 | goto label_14;
0x00035d44 nop |
| }
0x00035d48 move a0, s7 | a0 = s7;
0x00035d4c bal 0x3531c | fcn_0003531c ();
0x00035d50 addiu s5, s5, 1 | s5++;
0x00035d54 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035d58 b 0x35cfc |
| }
| } while (1);
0x00035d5c lw s6, -0x7f74(gp) | s6 = *((gp - 8157));
| if (s4 != 0) {
0x00035d60 bnez s4, 0x35de0 | goto label_26;
| }
0x00035d64 lw v0, (s7) | v0 = *(s7);
0x00035d68 addiu a0, zero, 0x30 | a0 = 0x30;
0x00035d6c lw s5, -0x7b80(gp) | s5 = *((gp - 7904));
| if (v0 != a0) {
0x00035d70 bne v0, a0, 0x35de4 | goto label_27;
| }
0x00035d74 lw s2, -0x7b80(gp) | s2 = *((gp - 7904));
0x00035d78 sb v0, (fp) | *(fp) = v0;
0x00035d7c addiu s3, s3, 1 | s3++;
0x00035d80 addiu fp, fp, 1 | fp++;
0x00035d84 addiu s4, zero, 0x30 | s4 = 0x30;
| do {
0x00035d88 move t9, s2 | t9 = s2;
0x00035d8c move a0, s7 | a0 = s7;
0x00035d90 bal 0x3531c | fcn_0003531c ();
0x00035d94 lw v0, (s7) | v0 = *(s7);
0x00035d98 addiu s3, s3, -1 | s3 += -1;
0x00035d9c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035da0 beq v0, s4, 0x35d88 |
| } while (v0 == s4);
0x00035da4 addiu s2, zero, 1 | s2 = 1;
0x00035da8 b 0x35ddc |
| while (s1 == s4) {
0x00035dac lw v1, 0xc8(sp) | v1 = *(var_c8h);
| label_2:
0x00035db0 subu a0, fp, v1 | __asm ("subu a0, fp, v1");
0x00035db4 slti a0, a0, 0x41 | a0 = (a0 < 0x41) ? 1 : 0;
0x00035db8 move t9, s5 | t9 = s5;
| if (a0 != 0) {
0x00035dbc beqz a0, 0x35dcc |
0x00035dc0 sb v0, (fp) | *(fp) = v0;
0x00035dc4 addiu s2, zero, 1 | s2 = 1;
0x00035dc8 addiu fp, fp, 1 | fp++;
| }
0x00035dcc move a0, s7 | a0 = s7;
0x00035dd0 bal 0x3531c | fcn_0003531c ();
0x00035dd4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035dd8 b 0x35df0 | goto label_28;
0x00035ddc lw s6, -0x7f74(gp) | s6 = *((gp - 8157));
| label_26:
0x00035de0 lw s5, -0x7b80(gp) | s5 = *((gp - 7904));
| label_27:
0x00035de4 addiu v1, sp, 0x18 | v1 = sp + 0x18;
0x00035de8 addiu s4, zero, 0x10 | s4 = 0x10;
0x00035dec sw v1, 0xc8(sp) | *(var_c8h) = v1;
| label_28:
0x00035df0 lw v0, (s7) | v0 = *(s7);
0x00035df4 lw a1, (s6) | a1 = *(s6);
0x00035df8 sll a0, v0, 1 | a0 = v0 << 1;
0x00035dfc addu a0, a1, a0 | a0 = a1 + a0;
0x00035e00 lhu a0, (a0) | a0 = *(a0);
0x00035e04 andi a0, a0, 0x10 | a0 &= 0x10;
0x00035e08 andi a0, a0, 0xffff | a0 &= 0xffff;
| if (a0 == 0) {
0x00035e0c beqz a0, 0x35e28 | goto label_25;
| }
0x00035e10 nop |
0x00035e14 addiu a0, v0, -0x2f | a0 = v0 + -0x2f;
0x00035e18 beq s1, s4, 0x35dac |
| }
0x00035e1c slt a0, s1, a0 | a0 = (s1 < a0) ? 1 : 0;
0x00035e20 lw v1, 0xc8(sp) | v1 = *(var_c8h);
| if (a0 == 0) {
0x00035e24 beqz a0, 0x35db0 | goto label_2;
| }
| label_25:
0x00035e28 addiu a0, zero, 0x10 | a0 = 0x10;
| if (s2 != 0) {
0x00035e2c bnez s2, 0x35ec8 | goto label_29;
| }
0x00035e30 addiu v0, zero, 0x10 | v0 = 0x10;
0x00035e34 addiu a1, zero, 0x69 | a1 = 0x69;
| if (s1 == v0) {
0x00035e38 beq s1, v0, 0x3603c | goto label_9;
| }
0x00035e3c lw v0, (s7) | v0 = *(s7);
0x00035e40 ori a0, v0, 0x20 | a0 = v0 | 0x20;
0x00035e44 addiu a1, zero, 0x6e | a1 = 0x6e;
| if (a0 != a1) {
0x00035e48 beq a0, a1, 0x35e5c |
0x00035e4c lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
| if (a0 != a1) {
0x00035e50 bne a0, a1, 0x36040 | goto label_14;
| }
0x00035e54 lw s1, -0x7fa8(gp) | s1 = *((gp - 8170));
0x00035e58 b 0x35e68 |
| } else {
0x00035e5c lw s1, -0x7fa8(gp) | s1 = *((gp - 8170));
0x00035e60 addiu s1, s1, -0x6e3d | s1 += -0x6e3d;
0x00035e64 b 0x35e6c | goto label_30;
| }
0x00035e68 addiu s1, s1, -0x6e40 | s1 += -0x6e40;
| label_30:
0x00035e6c lw s2, -0x7b80(gp) | s2 = *((gp - 7904));
0x00035e70 sb v0, (fp) | *(fp) = v0;
0x00035e74 addiu fp, fp, 1 | fp++;
| do {
0x00035e78 move t9, s2 | t9 = s2;
0x00035e7c move a0, s7 | a0 = s7;
0x00035e80 bal 0x3531c | fcn_0003531c ();
0x00035e84 lw a0, (s7) | a0 = *(s7);
0x00035e88 lbu v0, (s1) | v0 = *(s1);
0x00035e8c ori a1, a0, 0x20 | a1 = a0 | 0x20;
0x00035e90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a1 != v0) {
0x00035e94 bne a1, v0, 0x35ea8 | goto label_31;
| }
0x00035e98 sb a0, (fp) | *(fp) = a0;
0x00035e9c addiu s1, s1, 1 | s1++;
0x00035ea0 addiu fp, fp, 1 | fp++;
0x00035ea4 b 0x35e78 |
| } while (1);
| label_31:
0x00035ea8 lw t9, -0x7b64(gp) | t9 = *((gp - 7897));
| if (v0 == 0) {
0x00035eac beqz v0, 0x35fcc | goto label_32;
| }
0x00035eb0 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
0x00035eb4 addiu v0, v0, -0x6e3b | v0 += -0x6e3b;
| if (s1 == v0) {
0x00035eb8 beql s1, v0, 0x35fd0 | goto label_33;
| }
0x00035ebc sb zero, (fp) | *(fp) = 0;
0x00035ec0 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x00035ec4 b 0x36040 | goto label_14;
| label_29:
0x00035ec8 lw v0, (s7) | v0 = *(s7);
| if (s1 == a0) {
0x00035ecc bne s1, a0, 0x35ee0 |
0x00035ed0 ori a1, v0, 0x20 | a1 = v0 | 0x20;
0x00035ed4 addiu a0, zero, 0x70 | a0 = 0x70;
0x00035ed8 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| if (a1 == a0) {
0x00035edc beq a1, a0, 0x35ef8 | goto label_34;
| }
| }
0x00035ee0 ori v0, v0, 0x20 | v0 |= 0x20;
0x00035ee4 addiu a0, zero, 0x65 | a0 = 0x65;
0x00035ee8 lw t9, -0x7b64(gp) | t9 = *((gp - 7897));
| if (v0 != a0) {
0x00035eec bne v0, a0, 0x35fcc | goto label_32;
| }
0x00035ef0 lw v0, (s7) | v0 = *(s7);
0x00035ef4 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| label_34:
0x00035ef8 move a0, s7 | a0 = s7;
0x00035efc sb v0, (fp) | *(fp) = v0;
0x00035f00 bal 0x3531c | fcn_0003531c ();
0x00035f04 lw v0, (s7) | v0 = *(s7);
0x00035f08 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x00035f0c bltz v0, 0x3603c | goto label_9;
| }
0x00035f10 addiu a0, zero, 0x2b | a0 = 0x2b;
0x00035f14 addiu a0, zero, 0x2d | a0 = 0x2d;
| if (v0 != a0) {
0x00035f18 beq v0, a0, 0x35f2c |
0x00035f1c lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| if (v0 != a0) {
0x00035f20 beq v0, a0, 0x35f30 |
0x00035f24 addiu fp, fp, 1 | fp++;
0x00035f28 b 0x35f48 |
| } else {
0x00035f2c lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
| }
0x00035f30 sb v0, 1(fp) | *(var_1h) = v0;
0x00035f34 move a0, s7 | a0 = s7;
0x00035f38 bal 0x3531c | fcn_0003531c ();
0x00035f3c lw gp, 0x10(sp) | gp = *(var_10h);
0x00035f40 addiu fp, fp, 2 | fp += 2;
0x00035f44 lw v0, (s7) | v0 = *(s7);
| }
0x00035f48 addiu a0, zero, 0x30 | a0 = 0x30;
0x00035f4c move s1, zero | s1 = 0;
| if (v0 != a0) {
0x00035f50 bne v0, a0, 0x35fac | goto label_35;
| }
0x00035f54 lw s1, -0x7b80(gp) | s1 = *((gp - 7904));
0x00035f58 sb v0, (fp) | *(fp) = v0;
0x00035f5c addiu s2, zero, 0x30 | s2 = 0x30;
0x00035f60 addiu fp, fp, 1 | fp++;
| do {
0x00035f64 move t9, s1 | t9 = s1;
0x00035f68 move a0, s7 | a0 = s7;
0x00035f6c bal 0x3531c | fcn_0003531c ();
0x00035f70 lw v0, (s7) | v0 = *(s7);
0x00035f74 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035f78 beq v0, s2, 0x35f64 |
| } while (v0 == s2);
0x00035f7c addiu s1, zero, 1 | s1 = 1;
0x00035f80 b 0x35fac |
| while (a0 != 0) {
0x00035f84 move t9, s2 | t9 = s2;
| if (a0 != 0) {
0x00035f88 beqz a0, 0x35f9c |
0x00035f8c addiu s1, s1, 1 | s1++;
0x00035f90 sb v0, (fp) | *(fp) = v0;
0x00035f94 andi s1, s1, 0xff | s1 &= 0xff;
0x00035f98 addiu fp, fp, 1 | fp++;
| }
0x00035f9c move a0, s7 | a0 = s7;
0x00035fa0 bal 0x3531c | fcn_0003531c ();
0x00035fa4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00035fa8 b 0x35fb0 | goto label_36;
| label_35:
0x00035fac lw s2, -0x7b80(gp) | s2 = *((gp - 7904));
| label_36:
0x00035fb0 lw v0, (s7) | v0 = *(s7);
0x00035fb4 addiu a0, v0, -0x30 | a0 = v0 + -0x30;
0x00035fb8 sltiu a0, a0, 0xa | a0 = (a0 < 0xa) ? 1 : 0;
0x00035fbc sltiu a0, s1, 0x14 | a0 = (s1 < 0x14) ? 1 : 0;
0x00035fc0 bnez a0, 0x35f84 |
| }
0x00035fc4 lw t9, -0x7b64(gp) | t9 = *((gp - 7897));
| if (s1 != 0) {
0x00035fc8 beqz s1, 0x3603c |
| label_32:
0x00035fcc sb zero, (fp) | *(fp) = 0;
| label_33:
0x00035fd0 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00035fd4 addiu a1, sp, 0xc0 | a1 = sp + 0xc0;
0x00035fd8 move a2, s3 | a2 = s3;
0x00035fdc jalr t9 | t9 ();
0x00035fe0 lbu v0, 0x44(s0) | v0 = *((s0 + 68));
0x00035fe4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00035fe8 beqz v0, 0x36028 |
0x00035fec lw a0, 0x38(s0) | a0 = *((s0 + 14));
0x00035ff0 andi a1, a0, 0x800 | a1 = a0 & aav.0x00000800;
0x00035ff4 lw v0, 0x2c(s0) | v0 = *((s0 + 11));
| if (a1 != 0) {
0x00035ff8 beqz a1, 0x36004 |
0x00035ffc sdc1 f0, (v0) | __asm ("sdc1 f0, (v0)");
0x00036000 b 0x3601c |
| } else {
0x00036004 andi a0, a0, 0x400 | a0 &= aav.0x00000400;
| if (a0 != 0) {
0x00036008 beql a0, zero, 0x36018 |
0x0003600c cvt.s.d f0, f0 | __asm ("cvt.s.d f0, f0");
0x00036010 sdc1 f0, (v0) | __asm ("sdc1 f0, (v0)");
0x00036014 b 0x3601c |
| } else {
0x00036018 swc1 f0, (v0) | __asm ("swc1 f0, (v0)");
| }
| }
0x0003601c lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x00036020 addiu v0, v0, 1 | v0++;
0x00036024 sw v0, 0x34(s0) | *((s0 + 13)) = v0;
| }
0x00036028 lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
0x0003602c move a0, s7 | a0 = s7;
0x00036030 bal 0x353b4 | fcn_000353b4 ();
| label_24:
0x00036034 move v0, zero | v0 = 0;
0x00036038 b 0x36054 |
| } else {
| label_9:
0x0003603c lw t9, -0x7b74(gp) | t9 = *((gp - 7901));
| label_14:
0x00036040 move a0, s7 | a0 = s7;
0x00036044 bal 0x353b4 | fcn_000353b4 ();
| label_20:
0x00036048 addiu v0, zero, -2 | v0 = -2;
0x0003604c b 0x36054 | goto label_5;
| label_7:
0x00036050 addiu v0, zero, -1 | v0 = -1;
| }
| label_5:
0x00036054 lw ra, 0x104(sp) | ra = *(var_104h);
0x00036058 lw fp, 0x100(sp) | fp = *(var_100h);
0x0003605c lw s7, 0xfc(sp) | s7 = *(var_fch);
0x00036060 lw s6, 0xf8(sp) | s6 = *(var_f8h);
0x00036064 lw s5, 0xf4(sp) | s5 = *(var_f4h);
0x00036068 lw s4, 0xf0(sp) | s4 = *(var_f0h);
0x0003606c lw s3, 0xec(sp) | s3 = *(var_ech);
0x00036070 lw s2, 0xe8(sp) | s2 = *(var_e8h);
0x00036074 lw s1, 0xe4(sp) | s1 = *(var_e4h);
0x00036078 lw s0, 0xe0(sp) | s0 = *(var_e0h);
0x0003607c addiu sp, sp, 0x108 |
0x00036080 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x45598 */
| #include <stdint.h>
|
; (fcn) fcn.00045598 () | void fcn_00045598 () {
0x00045598 lui gp, 7 |
0x0004559c addiu gp, gp, 0x148 |
0x000455a0 addu gp, gp, t9 | gp += t9;
0x000455a4 addiu sp, sp, -0x68 |
0x000455a8 sw fp, 0x60(sp) | *(var_60h) = fp;
0x000455ac move fp, sp | fp = sp;
0x000455b0 sw s5, 0x58(sp) | *(var_58h) = s5;
0x000455b4 sw s4, 0x54(sp) | *(var_54h) = s4;
0x000455b8 sw s3, 0x50(sp) | *(var_50h) = s3;
0x000455bc sw s2, 0x4c(sp) | *(var_4ch) = s2;
0x000455c0 sw ra, 0x64(sp) | *(var_64h) = ra;
0x000455c4 sw s6, 0x5c(sp) | *(var_5ch) = s6;
0x000455c8 sw s1, 0x48(sp) | *(var_48h) = s1;
0x000455cc sw s0, 0x44(sp) | *(var_44h) = s0;
0x000455d0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000455d4 move s5, a0 | s5 = a0;
0x000455d8 move s3, a1 | s3 = a1;
0x000455dc move s4, a2 | s4 = a2;
0x000455e0 move s2, a3 | s2 = a3;
0x000455e4 beqz a1, 0x455f0 |
| while (v0 == 0) {
0x000455e8 addiu s0, zero, -1 | s0 = -1;
0x000455ec b 0x45648 | goto label_0;
0x000455f0 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x000455f4 lw t9, -0x7b0c(gp) | t9 = *((gp - 7875));
0x000455f8 addiu t9, t9, 0x5000 | t9 += 0x5000;
0x000455fc addiu a0, a0, -0x5518 | a0 += -0x5518;
0x00045600 bal 0x45000 | fcn_00045000 ();
0x00045604 move s1, v0 | s1 = v0;
0x00045608 lw gp, 0x18(fp) | gp = *(var_18h);
0x0004560c beqz v0, 0x455e8 |
| }
0x00045610 lw t9, -0x7b0c(gp) | t9 = *((gp - 7875));
0x00045614 move a0, v0 | a0 = v0;
0x00045618 move a1, s5 | a1 = s5;
0x0004561c move a2, s2 | a2 = s2;
0x00045620 addiu t9, t9, 0x50fc | t9 += 0x50fc;
0x00045624 move a3, s4 | a3 = s4;
0x00045628 bal 0x450fc | fcn_000450fc ();
0x0004562c lw gp, 0x18(fp) | gp = *(var_18h);
0x00045630 move s0, v0 | s0 = v0;
0x00045634 lw t9, -0x7dcc(gp) | t9 = *((gp - 8051));
0x00045638 move a0, s1 | a0 = s1;
0x0004563c bal 0x2de40 | sym_fclose ();
0x00045640 lw gp, 0x18(fp) | gp = *(var_18h);
| if (s0 != 0) {
0x00045644 beqz s0, 0x457a4 |
| label_0:
0x00045648 lw v0, -0x760c(gp) | v0 = *((gp - 7555));
0x0004564c lw v0, (v0) | v0 = *(v0);
0x00045650 or s3, s3, v0 | s3 |= v0;
0x00045654 lw t9, -0x7ef0(gp) | t9 = *((gp - 8124));
| if (s3 != 0) {
0x00045658 beqz s3, 0x457a0 |
0x0004565c addiu a0, zero, 0x46 | a0 = 0x46;
0x00045660 bal 0x60b2c | sym_sysconf ();
0x00045664 lw gp, 0x18(fp) | gp = *(var_18h);
0x00045668 addiu v1, v0, 0xe | v1 = v0 + 0xe;
0x0004566c srl v1, v1, 3 | v1 >>= 3;
0x00045670 sll v1, v1, 3 | v1 <<= 3;
0x00045674 lw t9, -0x7f78(gp) | t9 = *((gp - 8158));
0x00045678 subu sp, sp, v1 |
0x0004567c addiu v1, fp, 0x3c | v1 = fp + 0x3c;
0x00045680 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00045684 move a0, s2 | a0 = s2;
0x00045688 addiu a1, fp, 0x20 | a1 = fp + 0x20;
0x0004568c addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x00045690 move a3, v0 | a3 = v0;
0x00045694 bal 0x2c820 | sym_getpwnam_r ();
0x00045698 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004569c bnez v0, 0x457a0 | goto label_1;
| }
0x000456a0 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x000456a4 lw t9, -0x7fdc(gp) | t9 = *(var_7fdch);
| if (v0 == 0) {
0x000456a8 beqz v0, 0x457a0 | goto label_1;
| }
0x000456ac lw a0, 0x14(v0) | a0 = *((v0 + 5));
0x000456b0 bal 0x3b6b0 | sym_strlen ();
0x000456b4 lw gp, 0x18(fp) | gp = *(var_18h);
0x000456b8 lw t9, -0x75a0(gp) | t9 = *(var_75a0h);
0x000456bc addiu a0, v0, 9 | a0 = v0 + 9;
0x000456c0 jalr t9 | t9 ();
0x000456c4 move s1, v0 | s1 = v0;
0x000456c8 lw gp, 0x18(fp) | gp = *(var_18h);
0x000456cc move a0, v0 | a0 = v0;
0x000456d0 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x000456d4 lw t9, -0x7f44(gp) | t9 = *(var_7f44h);
0x000456d8 lw a1, 0x14(v0) | a1 = *((v0 + 5));
0x000456dc bal 0x3b600 | sym_strcpy ()
0x000456e0 lw gp, 0x18(fp) | gp = *(var_18h);
0x000456e4 move a0, s1 | a0 = s1;
0x000456e8 lw a1, -0x7fa8(gp) | a1 = *(s2);
0x000456ec lw t9, -0x7dfc(gp) | t9 = *(var_7dfch);
0x000456f0 addiu a1, a1, -0x5504 | a1 += -0x5504;
0x000456f4 bal 0x3b3a0 | sym_strcat ();
0x000456f8 lw gp, 0x18(fp) | gp = *(var_18h);
0x000456fc lw t9, -0x7aa4(gp) | t9 = *(var_7aa4h);
0x00045700 jalr t9 | t9 ();
0x00045704 nop |
0x00045708 move s6, v0 | s6 = v0;
0x0004570c lw gp, 0x18(fp) | gp = *(var_18h);
0x00045710 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00045714 lw t9, -0x79b4(gp) | t9 = *(var_79b4h);
0x00045718 lw a0, 8(v0) | a0 = *((v0 + 2));
0x0004571c jalr t9 | t9 ();
0x00045720 lw gp, 0x18(fp) | gp = *(var_18h);
0x00045724 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00045728 move a0, s1 | a0 = s1;
0x0004572c lw t9, -0x7b0c(gp) | t9 = *(var_7b0ch);
0x00045730 addiu t9, t9, 0x5000 | t9 += 0x5000;
0x00045734 lw a1, 8(v0) | a1 = *((v0 + 2));
0x00045738 bal 0x45000 | fcn_00045000 ();
0x0004573c lw gp, 0x18(fp) | gp = *(var_18h);
0x00045740 move s3, v0 | s3 = v0;
0x00045744 lw t9, -0x7668(gp) | t9 = *(var_7668h);
0x00045748 move a0, s1 | a0 = s1;
0x0004574c jalr t9 | t9 ();
0x00045750 lw gp, 0x18(fp) | gp = *(var_18h);
| if (s3 != 0) {
0x00045754 beqz s3, 0x4578c |
0x00045758 lw t9, -0x7b0c(gp) | t9 = *(var_7b0ch);
0x0004575c move a0, s3 | a0 = s3;
0x00045760 move a1, s5 | a1 = s5;
0x00045764 move a2, s2 | a2 = s2;
0x00045768 addiu t9, t9, 0x50fc | t9 += 0x50fc;
0x0004576c move a3, s4 | a3 = s4;
0x00045770 bal 0x450fc | fcn_000450fc ();
0x00045774 lw gp, 0x18(fp) | gp = *(var_18h);
0x00045778 move a0, s3 | a0 = s3;
0x0004577c lw t9, -0x7dcc(gp) | t9 = *(var_7dcch);
0x00045780 move s0, v0 | s0 = v0;
0x00045784 bal 0x2de40 | sym_fclose ();
0x00045788 lw gp, 0x18(fp) | gp = *(var_18h);
| }
0x0004578c lw t9, -0x79b4(gp) | t9 = *(var_79b4h);
0x00045790 move a0, s6 | a0 = s6;
0x00045794 jalr t9 | t9 ();
0x00045798 move sp, fp |
0x0004579c b 0x457a8 | goto label_2;
| }
| label_1:
0x000457a0 addiu s0, zero, -1 | s0 = -1;
| }
0x000457a4 move sp, fp |
| label_2:
0x000457a8 lw ra, 0x64(sp) | ra = *(var_64h);
0x000457ac move v0, s0 | v0 = s0;
0x000457b0 lw fp, 0x60(sp) | fp = *(var_60h);
0x000457b4 lw s6, 0x5c(sp) | s6 = *(var_5ch);
0x000457b8 lw s5, 0x58(sp) | s5 = *(var_58h);
0x000457bc lw s4, 0x54(sp) | s4 = *(var_54h);
0x000457c0 lw s3, 0x50(sp) | s3 = *(var_50h);
0x000457c4 lw s2, 0x4c(sp) | s2 = *(var_4ch);
0x000457c8 lw s1, 0x48(sp) | s1 = *(var_48h);
0x000457cc lw s0, 0x44(sp) | s0 = *(var_44h);
0x000457d0 addiu sp, sp, 0x68 |
0x000457d4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x51f30 */
| #include <stdint.h>
|
; (fcn) fcn.00051f30 () | void fcn_00051f30 () {
0x00051f30 lui gp, 6 |
0x00051f34 addiu gp, gp, 0x37b0 |
0x00051f38 addu gp, gp, t9 | gp += t9;
0x00051f3c addiu sp, sp, -0x40 |
0x00051f40 move v1, zero | v1 = 0;
0x00051f44 move t1, zero | t1 = 0;
0x00051f48 sw s1, 0x38(sp) | *(var_38h) = s1;
0x00051f4c sw s0, 0x34(sp) | *(var_34h) = s0;
0x00051f50 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00051f54 move s0, a1 | s0 = a1;
0x00051f58 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00051f5c move s1, a2 | s1 = a2;
0x00051f60 sb zero, 0x18(sp) | *(var_18h) = 0;
0x00051f64 addiu t3, zero, 0x64 | t3 = 0x64;
0x00051f68 addiu t4, zero, 0x30 | t4 = 0x30;
0x00051f6c addiu a3, zero, 0xa | a3 = 0xa;
0x00051f70 addiu a1, zero, 0x2e | a1 = 0x2e;
0x00051f74 addiu v0, zero, 4 | v0 = 4;
| do {
0x00051f78 addu a2, a0, t1 | a2 = a0 + t1;
0x00051f7c lbu t0, (a2) | t0 = *(a2);
0x00051f80 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x00051f84 addu t6, a2, v1 | t6 = a2 + v1;
0x00051f88 divu zero, t0, t3 | __asm ("divu zero, t0, t3");
0x00051f8c teq t3, zero, 7 | __asm ("teq t3, zero, 7");
0x00051f90 mflo t2 | __asm ("mflo t2");
0x00051f94 addiu t5, t2, 0x30 | t5 = t2 + 0x30;
0x00051f98 andi t5, t5, 0xff | t5 &= 0xff;
0x00051f9c sb t5, (t6) | *(t6) = t5;
0x00051fa0 addiu t2, v1, 1 | t2 = v1 + 1;
| if (t5 == t4) {
0x00051fa4 bne t5, t4, 0x51fd4 |
0x00051fa8 divu zero, t0, a3 | __asm ("divu zero, t0, a3");
0x00051fac teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x00051fb0 mflo t5 | __asm ("mflo t5");
0x00051fb4 divu zero, t5, a3 | __asm ("divu zero, t5, a3");
0x00051fb8 teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x00051fbc mfhi t5 | __asm ("mfhi t5");
0x00051fc0 addiu t5, t5, 0x30 | t5 += 0x30;
0x00051fc4 sb t5, (t6) | *(t6) = t5;
0x00051fc8 xor t5, t5, t4 | t5 ^= t4;
| if (t5 == 0) {
0x00051fcc movn v1, t2, t5 | v1 = t2;
| }
0x00051fd0 b 0x52000 |
| } else {
0x00051fd4 divu zero, t0, a3 | __asm ("divu zero, t0, a3");
0x00051fd8 teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x00051fdc addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x00051fe0 addu t2, a2, t2 | t2 = a2 + t2;
0x00051fe4 addiu v1, v1, 2 | v1 += 2;
0x00051fe8 mflo t5 | __asm ("mflo t5");
0x00051fec divu zero, t5, a3 | __asm ("divu zero, t5, a3");
0x00051ff0 teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x00051ff4 mfhi a2 | __asm ("mfhi a2");
0x00051ff8 addiu a2, a2, 0x30 | a2 += 0x30;
0x00051ffc sb a2, (t2) | *(t2) = a2;
| }
0x00052000 divu zero, t0, a3 | __asm ("divu zero, t0, a3");
0x00052004 teq a3, zero, 7 | __asm ("teq a3, zero, 7");
0x00052008 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0005200c addu t2, a2, v1 | t2 = a2 + v1;
0x00052010 addiu t1, t1, 1 | t1++;
0x00052014 sb a1, 1(t2) | *(var_1h) = a1;
0x00052018 addiu v1, v1, 2 | v1 += 2;
0x0005201c mfhi a2 | __asm ("mfhi a2");
0x00052020 addiu t0, a2, 0x30 | t0 = a2 + 0x30;
0x00052024 sb t0, (t2) | *(t2) = t0;
0x00052028 bne t1, v0, 0x51f78 |
| } while (t1 != v0);
0x0005202c addiu t2, sp, 0x18 | t2 = sp + 0x18;
0x00052030 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00052034 addu v1, t2, v1 | v1 = t2 + v1;
0x00052038 sb zero, -1(v1) | *(var_1h) = 0;
0x0005203c move a0, t2 | a0 = t2;
0x00052040 bal 0x3b6b0 | sym_strlen ();
0x00052044 sltu v0, s1, v0 | v0 = (s1 < v0) ? 1 : 0;
0x00052048 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0005204c beqz v0, 0x52070 |
0x00052050 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00052054 move v0, v1 | v0 = v1;
0x00052058 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x0005205c addu v0, v1, v0 | v0 = v1 + v0;
0x00052060 addiu v1, zero, 0x1c | v1 = 0x1c;
0x00052064 sw v1, (v0) | *(v0) = v1;
0x00052068 move v0, zero | v0 = 0;
0x0005206c b 0x52080 |
| } else {
0x00052070 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00052074 move a0, s0 | a0 = s0;
0x00052078 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0005207c bal 0x3b600 | sym_strcpy ()
| }
0x00052080 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00052084 lw s1, 0x38(sp) | s1 = *(var_38h);
0x00052088 lw s0, 0x34(sp) | s0 = *(var_34h);
0x0005208c addiu sp, sp, 0x40 |
0x00052090 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x532b0 */
| #include <stdint.h>
|
; (fcn) fcn.000532b0 () | void fcn_000532b0 () {
0x000532b0 lui gp, 6 |
0x000532b4 addiu gp, gp, 0x2430 |
0x000532b8 addu gp, gp, t9 | gp += t9;
0x000532bc lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x000532c0 addiu sp, sp, -0x200 |
0x000532c4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000532c8 sw ra, 0x1fc(sp) | *(var_1fch) = ra;
0x000532cc sw fp, 0x1f8(sp) | *(var_1f8h) = fp;
0x000532d0 sw s6, 0x1f0(sp) | *(var_1f0h) = s6;
0x000532d4 sw s2, 0x1e0(sp) | *(var_1e0h) = s2;
0x000532d8 sw s1, 0x1dc(sp) | *(var_1dch) = s1;
0x000532dc sw s0, 0x1d8(sp) | *(var_1d8h) = s0;
0x000532e0 move s1, a0 | s1 = a0;
0x000532e4 sw a2, 0x208(sp) | *(arg_208h) = a2;
0x000532e8 addiu a0, zero, 0x200 | a0 = aav.0x00000200;
0x000532ec sw s7, 0x1f4(sp) | *(var_1f4h) = s7;
0x000532f0 sw s5, 0x1ec(sp) | *(var_1ech) = s5;
0x000532f4 sw s4, 0x1e8(sp) | *(var_1e8h) = s4;
0x000532f8 sw s3, 0x1e4(sp) | *(var_1e4h) = s3;
0x000532fc move fp, a1 | fp = a1;
0x00053300 move s0, a3 | s0 = a3;
0x00053304 jalr t9 | t9 ();
0x00053308 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005330c move a0, s1 | a0 = s1;
0x00053310 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00053314 move s2, v0 | s2 = v0;
0x00053318 bal 0x3b6b0 | sym_strlen ();
0x0005331c move s6, v0 | s6 = v0;
0x00053320 sltiu v0, v0, 0x37f | v0 = (v0 < 0x37f) ? 1 : 0;
0x00053324 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00053328 bnez v0, 0x53334 |
0x0005332c move s4, zero | s4 = 0;
0x00053330 b 0x53a70 | goto label_6;
| }
0x00053334 lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x00053338 addiu a0, s6, 0x82 | a0 = s6 + 0x82;
0x0005333c jalr t9 | t9 ();
0x00053340 move s4, v0 | s4 = v0;
0x00053344 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == 0) {
0x00053348 beqz s2, 0x53a70 | goto label_6;
| }
| if (v0 == 0) {
0x0005334c beql v0, zero, 0x53a70 | goto label_6;
| }
0x00053350 move s4, zero | s4 = 0;
0x00053354 lbu v0, (s1) | v0 = *(s1);
0x00053358 addu v0, s1, s6 | v0 = s1 + s6;
| if (v0 == 0) {
0x0005335c beqz v0, 0x53a70 | goto label_6;
| }
0x00053360 lbu v0, -1(v0) | v0 = *((v0 - 1));
0x00053364 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00053368 move a0, s4 | a0 = s4;
0x0005336c sw v0, 0x1bc(sp) | *(var_1bch) = v0;
0x00053370 move a1, s1 | a1 = s1;
0x00053374 move a2, s6 | a2 = s6;
0x00053378 bal 0x3a800 | sym_memcpy ();
0x0005337c addiu v0, s6, 1 | v0 = s6 + 1;
0x00053380 addu v0, s4, v0 | v0 = s4 + v0;
0x00053384 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053388 addiu s3, zero, -1 | s3 = -1;
0x0005338c addiu s7, zero, -1 | s7 = -1;
0x00053390 sw zero, 0x1b8(sp) | *(var_1b8h) = 0;
0x00053394 sw v0, 0x1c0(sp) | *(dest) = v0;
0x00053398 b 0x533b0 | goto label_7;
| label_5:
0x0005339c lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (s1 != v0) {
0x000533a0 beq s1, v0, 0x533b0 |
0x000533a4 move a0, s1 | a0 = s1;
0x000533a8 bal 0x62088 | sym_libc_close ();
0x000533ac lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_7:
0x000533b0 lw a1, -0x75d0(gp) | a1 = *((gp - 7540));
0x000533b4 lw a2, -0x75d4(gp) | a2 = *((gp - 7541));
0x000533b8 lw t9, -0x7604(gp) | t9 = *((gp - 7553));
0x000533bc addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000533c0 jalr t9 | t9 ();
0x000533c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000533c8 lw a0, -0x75d4(gp) | a0 = *((gp - 7541));
0x000533cc lw t9, -0x758c(gp) | t9 = *((gp - 7523));
0x000533d0 jalr t9 | t9 ();
0x000533d4 nop |
0x000533d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000533dc lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x000533e0 bal 0x53bc0 | fcn_00053bc0 ();
0x000533e4 nop |
0x000533e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000533ec lw v0, -0x7850(gp) | v0 = *((gp - 7700));
0x000533f0 lw v0, (v0) | v0 = *(v0);
0x000533f4 sw v0, 0x1b4(sp) | *(var_1b4h) = v0;
0x000533f8 lw t9, 0x1b4(sp) | t9 = *(var_1b4h);
0x000533fc sltu v1, s7, t9 | v1 = (s7 < t9) ? 1 : 0;
0x00053400 addu v0, s4, s6 | v0 = s4 + s6;
| if (v1 == 0) {
0x00053404 bnez v1, 0x53410 |
0x00053408 sb zero, (v0) | *(v0) = 0;
0x0005340c b 0x5343c |
| } else {
0x00053410 addiu v1, zero, 0x2e | v1 = 0x2e;
0x00053414 sb v1, (v0) | *(v0) = v1;
0x00053418 lw v0, -0x784c(gp) | v0 = *((gp - 7699));
0x0005341c lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00053420 lw a0, 0x1c0(sp) | a0 = *(dest);
0x00053424 lw v1, (v0) | v1 = *(v0);
0x00053428 sll v0, s7, 2 | v0 = s7 << 2;
0x0005342c addu v0, v1, v0 | v0 = v1 + v0;
0x00053430 lw a1, (v0) | a1 = *(v0);
0x00053434 bal 0x3b600 | sym_strcpy ()
0x00053438 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0005343c lw v0, -0x7848(gp) | v0 = *((gp - 7698));
| if (s3 < 0) {
0x00053440 bgez s3, 0x53474 |
0x00053444 lw v0, -0x7ecc(gp) | v0 = *((gp - 8115));
0x00053448 lw v1, -0x7ecc(gp) | v1 = *((gp - 8115));
0x0005344c lhu v0, -0x2a80(v0) | v0 = *((v0 - 5440));
0x00053450 lw s3, 0x1cf0(v1) | s3 = *(v1);
0x00053454 sw v0, 0x1b0(sp) | *(var_1b0h) = v0;
0x00053458 lw v0, -0x7844(gp) | v0 = *((gp - 7697));
0x0005345c lbu v1, (v0) | v1 = *(v0);
0x00053460 lw v0, -0x7848(gp) | v0 = *((gp - 7698));
0x00053464 lw v0, (v0) | v0 = *(v0);
0x00053468 mul a0, v1, v0 | __asm ("mul a0, v1, v0");
0x0005346c sw a0, 0x1b8(sp) | *(var_1b8h) = a0;
0x00053470 lw v0, -0x7848(gp) | v0 = *((gp - 7698));
| }
0x00053474 lw v1, 0x1b0(sp) | v1 = *(var_1b0h);
0x00053478 addiu a1, zero, 0x1c | a1 = 0x1c;
0x0005347c lw v0, (v0) | v0 = *(v0);
0x00053480 lw a0, -0x7ecc(gp) | a0 = *((gp - 8115));
0x00053484 lw t9, 0x1b8(sp) | t9 = *(var_1b8h);
0x00053488 sltu v0, s3, v0 | v0 = (s3 < v0) ? 1 : 0;
| if (v0 != 0) {
0x0005348c movz s3, zero, v0 | s3 = 0;
| }
0x00053490 addiu v0, v1, 1 | v0 = v1 + 1;
0x00053494 mul v1, s3, a1 | __asm ("mul v1, s3, a1");
0x00053498 andi v0, v0, 0xffff | v0 &= 0xffff;
0x0005349c sh v0, -0x2a80(a0) | *((a0 - 5440)) = v0;
0x000534a0 addiu t9, t9, -1 | t9 += -1;
0x000534a4 sw v0, 0x1b0(sp) | *(var_1b0h) = v0;
0x000534a8 lw v0, -0x7840(gp) | v0 = *((gp - 7696));
0x000534ac sw t9, 0x1b8(sp) | *(var_1b8h) = t9;
0x000534b0 lw t9, -0x7ecc(gp) | t9 = *((gp - 8115));
0x000534b4 lw v0, (v0) | v0 = *(v0);
0x000534b8 addiu a2, zero, 0x1c | a2 = 0x1c;
0x000534bc sw s3, 0x1cf0(t9) | *(t9) = s3;
0x000534c0 lw t9, -0x759c(gp) | t9 = *((gp - 7527));
0x000534c4 addiu a0, sp, 0x178 | a0 = sp + aav.0x00000178;
0x000534c8 addu a1, v1, v0 | a1 = v1 + v0;
0x000534cc jalr t9 | t9 ();
0x000534d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000534d4 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000534d8 lw t9, -0x75ac(gp) | t9 = *((gp - 7531));
0x000534dc addiu a1, zero, 1 | a1 = 1;
0x000534e0 jalr t9 | t9 ();
0x000534e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000534e8 move a0, s2 | a0 = s2;
0x000534ec move a1, zero | a1 = 0;
0x000534f0 lw s1, -0x7fe4(gp) | s1 = *((gp - 8185));
0x000534f4 move t9, s1 | t9 = s1;
0x000534f8 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x000534fc bal 0x3a940 | sym_memset ();
0x00053500 addiu v1, sp, 0x120 | v1 = sp + aav.0x00000120;
0x00053504 move a0, v1 | a0 = v1;
0x00053508 move t9, s1 | t9 = s1;
0x0005350c sw v1, 0x1a8(sp) | *(var_1a8h) = v1;
0x00053510 move a1, zero | a1 = 0;
0x00053514 addiu a2, zero, 0x30 | a2 = 0x30;
0x00053518 bal 0x3a940 | sym_memset ();
0x0005351c lw gp, 0x18(sp) | gp = *(var_18h);
0x00053520 lw v1, 0x1b0(sp) | v1 = *(var_1b0h);
0x00053524 addiu s1, zero, 1 | s1 = 1;
0x00053528 lw t9, -0x783c(gp) | t9 = *((gp - 7695));
0x0005352c sw v1, 0x120(sp) | *(var_120h) = v1;
0x00053530 sw s1, 0x140(sp) | *(var_140h) = s1;
0x00053534 sw s1, 0x134(sp) | *(var_134h) = s1;
0x00053538 addiu a0, sp, 0x120 | a0 = sp + aav.0x00000120;
0x0005353c move a1, s2 | a1 = s2;
0x00053540 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x00053544 bal 0x52a00 | fcn_00052a00 ();
0x00053548 move s5, v0 | s5 = v0;
0x0005354c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00053550 bltz v0, 0x53a70 | goto label_6;
| }
0x00053554 lw t9, -0x7838(gp) | t9 = *((gp - 7694));
0x00053558 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x0005355c sw s4, 0x194(sp) | *(var_194h) = s4;
0x00053560 sw fp, 0x198(sp) | *(var_198h) = fp;
0x00053564 sw s1, 0x19c(sp) | *(var_19ch) = s1;
0x00053568 addiu a0, sp, 0x194 | a0 = sp + aav.0x00000194;
0x0005356c addu a1, s2, v0 | a1 = s2 + v0;
0x00053570 subu a2, a2, v0 | __asm ("subu a2, a2, v0");
0x00053574 bal 0x52e60 | fcn_00052e60 ();
0x00053578 sw v0, 0x1ac(sp) | *(length) = v0;
0x0005357c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00053580 bltz v0, 0x53a70 | goto label_6;
| }
0x00053584 lw t9, -0x7d40(gp) | t9 = *((gp - 8016));
0x00053588 lhu a0, 0x178(sp) | a0 = *(domain);
0x0005358c addiu a1, zero, 1 | a1 = 1;
0x00053590 addiu a2, zero, 0x11 | a2 = 0x11;
0x00053594 bal 0x58470 | sym_socket ();
0x00053598 move s1, v0 | s1 = v0;
0x0005359c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000535a0 bltz v0, 0x53a54 | goto label_8;
| }
0x000535a4 lw t9, -0x7d3c(gp) | t9 = *((gp - 8015));
0x000535a8 move a0, v0 | a0 = v0;
0x000535ac addiu a1, sp, 0x178 | a1 = sp + aav.0x00000178;
0x000535b0 addiu a2, zero, 0x1c | a2 = 0x1c;
0x000535b4 bal 0x57b90 | sym_connect ();
0x000535b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000535bc bltz v0, 0x53a54 | goto label_8;
| }
0x000535c0 lw t9, 0x1ac(sp) | t9 = *(length);
0x000535c4 move a0, s1 | a0 = s1;
0x000535c8 move a1, s2 | a1 = s2;
0x000535cc addu a2, s5, t9 | a2 = s5 + t9;
0x000535d0 lw t9, -0x7d2c(gp) | t9 = *((gp - 8011));
0x000535d4 move a3, zero | a3 = 0;
0x000535d8 bal 0x580b0 | sym_send ();
0x000535dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000535e0 lw v0, -0x7834(gp) | v0 = *((gp - 7693));
0x000535e4 lbu v1, (v0) | v1 = *(v0);
0x000535e8 addiu v0, zero, 0x3e8 | v0 = aav.0x000003e8;
0x000535ec mul a0, v1, v0 | __asm ("mul a0, v1, v0");
0x000535f0 sw a0, 0x1ac(sp) | *(length) = a0;
0x000535f4 lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
| do {
0x000535f8 lw a2, 0x1ac(sp) | a2 = *(length);
0x000535fc addiu v0, zero, 1 | v0 = 1;
0x00053600 sw s1, 0x1a0(sp) | *(var_1a0h) = s1;
0x00053604 sh v0, 0x1a4(sp) | *(var_1a4h) = v0;
0x00053608 addiu a0, sp, 0x1a0 | a0 = sp + aav.0x000001a0;
0x0005360c addiu a1, zero, 1 | a1 = 1;
0x00053610 jalr t9 | t9 ();
0x00053614 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x00053618 blez v0, 0x53a54 | goto label_8;
| }
0x0005361c lw v1, 0x1ac(sp) | v1 = *(length);
0x00053620 lw t9, -0x7830(gp) | t9 = *((gp - 7692));
0x00053624 move a0, s1 | a0 = s1;
0x00053628 addiu v1, v1, -0x3e8 | v1 += -aav.0x000003e8;
0x0005362c sw v1, 0x1ac(sp) | *(length) = v1;
0x00053630 move a1, s2 | a1 = s2;
0x00053634 addiu a2, zero, 0x200 | a2 = aav.0x00000200;
0x00053638 addiu a3, zero, 0x40 | a3 = 0x40;
0x0005363c bal 0x57d80 | sym_recv ();
0x00053640 move s5, v0 | s5 = v0;
0x00053644 slti v0, v0, 0xc | v0 = (v0 < 0xc) ? 1 : 0;
0x00053648 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005364c beqz v0, 0x5366c | goto label_9;
| }
| if (s5 < 0) {
0x00053650 bltzl s5, 0x53a58 | goto label_10;
| }
0x00053654 addiu s3, s3, 1 | s3++;
| label_0:
0x00053658 lw v1, 0x1ac(sp) | v1 = *(length);
| label_1:
0x0005365c lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
0x00053660 bnez v1, 0x535f8 |
| } while (v1 != 0);
0x00053664 addiu s3, s3, 1 | s3++;
0x00053668 b 0x53a58 | goto label_10;
| label_9:
0x0005366c lw t9, -0x782c(gp) | t9 = *((gp - 7691));
0x00053670 move a0, s2 | a0 = s2;
0x00053674 addiu a1, sp, 0x120 | a1 = sp + aav.0x00000120;
0x00053678 bal 0x52ae0 | fcn_00052ae0 ();
0x0005367c lw v0, 0x120(sp) | v0 = *(var_120h);
0x00053680 lw v1, 0x1b0(sp) | v1 = *(var_1b0h);
0x00053684 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != v1) {
0x00053688 bne v0, v1, 0x53658 | goto label_0;
| }
0x0005368c lw v0, 0x124(sp) | v0 = *(var_124h);
0x00053690 lw v1, 0x1ac(sp) | v1 = *(length);
| if (v0 == 0) {
0x00053694 beqz v0, 0x5365c | goto label_1;
| }
0x00053698 lw v0, 0x13c(sp) | v0 = *(var_13ch);
0x0005369c addiu v1, v0, -2 | v1 = v0 + -2;
0x000536a0 sltiu v1, v1, 2 | v1 = (v1 < 2) ? 1 : 0;
0x000536a4 lw t9, 0x1bc(sp) | t9 = *(var_1bch);
| if (v1 != 0) {
0x000536a8 beqz v1, 0x536e4 |
0x000536ac addiu v0, zero, 0x2e | v0 = 0x2e;
| if (t9 != v0) {
0x000536b0 beq t9, v0, 0x536cc |
0x000536b4 nop |
0x000536b8 lw v1, 0x1b4(sp) | v1 = *(var_1b4h);
0x000536bc addiu v0, v1, -1 | v0 = v1 + -1;
0x000536c0 slt v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x000536c4 addiu s7, s7, 1 | s7++;
| if (v0 != 0) {
0x000536c8 bnez v0, 0x53a5c | goto label_11;
| }
| }
0x000536cc rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x000536d0 move v0, v1 | v0 = v1;
0x000536d4 lw v1, -0x7570(gp) | v1 = *((gp - 7516));
0x000536d8 addu v0, v1, v0 | v0 = v1 + v0;
0x000536dc addiu v1, zero, 1 | v1 = 1;
0x000536e0 b 0x5370c |
| } else {
0x000536e4 addiu s3, s3, 1 | s3++;
| if (v0 == 0) {
0x000536e8 bnel v0, zero, 0x53a58 | goto label_10;
| }
0x000536ec lw v0, 0x144(sp) | v0 = *(var_144h);
0x000536f0 addiu s7, zero, 0xc | s7 = 0xc;
| if (v0 > 0) {
0x000536f4 bgtz v0, 0x53778 | goto label_12;
| }
0x000536f8 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x000536fc move v0, v1 | v0 = v1;
0x00053700 lw v1, -0x7570(gp) | v1 = *((gp - 7516));
0x00053704 addu v0, v1, v0 | v0 = v1 + v0;
0x00053708 addiu v1, zero, 4 | v1 = 4;
| }
0x0005370c sw v1, (v0) | *(v0) = v1;
0x00053710 b 0x53a90 | goto label_13;
| label_2:
0x00053714 subu v0, s5, s7 | __asm ("subu v0, s5, s7");
| if (a2 == 0) {
0x00053718 beqz a2, 0x53a54 | goto label_8;
| }
0x0005371c move a0, a2 | a0 = a2;
| do {
| if (v0 <= 0) {
0x00053720 blezl v0, 0x53a58 | goto label_10;
| }
0x00053724 addiu s3, s3, 1 | s3++;
0x00053728 lbu v1, (a0) | v1 = *(a0);
0x0005372c addiu a3, a0, 1 | a3 = a0 + 1;
| if (v1 == 0) {
0x00053730 beqz v1, 0x53758 | goto label_14;
| }
0x00053734 and t3, v1, t1 | t3 = v1 & t1;
0x00053738 addu a0, a3, v1 | a0 = a3 + v1;
| if (t3 != t2) {
0x0005373c bnel t3, t2, 0x5374c |
0x00053740 addiu a3, a0, 2 | a3 = a0 + 2;
0x00053744 addiu v0, v0, -2 | v0 += -2;
0x00053748 b 0x53758 |
| } else {
0x0005374c nor v1, zero, v1 | __asm ("nor v1, zero, v1");
0x00053750 addu v0, v1, v0 | v0 = v1 + v0;
0x00053754 b 0x53720 |
| }
| } while (1);
| label_14:
0x00053758 slti v0, v0, 4 | v0 = (v0 < 4) ? 1 : 0;
0x0005375c subu a2, a3, a2 | __asm ("subu a2, a3, a2");
| if (v0 != 0) {
0x00053760 bnez v0, 0x53a54 | goto label_8;
| }
0x00053764 addiu a2, a2, 4 | a2 += 4;
0x00053768 addu s7, s7, a2 | s7 += a2;
| if (a2 < 0) {
0x0005376c bltz a2, 0x53a54 | goto label_8;
| }
0x00053770 addiu a1, a1, 1 | a1++;
0x00053774 b 0x53784 | goto label_15;
| label_12:
0x00053778 move a1, zero | a1 = 0;
0x0005377c addiu t1, zero, -0x40 | t1 = -0x40;
0x00053780 addiu t2, zero, 0xc0 | t2 = 0xc0;
| label_15:
0x00053784 lw v0, 0x140(sp) | v0 = *(var_140h);
0x00053788 slt v0, a1, v0 | v0 = (a1 < v0) ? 1 : 0;
0x0005378c addu a2, s2, s7 | a2 = s2 + s7;
| if (v0 != 0) {
0x00053790 bnez v0, 0x53714 | goto label_2;
| }
0x00053794 addiu t9, zero, 1 | t9 = 1;
0x00053798 sw zero, (s0) | *(s0) = 0;
0x0005379c sw t9, 0x1b4(sp) | *(var_1b4h) = t9;
0x000537a0 sw zero, 0x1ac(sp) | *(length) = 0;
0x000537a4 b 0x53a0c | goto label_16;
| label_4:
0x000537a8 addiu v0, zero, 0x100 | v0 = aav.0x00000100;
0x000537ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x000537b0 move a0, s2 | a0 = s2;
0x000537b4 move a1, s7 | a1 = s7;
0x000537b8 move a2, s5 | a2 = s5;
0x000537bc addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x000537c0 bal 0x52cd0 | fcn_00052cd0 ();
0x000537c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x000537c8 bltz v0, 0x538b4 |
0x000537cc addiu a2, zero, -0xa | a2 = -0xa;
0x000537d0 subu a2, a2, v0 | __asm ("subu a2, a2, v0");
0x000537d4 subu a2, a2, s7 | __asm ("subu a2, a2, s7");
0x000537d8 addu a2, s5, a2 | a2 = s5 + a2;
0x000537dc addu a3, s7, v0 | a3 = s7 + v0;
| if (a2 >= 0) {
0x000537e0 bltz a2, 0x538a8 |
0x000537e4 lw t9, -0x7fac(gp) | t9 = *((gp - 8171));
0x000537e8 addu v1, s2, a3 | v1 = s2 + a3;
0x000537ec addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000537f0 sw v1, 0x1cc(sp) | *(var_1cch) = v1;
0x000537f4 sw a2, 0x1d0(sp) | *(var_1d0h) = a2;
0x000537f8 sw a3, 0x1c8(sp) | *(var_1c8h) = a3;
0x000537fc sw v0, 0x1c4(sp) | *(var_1c4h) = v0;
0x00053800 bal 0x3c240 | sym_strdup ();
0x00053804 lw v1, 0x1cc(sp) | v1 = *(var_1cch);
0x00053808 sw v0, 0x150(sp) | *(s2) = v0;
0x0005380c lw a3, 0x1c8(sp) | a3 = *(var_1c8h);
0x00053810 lbu v0, (v1) | v0 = *(v1);
0x00053814 lbu a0, 1(v1) | a0 = *((v1 + 1));
0x00053818 lw a2, 0x1d0(sp) | a2 = *(var_1d0h);
0x0005381c sll v0, v0, 8 | v0 <<= 8;
0x00053820 or v0, v0, a0 | v0 |= a0;
0x00053824 sw v0, 0x154(sp) | *(var_154h) = v0;
0x00053828 lbu v0, 2(v1) | v0 = *((v1 + 2));
0x0005382c lbu a0, 3(v1) | a0 = *((v1 + 3));
0x00053830 addiu a3, a3, 0xa | a3 += 0xa;
0x00053834 sll v0, v0, 8 | v0 <<= 8;
0x00053838 or v0, v0, a0 | v0 |= a0;
0x0005383c sw v0, 0x158(sp) | *(var_158h) = v0;
0x00053840 lbu a0, 4(v1) | a0 = *((v1 + 4));
0x00053844 lbu v0, 5(v1) | v0 = *((v1 + 5));
0x00053848 addiu v1, v1, 0xa | v1 += 0xa;
0x0005384c sll a0, a0, 0x18 | a0 <<= 0x18;
0x00053850 sll v0, v0, 0x10 | v0 <<= 0x10;
0x00053854 or v0, a0, v0 | v0 = a0 | v0;
0x00053858 lbu a0, -3(v1) | a0 = *((v1 - 3));
0x0005385c lw gp, 0x18(sp) | gp = *(var_18h);
0x00053860 lw a1, 0x1c4(sp) | a1 = *(var_1c4h);
0x00053864 or v0, v0, a0 | v0 |= a0;
0x00053868 lbu a0, -4(v1) | a0 = *((v1 - 4));
0x0005386c sll a0, a0, 8 | a0 <<= 8;
0x00053870 or v0, v0, a0 | v0 |= a0;
0x00053874 sw v0, 0x15c(sp) | *(var_15ch) = v0;
0x00053878 lbu v0, -2(v1) | v0 = *((v1 - 2));
0x0005387c lbu a0, -1(v1) | a0 = *((v1 - 1));
0x00053880 sw v1, 0x164(sp) | *(var_164h) = v1;
0x00053884 sll v0, v0, 8 | v0 <<= 8;
0x00053888 or v0, v0, a0 | v0 |= a0;
0x0005388c slt a2, a2, v0 | a2 = (a2 < v0) ? 1 : 0;
0x00053890 sw v0, 0x160(sp) | *(var_160h) = v0;
0x00053894 sw a3, 0x168(sp) | *(c) = a3;
| if (a2 != 0) {
0x00053898 bnez a2, 0x538b4 | goto label_17;
| }
0x0005389c addiu a1, a1, 0xa | a1 += 0xa;
0x000538a0 addu a1, a1, v0 | a1 += v0;
0x000538a4 b 0x538ac |
| } else {
0x000538a8 move a1, a2 | a1 = a2;
| }
0x000538ac lw v1, 0x1b4(sp) | v1 = *(var_1b4h);
| if (a1 >= 0) {
0x000538b0 bgez a1, 0x538ec | goto label_18;
| }
| }
| label_17:
0x000538b4 lw v1, 0x1ac(sp) | v1 = *(length);
0x000538b8 addiu s3, s3, 1 | s3++;
| if (v1 == 0) {
0x000538bc beqz v1, 0x53a58 | goto label_10;
| }
0x000538c0 lw v0, 0x130(sp) | v0 = *(var_130h);
0x000538c4 addiu s7, zero, -1 | s7 = -1;
| if (v0 == 0) {
0x000538c8 beqz v0, 0x53a5c | goto label_11;
| }
| do {
0x000538cc lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| label_3:
0x000538d0 move a0, s1 | a0 = s1;
0x000538d4 bal 0x62088 | sym_libc_close ();
0x000538d8 lw t9, 0x208(sp) | t9 = *(arg_208h);
0x000538dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (t9 != 0) {
0x000538e0 bnez t9, 0x53a28 | goto label_19;
| }
0x000538e4 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x000538e8 b 0x53a34 | goto label_20;
| label_18:
0x000538ec addu s7, s7, a1 | s7 += a1;
| if (v1 == 0) {
0x000538f0 beqz v1, 0x5399c | goto label_21;
| }
0x000538f4 lw v0, 0x1c(s0) | v0 = *((s0 + 7));
0x000538f8 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x000538fc lw a0, (s0) | a0 = *(s0);
0x00053900 sw v0, 0x16c(sp) | *(var_16ch) = v0;
0x00053904 lw v0, 0x20(s0) | v0 = *((s0 + 8));
0x00053908 sw v0, 0x170(sp) | *(var_170h) = v0;
0x0005390c lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x00053910 sw v0, 0x174(sp) | *(var_174h) = v0;
0x00053914 jalr t9 | t9 ();
0x00053918 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005391c move a0, s0 | a0 = s0;
0x00053920 addiu a1, sp, 0x150 | a1 = sp + aav.0x00000150;
0x00053924 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00053928 addiu a2, zero, 0x28 | a2 = 0x28;
0x0005392c bal 0x3a800 | sym_memcpy ();
0x00053930 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00053934 addiu v1, zero, 0x18 | v1 = 0x18;
0x00053938 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == v1) {
0x0005393c beq v0, v1, 0x5395c | goto label_22;
| }
0x00053940 lw v1, 0x1c(s0) | v1 = *((s0 + 7));
0x00053944 addiu v1, zero, 1 | v1 = 1;
0x00053948 beqz v1, 0x538cc |
| } while (v1 == 0);
0x0005394c addiu v1, zero, 0x1c | v1 = 0x1c;
| if (fp == v1) {
0x00053950 beq fp, v1, 0x5395c | goto label_22;
| }
0x00053954 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (fp != v1) {
0x00053958 bne fp, v1, 0x538d0 | goto label_3;
| }
| label_22:
0x0005395c lw v1, 0x1ac(sp) | v1 = *(length);
| if (v0 != fp) {
0x00053960 bne v0, fp, 0x53a04 | goto label_23;
| }
0x00053964 lw v0, 0x144(sp) | v0 = *(var_144h);
0x00053968 subu v0, v0, v1 | __asm ("subu v0, v0, v1");
0x0005396c lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x00053970 addiu v0, v0, -1 | v0 += -1;
0x00053974 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x00053978 addiu v1, v1, 4 | v1 += 4;
0x0005397c mul v0, v0, v1 | __asm ("mul v0, v0, v1");
0x00053980 lw v1, 0x20(s0) | v1 = *((s0 + 8));
0x00053984 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00053988 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
| if (v0 != 0) {
0x0005398c bnez v0, 0x538d0 | goto label_3;
| }
0x00053990 sw zero, 0x24(s0) | *((s0 + 9)) = 0;
0x00053994 sw zero, 0x1b4(sp) | *(var_1b4h) = 0;
0x00053998 b 0x53a00 | goto label_24;
| label_21:
0x0005399c lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x000539a0 lw a0, 0x150(sp) | a0 = *(s2);
0x000539a4 jalr t9 | t9 ();
0x000539a8 lw v0, 0x154(sp) | v0 = *(var_154h);
0x000539ac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == fp) {
0x000539b0 bne v0, fp, 0x53a00 |
0x000539b4 lw a2, 0x10(s0) | a2 = *((s0 + 4));
0x000539b8 lw v0, 0x160(sp) | v0 = *(var_160h);
| if (a2 != v0) {
0x000539bc beql a2, v0, 0x539d8 |
0x000539c0 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x000539c4 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x000539c8 lw a0, (s0) | a0 = *(s0);
0x000539cc jalr t9 | t9 ();
0x000539d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000539d4 b 0x53a54 | goto label_8;
| }
0x000539d8 lw v0, 0x1c(s0) | v0 = *((s0 + 7));
0x000539dc lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x000539e0 mul v1, a2, a0 | __asm ("mul v1, a2, a0");
0x000539e4 lw a1, 0x164(sp) | a1 = *(var_164h);
0x000539e8 addu a0, v1, v0 | a0 = v1 + v0;
0x000539ec bal 0x3a800 | sym_memcpy ();
0x000539f0 lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x000539f4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000539f8 addiu v0, v0, 1 | v0++;
0x000539fc sw v0, 0x24(s0) | *((s0 + 9)) = v0;
| }
| label_24:
0x00053a00 lw v1, 0x1ac(sp) | v1 = *(length);
| label_23:
0x00053a04 addiu v1, v1, 1 | v1++;
0x00053a08 sw v1, 0x1ac(sp) | *(length) = v1;
| label_16:
0x00053a0c lw v0, 0x144(sp) | v0 = *(var_144h);
0x00053a10 lw t9, 0x1ac(sp) | t9 = *(length);
0x00053a14 slt v0, t9, v0 | v0 = (t9 < v0) ? 1 : 0;
0x00053a18 lw t9, -0x7828(gp) | t9 = *((gp - 7690));
| if (v0 == 0) {
0x00053a1c bnel v0, zero, 0x537a8 | goto label_4;
| }
0x00053a20 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x00053a24 b 0x538d0 | goto label_3;
| label_19:
0x00053a28 lw v1, 0x208(sp) | v1 = *(arg_208h);
0x00053a2c sw s2, (v1) | *(v1) = s2;
0x00053a30 b 0x53a40 | goto label_25;
| label_20:
0x00053a34 move a0, s2 | a0 = s2;
0x00053a38 jalr t9 | t9 ();
0x00053a3c lw gp, 0x18(sp) | gp = *(var_18h);
| label_25:
0x00053a40 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00053a44 move a0, s4 | a0 = s4;
0x00053a48 jalr t9 | t9 ();
0x00053a4c lw ra, 0x1fc(sp) | ra = *(var_1fch);
0x00053a50 b 0x53ac4 | goto label_26;
| label_8:
0x00053a54 addiu s3, s3, 1 | s3++;
| label_10:
0x00053a58 addiu s7, zero, -1 | s7 = -1;
| label_11:
0x00053a5c lw t9, 0x1b8(sp) | t9 = *(var_1b8h);
0x00053a60 addiu v0, zero, -1 | v0 = -1;
| if (t9 > 0) {
0x00053a64 bgtz t9, 0x5339c | goto label_5;
| }
0x00053a68 b 0x53a74 | goto label_27;
0x00053a6c nop |
| label_6:
0x00053a70 addiu s1, zero, -1 | s1 = -1;
| label_27:
0x00053a74 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00053a78 move v0, v1 | v0 = v1;
0x00053a7c lw v1, -0x7570(gp) | v1 = *((gp - 7516));
0x00053a80 addu v1, v1, v0 | v1 += v0;
0x00053a84 addiu v0, zero, -1 | v0 = -1;
0x00053a88 sw v0, (v1) | *(v1) = v0;
| if (s1 != v0) {
0x00053a8c beq s1, v0, 0x53aa0 |
| label_13:
0x00053a90 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x00053a94 move a0, s1 | a0 = s1;
0x00053a98 bal 0x62088 | sym_libc_close ();
0x00053a9c lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00053aa0 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00053aa4 move a0, s4 | a0 = s4;
0x00053aa8 addiu s5, zero, -1 | s5 = -1;
0x00053aac jalr t9 | t9 ();
0x00053ab0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00053ab4 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00053ab8 move a0, s2 | a0 = s2;
0x00053abc jalr t9 | t9 ();
0x00053ac0 lw ra, 0x1fc(sp) | ra = *(var_1fch);
| label_26:
0x00053ac4 move v0, s5 | v0 = s5;
0x00053ac8 lw fp, 0x1f8(sp) | fp = *(var_1f8h);
0x00053acc lw s7, 0x1f4(sp) | s7 = *(var_1f4h);
0x00053ad0 lw s6, 0x1f0(sp) | s6 = *(var_1f0h);
0x00053ad4 lw s5, 0x1ec(sp) | s5 = *(var_1ech);
0x00053ad8 lw s4, 0x1e8(sp) | s4 = *(var_1e8h);
0x00053adc lw s3, 0x1e4(sp) | s3 = *(var_1e4h);
0x00053ae0 lw s2, 0x1e0(sp) | s2 = *(var_1e0h);
0x00053ae4 lw s1, 0x1dc(sp) | s1 = *(var_1dch);
0x00053ae8 lw s0, 0x1d8(sp) | s0 = *(var_1d8h);
0x00053aec addiu sp, sp, 0x200 |
0x00053af0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3fb20 */
| #include <stdint.h>
|
; (fcn) sym.clnt_create () | void clnt_create () {
0x0003fb20 lui gp, 7 |
0x0003fb24 addiu gp, gp, 0x5bc0 |
0x0003fb28 addu gp, gp, t9 | gp += t9;
0x0003fb2c addiu sp, sp, -0xf0 |
0x0003fb30 sw s2, 0xd0(sp) | *(var_d0h) = s2;
0x0003fb34 move s2, a1 | s2 = a1;
0x0003fb38 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x0003fb3c lw t9, -0x7e94(gp) | t9 = *((gp - 8101));
0x0003fb40 sw fp, 0xe8(sp) | *(var_e8h) = fp;
0x0003fb44 sw s4, 0xd8(sp) | *(var_d8h) = s4;
0x0003fb48 move fp, sp | fp = sp;
0x0003fb4c sw s3, 0xd4(sp) | *(var_d4h) = s3;
0x0003fb50 sw s1, 0xcc(sp) | *(var_cch) = s1;
0x0003fb54 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0003fb58 sw ra, 0xec(sp) | *(var_ech) = ra;
0x0003fb5c sw s7, 0xe4(sp) | *(var_e4h) = s7;
0x0003fb60 sw s6, 0xe0(sp) | *(var_e0h) = s6;
0x0003fb64 sw s5, 0xdc(sp) | *(var_dch) = s5;
0x0003fb68 sw s0, 0xc8(sp) | *(var_c8h) = s0;
0x0003fb6c move s4, a0 | s4 = a0;
0x0003fb70 addiu a1, a1, -0x5d18 | a1 += -0x5d18;
0x0003fb74 move a0, a3 | a0 = a3;
0x0003fb78 move s1, a2 | s1 = a2;
0x0003fb7c move s3, a3 | s3 = a3;
0x0003fb80 bal 0x3b5d0 | sym_strcmp ();
0x0003fb84 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0003fb88 bnez v0, 0x3fbe8 |
0x0003fb8c lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
0x0003fb90 addiu a2, zero, 0x6e | a2 = 0x6e;
0x0003fb94 addiu a0, fp, 0x20 | a0 = fp + 0x20;
0x0003fb98 move a1, zero | a1 = 0;
0x0003fb9c bal 0x3a940 | sym_memset ();
0x0003fba0 lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fba4 addiu v0, zero, 1 | v0 = 1;
0x0003fba8 addiu a0, fp, 0x22 | a0 = fp + 0x22;
0x0003fbac lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x0003fbb0 move a1, s4 | a1 = s4;
0x0003fbb4 sh v0, 0x20(fp) | *(var_20h) = v0;
0x0003fbb8 bal 0x3b600 | sym_strcpy ()
0x0003fbbc lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fbc0 addiu v0, zero, -1 | v0 = -1;
0x0003fbc4 sw v0, 0xb8(fp) | *(var_b8h) = v0;
0x0003fbc8 sw zero, 0x10(sp) | *(var_10h_3) = 0;
0x0003fbcc sw zero, 0x14(sp) | *(var_14h_3) = 0;
0x0003fbd0 addiu a0, fp, 0x20 | a0 = fp + 0x20;
0x0003fbd4 move a1, s2 | a1 = s2;
0x0003fbd8 move a2, s1 | a2 = s1;
0x0003fbdc addiu a3, fp, 0xb8 | a3 = fp + 0xb8;
0x0003fbe0 lw t9, -0x7a80(gp) | t9 = *((gp - 7840));
0x0003fbe4 b 0x3fdd8 | goto label_2;
| }
0x0003fbe8 lw s7, -0x7564(gp) | s7 = *((gp - 7513));
0x0003fbec addiu sp, sp, -0x408 |
0x0003fbf0 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0003fbf4 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003fbf8 addiu s0, zero, 0x400 | s0 = aav.0x00000400;
0x0003fbfc addiu s5, fp, 0xc0 | s5 = fp + 0xc0;
0x0003fc00 addiu s6, fp, 0xb4 | s6 = fp + 0xb4;
0x0003fc04 addu s7, s7, v1 | s7 += v1;
0x0003fc08 b 0x3fc54 |
| while (v0 != 0) {
0x0003fc0c lw v1, 0xb4(fp) | v1 = *(var_b4h);
| label_0:
0x0003fc10 addiu v0, zero, -1 | v0 = -1;
0x0003fc14 addiu v0, zero, 0x22 | v0 = 0x22;
| if (v1 == v0) {
0x0003fc18 bne v1, v0, 0x3fc28 |
0x0003fc1c lw v1, (s7) | v1 = *(s7);
0x0003fc20 sll s0, s0, 1 | s0 <<= 1;
| if (v1 == v0) {
0x0003fc24 beq v1, v0, 0x3fc40 | goto label_3;
| }
| }
0x0003fc28 lw t9, -0x7a7c(gp) | t9 = *((gp - 7839));
0x0003fc2c jalr t9 | t9 ();
0x0003fc30 nop |
0x0003fc34 addiu v1, zero, 0xd | v1 = 0xd;
0x0003fc38 sw v1, (v0) | *(v0) = v1;
0x0003fc3c b 0x3fe00 | goto label_4;
| label_3:
0x0003fc40 addiu v0, s0, 0xe | v0 = s0 + 0xe;
0x0003fc44 srl v0, v0, 3 | v0 >>= 3;
0x0003fc48 sll v0, v0, 3 | v0 <<= 3;
0x0003fc4c subu sp, sp, v0 |
0x0003fc50 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003fc54 lw t9, -0x7a78(gp) | t9 = *((gp - 7838));
0x0003fc58 sw s5, 0x10(sp) | *(var_10h) = s5;
0x0003fc5c sw s6, 0x14(sp) | *(var_14h) = s6;
0x0003fc60 move a0, s4 | a0 = s4;
0x0003fc64 addiu a1, fp, 0x20 | a1 = fp + 0x20;
0x0003fc68 move a3, s0 | a3 = s0;
0x0003fc6c bal 0x54d50 | sym_gethostbyname_r ();
0x0003fc70 lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fc74 bnez v0, 0x3fc0c |
| }
0x0003fc78 lw v0, 0xc0(fp) | v0 = *(var_c0h);
0x0003fc7c lw v1, 0xb4(fp) | v1 = *(var_b4h);
| if (v0 == 0) {
0x0003fc80 beqz v0, 0x3fc10 | goto label_0;
| }
0x0003fc84 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003fc88 addiu v1, zero, 2 | v1 = 2;
0x0003fc8c lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
| if (v0 != v1) {
0x0003fc90 beq v0, v1, 0x3fcb0 |
0x0003fc94 lw t9, -0x7a7c(gp) | t9 = *((gp - 7839));
0x0003fc98 jalr t9 | t9 ();
0x0003fc9c nop |
0x0003fca0 addiu v1, zero, 0xc | v1 = 0xc;
0x0003fca4 sw v1, (v0) | *(v0) = v1;
0x0003fca8 addiu v1, zero, 0x7c | v1 = 0x7c;
0x0003fcac b 0x3fdfc | goto label_5;
| }
0x0003fcb0 addiu a0, fp, 0x98 | a0 = fp + 0x98;
0x0003fcb4 move a1, zero | a1 = 0;
0x0003fcb8 addiu a2, zero, 8 | a2 = 8;
0x0003fcbc sh v0, 0x90(fp) | *(var_90h) = v0;
0x0003fcc0 sh zero, 0x92(fp) | *(var_92h) = 0;
0x0003fcc4 bal 0x3a940 | sym_memset ();
0x0003fcc8 lw v0, 0xc0(fp) | v0 = *(var_c0h);
0x0003fccc lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fcd0 addiu a0, fp, 0x94 | a0 = fp + 0x94;
0x0003fcd4 lw v1, 0x10(v0) | v1 = *((v0 + 4));
0x0003fcd8 lw a2, 0xc(v0) | a2 = *((v0 + 3));
0x0003fcdc lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x0003fce0 lw a1, (v1) | a1 = *(v1);
0x0003fce4 addiu s0, zero, 0x400 | s0 = aav.0x00000400;
0x0003fce8 addiu s4, fp, 0xbc | s4 = fp + 0xbc;
0x0003fcec bal 0x3a800 | sym_memcpy ();
0x0003fcf0 lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fcf4 addiu sp, sp, -0x408 |
0x0003fcf8 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0003fcfc lw s5, -0x7564(gp) | s5 = *((gp - 7513));
0x0003fd00 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003fd04 addu s5, s5, v1 | s5 += v1;
0x0003fd08 b 0x3fd44 |
| while (v0 != 0) {
0x0003fd0c lw v1, (s5) | v1 = *(s5);
| label_1:
0x0003fd10 addiu v0, zero, 0x22 | v0 = 0x22;
0x0003fd14 sll s0, s0, 1 | s0 <<= 1;
| if (v1 != v0) {
0x0003fd18 beq v1, v0, 0x3fd30 |
0x0003fd1c lw t9, -0x7a7c(gp) | t9 = *((gp - 7839));
0x0003fd20 jalr t9 | t9 ();
0x0003fd24 nop |
0x0003fd28 addiu v1, zero, 0x11 | v1 = 0x11;
0x0003fd2c b 0x3fdf4 | goto label_6;
| }
0x0003fd30 addiu v0, s0, 0xe | v0 = s0 + 0xe;
0x0003fd34 srl v0, v0, 3 | v0 >>= 3;
0x0003fd38 sll v0, v0, 3 | v0 <<= 3;
0x0003fd3c subu sp, sp, v0 |
0x0003fd40 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x0003fd44 lw t9, -0x7a74(gp) | t9 = *((gp - 7837));
0x0003fd48 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x0003fd4c move a0, s3 | a0 = s3;
0x0003fd50 addiu a1, fp, 0xa0 | a1 = fp + 0xa0;
0x0003fd54 move a3, s0 | a3 = s0;
0x0003fd58 bal 0x4e5a0 | sym_getprotobyname_r ();
0x0003fd5c lw gp, 0x18(fp) | gp = *(var_18h);
0x0003fd60 bnez v0, 0x3fd0c |
| }
0x0003fd64 lw v0, 0xbc(fp) | v0 = *(var_bch);
| if (v0 == 0) {
0x0003fd68 beql v0, zero, 0x3fd10 | goto label_1;
| }
0x0003fd6c lw v1, (s5) | v1 = *(s5);
0x0003fd70 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0003fd74 addiu v1, zero, -1 | v1 = -1;
0x0003fd78 sw v1, 0xb8(fp) | *(var_b8h) = v1;
0x0003fd7c addiu v1, zero, 6 | v1 = 6;
0x0003fd80 addiu v1, zero, 0x11 | v1 = 0x11;
| if (v0 != v1) {
0x0003fd84 beq v0, v1, 0x3fdbc |
0x0003fd88 lw t9, -0x7a7c(gp) | t9 = *((gp - 7839));
| if (v0 != v1) {
0x0003fd8c bne v0, v1, 0x3fde8 | goto label_7;
| }
0x0003fd90 lw t9, -0x7a70(gp) | t9 = *((gp - 7836));
0x0003fd94 addiu v0, fp, 0xb8 | v0 = fp + 0xb8;
0x0003fd98 sw v0, 0x14(sp) | *(var_14h_2) = v0;
0x0003fd9c sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0003fda0 addiu a3, zero, 5 | a3 = 5;
0x0003fda4 addiu a0, fp, 0x90 | a0 = fp + 0x90;
0x0003fda8 move a1, s2 | a1 = s2;
0x0003fdac move a2, s1 | a2 = s1;
0x0003fdb0 bal 0x42378 | sym_clntudp_create ();
0x0003fdb4 b 0x3fde0 | goto label_8;
0x0003fdb8 nop |
| }
0x0003fdbc lw t9, -0x7a6c(gp) | t9 = *((gp - 7835));
0x0003fdc0 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x0003fdc4 sw zero, 0x14(sp) | *(var_14h_2) = 0;
0x0003fdc8 addiu a0, fp, 0x90 | a0 = fp + 0x90;
0x0003fdcc move a1, s2 | a1 = s2;
0x0003fdd0 move a2, s1 | a2 = s1;
0x0003fdd4 addiu a3, fp, 0xb8 | a3 = fp + 0xb8;
| label_2:
0x0003fdd8 jalr t9 | t9 ();
0x0003fddc nop |
| label_8:
0x0003fde0 move sp, fp |
0x0003fde4 b 0x3fe08 | goto label_9;
| label_7:
0x0003fde8 jalr t9 | t9 ();
0x0003fdec nop |
0x0003fdf0 addiu v1, zero, 0xc | v1 = 0xc;
| label_6:
0x0003fdf4 sw v1, (v0) | *(v0) = v1;
0x0003fdf8 addiu v1, zero, 0x7b | v1 = 0x7b;
| label_5:
0x0003fdfc sw v1, 8(v0) | *((v0 + 2)) = v1;
| label_4:
0x0003fe00 move v0, zero | v0 = 0;
0x0003fe04 move sp, fp |
| label_9:
0x0003fe08 lw ra, 0xec(sp) | ra = *(var_ech);
0x0003fe0c lw fp, 0xe8(sp) | fp = *(var_e8h);
0x0003fe10 lw s7, 0xe4(sp) | s7 = *(var_e4h);
0x0003fe14 lw s6, 0xe0(sp) | s6 = *(var_e0h);
0x0003fe18 lw s5, 0xdc(sp) | s5 = *(var_dch);
0x0003fe1c lw s4, 0xd8(sp) | s4 = *(var_d8h);
0x0003fe20 lw s3, 0xd4(sp) | s3 = *(var_d4h);
0x0003fe24 lw s2, 0xd0(sp) | s2 = *(var_d0h);
0x0003fe28 lw s1, 0xcc(sp) | s1 = *(var_cch);
0x0003fe2c lw s0, 0xc8(sp) | s0 = *(var_c8h);
0x0003fe30 addiu sp, sp, 0xf0 |
0x0003fe34 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x401cc */
| #include <stdint.h>
|
; (fcn) sym.clnt_spcreateerror () | void clnt_spcreateerror () {
0x000401cc lui gp, 7 |
0x000401d0 addiu gp, gp, 0x5514 |
0x000401d4 addu gp, gp, t9 | gp += t9;
0x000401d8 lw t9, -0x7b0c(gp) | t9 = *((gp - 7875));
0x000401dc addiu sp, sp, -0x438 |
0x000401e0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000401e4 sw s3, 0x428(sp) | *(var_428h) = s3;
0x000401e8 sw s0, 0x41c(sp) | *(var_41ch) = s0;
0x000401ec sw ra, 0x434(sp) | *(var_434h) = ra;
0x000401f0 sw s5, 0x430(sp) | *(var_430h) = s5;
0x000401f4 sw s4, 0x42c(sp) | *(var_42ch) = s4;
0x000401f8 sw s2, 0x424(sp) | *(var_424h) = s2;
0x000401fc sw s1, 0x420(sp) | *(var_420h) = s1;
0x00040200 addiu t9, t9, -0x1c0 | t9 += -aav.0x000001c0;
0x00040204 move s0, a0 | s0 = a0;
0x00040208 bal 0x3fe40 | fcn_0003fe40 ();
0x0004020c move s3, v0 | s3 = v0;
0x00040210 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00040214 beqz v0, 0x40350 |
0x00040218 lw t9, -0x7a7c(gp) | t9 = *((gp - 7839));
0x0004021c jalr t9 | t9 ();
0x00040220 nop |
0x00040224 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040228 move a2, s0 | a2 = s0;
0x0004022c move a0, s3 | a0 = s3;
0x00040230 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00040234 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x00040238 move s4, v0 | s4 = v0;
0x0004023c addiu a1, a1, -0x7f00 | a1 += -0x7f00;
0x00040240 bal 0x2f930 | sym_sprintf ();
0x00040244 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040248 lw a0, (s4) | a0 = *(s4);
0x0004024c lw s5, -0x7a68(gp) | s5 = *((gp - 7834));
0x00040250 move t9, s5 | t9 = s5;
0x00040254 addu s0, s3, v0 | s0 = s3 + v0;
0x00040258 bal 0x3fe9c | sym_clnt_sperrno ();
0x0004025c lw gp, 0x10(sp) | gp = *(var_10h);
0x00040260 move a0, s0 | a0 = s0;
0x00040264 lw s2, -0x7f44(gp) | s2 = *((gp - 8145));
0x00040268 move t9, s2 | t9 = s2;
0x0004026c move a1, v0 | a1 = v0;
0x00040270 bal 0x3b600 | sym_strcpy ()
0x00040274 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040278 lw s1, -0x7fdc(gp) | s1 = *((gp - 8183));
0x0004027c move t9, s1 | t9 = s1;
0x00040280 move a0, s0 | a0 = s0;
0x00040284 bal 0x3b6b0 | sym_strlen ();
0x00040288 addu s0, s0, v0 | s0 += v0;
0x0004028c lw v0, (s4) | v0 = *(s4);
0x00040290 addiu v1, zero, 0xc | v1 = 0xc;
0x00040294 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != v1) {
0x00040298 beq v0, v1, 0x402e4 |
0x0004029c addiu v1, zero, 0xe | v1 = 0xe;
0x000402a0 addiu v0, zero, 0xa | v0 = 0xa;
| if (v0 != v1) {
0x000402a4 bne v0, v1, 0x40348 | goto label_0;
| }
0x000402a8 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x000402ac move a0, s0 | a0 = s0;
0x000402b0 move t9, s2 | t9 = s2;
0x000402b4 addiu a1, a1, -0x5c74 | a1 += -0x5c74;
0x000402b8 bal 0x3b600 | sym_strcpy ()
0x000402bc move t9, s1 | t9 = s1;
0x000402c0 move a0, s0 | a0 = s0;
0x000402c4 bal 0x3b6b0 | sym_strlen ();
0x000402c8 lw a0, 4(s4) | a0 = *((s4 + 1));
0x000402cc move t9, s5 | t9 = s5;
0x000402d0 addu s0, s0, v0 | s0 += v0;
0x000402d4 bal 0x3fe9c | sym_clnt_sperrno ();
0x000402d8 move a1, v0 | a1 = v0;
0x000402dc move a0, s0 | a0 = s0;
0x000402e0 b 0x40328 |
| } else {
0x000402e4 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x000402e8 move a0, s0 | a0 = s0;
0x000402ec move t9, s2 | t9 = s2;
0x000402f0 addiu a1, a1, -0x5c74 | a1 += -0x5c74;
0x000402f4 bal 0x3b600 | sym_strcpy ()
0x000402f8 move t9, s1 | t9 = s1;
0x000402fc move a0, s0 | a0 = s0;
0x00040300 bal 0x3b6b0 | sym_strlen ();
0x00040304 lw gp, 0x10(sp) | gp = *(var_10h);
0x00040308 lw a0, 8(s4) | a0 = *((s4 + 2));
0x0004030c addu s0, s0, v0 | s0 += v0;
0x00040310 lw t9, -0x7b90(gp) | t9 = *((gp - 7908));
0x00040314 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x00040318 addiu a2, zero, 0x400 | a2 = aav.0x00000400;
0x0004031c bal 0x3bfe0 | sym_glibc_strerror_r ();
0x00040320 move a0, s0 | a0 = s0;
0x00040324 addiu a1, sp, 0x18 | a1 = sp + 0x18;
| }
0x00040328 move t9, s2 | t9 = s2;
0x0004032c bal 0x3b600 | sym_strcpy ()
0x00040330 nop |
0x00040334 move t9, s1 | t9 = s1;
0x00040338 move a0, s0 | a0 = s0;
0x0004033c bal 0x3b6b0 | sym_strlen ();
0x00040340 addu s0, s0, v0 | s0 += v0;
0x00040344 addiu v0, zero, 0xa | v0 = 0xa;
| label_0:
0x00040348 sb v0, (s0) | *(s0) = v0;
0x0004034c sb zero, 1(s0) | *(var_1h) = 0;
| }
0x00040350 lw ra, 0x434(sp) | ra = *(var_434h);
0x00040354 move v0, s3 | v0 = s3;
0x00040358 lw s5, 0x430(sp) | s5 = *(var_430h);
0x0004035c lw s4, 0x42c(sp) | s4 = *(var_42ch);
0x00040360 lw s3, 0x428(sp) | s3 = *(var_428h);
0x00040364 lw s2, 0x424(sp) | s2 = *(var_424h);
0x00040368 lw s1, 0x420(sp) | s1 = *(var_420h);
0x0004036c lw s0, 0x41c(sp) | s0 = *(var_41ch);
0x00040370 addiu sp, sp, 0x438 |
0x00040374 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3ff38 */
| #include <stdint.h>
|
; (fcn) sym.clnt_sperror () | void clnt_sperror () {
0x0003ff38 lui gp, 7 |
0x0003ff3c addiu gp, gp, 0x57a8 |
0x0003ff40 addu gp, gp, t9 | gp += t9;
0x0003ff44 lw t9, -0x7b0c(gp) | t9 = *((gp - 7875));
0x0003ff48 addiu sp, sp, -0x448 |
0x0003ff4c sw s0, 0x430(sp) | *(var_430h) = s0;
0x0003ff50 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003ff54 sw a0, 0x428(sp) | *(var_428h) = a0;
0x0003ff58 sw ra, 0x444(sp) | *(var_444h) = ra;
0x0003ff5c sw s4, 0x440(sp) | *(var_440h) = s4;
0x0003ff60 sw s3, 0x43c(sp) | *(var_43ch) = s3;
0x0003ff64 sw s2, 0x438(sp) | *(var_438h) = s2;
0x0003ff68 sw s1, 0x434(sp) | *(var_434h) = s1;
0x0003ff6c addiu t9, t9, -0x1c0 | t9 += -aav.0x000001c0;
0x0003ff70 move s0, a1 | s0 = a1;
0x0003ff74 bal 0x3fe40 | fcn_0003fe40 ();
0x0003ff78 lw a0, 0x428(sp) | a0 = *(var_428h);
| if (v0 != 0) {
0x0003ff7c beqz v0, 0x40164 |
0x0003ff80 move s1, v0 | s1 = v0;
0x0003ff84 lw v0, 4(a0) | v0 = *((a0 + 1));
0x0003ff88 lw t9, 8(v0) | t9 = *((v0 + 2));
0x0003ff8c addiu a1, sp, 0x418 | a1 = sp + aav.0x00000418;
0x0003ff90 jalr t9 | t9 ();
0x0003ff94 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ff98 move a2, s0 | a2 = s0;
0x0003ff9c move a0, s1 | a0 = s1;
0x0003ffa0 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x0003ffa4 lw s2, -0x7f70(gp) | s2 = *((gp - 8156));
0x0003ffa8 move t9, s2 | t9 = s2;
0x0003ffac addiu a1, a1, -0x7f00 | a1 += -0x7f00;
0x0003ffb0 bal 0x2f930 | sym_sprintf ();
0x0003ffb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ffb8 lw a0, 0x418(sp) | a0 = *(format);
0x0003ffbc lw t9, -0x7a68(gp) | t9 = *((gp - 7834));
0x0003ffc0 addu s0, s1, v0 | s0 = s1 + v0;
0x0003ffc4 bal 0x3fe9c | sym_clnt_sperrno ();
0x0003ffc8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ffcc move a0, s0 | a0 = s0;
0x0003ffd0 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x0003ffd4 move a1, v0 | a1 = v0;
0x0003ffd8 bal 0x3b600 | sym_strcpy ()
0x0003ffdc lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ffe0 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0003ffe4 move a0, s0 | a0 = s0;
0x0003ffe8 bal 0x3b6b0 | sym_strlen ();
0x0003ffec addu s0, s0, v0 | s0 += v0;
0x0003fff0 lw v0, 0x418(sp) | v0 = *(format);
0x0003fff4 sltiu v1, v0, 0x12 | v1 = (v0 < 0x12) ? 1 : 0;
0x0003fff8 j 0x6f00040 | void (*0x6f00040)() ();
| if (v1 != 0) {
0x0003fffc beqz v1, 0x4012c |
0x00040000 lw zero, (t8) | 0 = *(t8);
0x00040004 sll v0, v0, 2 | v0 <<= 2;
0x00040008 addiu v1, v1, -0x5c70 | v1 += -0x5c70;
0x0004000c addu v0, v1, v0 | v0 = v1 + v0;
0x00040010 lw v0, (v0) | v0 = *(v0);
0x00040014 addu v0, v0, gp | v0 += gp;
0x00040018 jr v0 | v0 ();
0x0004001c nop |
| }
0x0004012c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00040130 lw a2, 0x41c(sp) | a2 = *(var_41ch);
0x00040134 lw a3, 0x420(sp) | a3 = *(var_420h);
0x00040138 move a0, s0 | a0 = s0;
0x0004013c addiu a1, a1, -0x5c8c | a1 += -0x5c8c;
0x00040140 move t9, s2 | t9 = s2;
0x00040144 bal 0x2f930 | sym_sprintf ();
0x00040148 nop |
0x0004014c addu s0, s0, v0 | s0 += v0;
0x00040150 addiu v0, zero, 0xa | v0 = 0xa;
0x00040154 sb v0, (s0) | *(s0) = v0;
0x00040158 sb zero, 1(s0) | *((s0 + 1)) = 0;
0x0004015c move v0, s1 | v0 = s1;
0x00040160 b 0x40168 |
| } else {
0x00040164 move v0, zero | v0 = 0;
| }
0x00040168 lw ra, 0x444(sp) | ra = *(var_444h);
0x0004016c lw s4, 0x440(sp) | s4 = *(var_440h);
0x00040170 lw s3, 0x43c(sp) | s3 = *(var_43ch);
0x00040174 lw s2, 0x438(sp) | s2 = *(var_438h);
0x00040178 lw s1, 0x434(sp) | s1 = *(var_434h);
0x0004017c lw s0, 0x430(sp) | s0 = *(var_430h);
0x00040180 addiu sp, sp, 0x448 |
0x00040184 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x30010 */
| #include <stdint.h>
|
; (fcn) sym.ctermid () | void ctermid () {
0x00030010 lui gp, 8 |
0x00030014 addiu gp, gp, 0x56d0 |
0x00030018 addu gp, gp, t9 | gp += t9;
0x0003001c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
| if (a0 == 0) {
0x00030020 bnez a0, 0x3002c |
0x00030024 lw a0, -0x7ecc(gp) | a0 = *((gp - 8115));
0x00030028 addiu a0, a0, -0x9b0 | a0 += -0x9b0;
| }
0x0003002c lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00030030 addiu a1, a1, -0x70a4 | a1 += -0x70a4;
0x00030034 b 0x3b600 | return void (*0x3b600)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x5880c */
| #include <stdint.h>
|
; (fcn) sym.ether_ntohost () | void ether_ntohost () {
0x0005880c lui gp, 6 |
0x00058810 addiu gp, gp, -0x312c |
0x00058814 addu gp, gp, t9 | gp += t9;
0x00058818 addiu sp, sp, -0x140 |
0x0005881c sw s4, 0x130(sp) | *(var_130h) = s4;
0x00058820 sw s3, 0x12c(sp) | *(var_12ch) = s3;
0x00058824 move s4, a1 | s4 = a1;
0x00058828 move s3, a0 | s3 = a0;
0x0005882c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00058830 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00058834 lw t9, -0x7dd0(gp) | t9 = *((gp - 8052));
0x00058838 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0005883c sw ra, 0x13c(sp) | *(var_13ch) = ra;
0x00058840 sw s6, 0x138(sp) | *(var_138h) = s6;
0x00058844 sw s5, 0x134(sp) | *(var_134h) = s5;
0x00058848 sw s2, 0x128(sp) | *(var_128h) = s2;
0x0005884c sw s1, 0x124(sp) | *(var_124h) = s1;
0x00058850 sw s0, 0x120(sp) | *(var_120h) = s0;
0x00058854 addiu a0, a0, -0x49c8 | a0 += -0x49c8;
0x00058858 addiu a1, a1, -0x7aa4 | a1 += -0x7aa4;
0x0005885c jalr t9 | t9 ();
0x00058860 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00058864 bnez v0, 0x588c0 | goto label_0;
| }
0x00058868 addiu s1, zero, -1 | s1 = -1;
0x0005886c b 0x58904 | goto label_1;
| do {
0x00058870 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00058874 addiu t9, s5, -0x7918 | t9 = s5 + -0x7918;
0x00058878 addiu a1, sp, 0x118 | a1 = sp + aav.0x00000118;
0x0005887c bal 0x586e8 | fcn_000586e8 ();
0x00058880 move s1, v0 | s1 = v0;
| if (v0 != 0) {
0x00058884 beqz v0, 0x588d0 |
0x00058888 move a0, s4 | a0 = s4;
0x0005888c addiu a1, sp, 0x118 | a1 = sp + aav.0x00000118;
0x00058890 move t9, s6 | t9 = s6;
0x00058894 addiu a2, zero, 6 | a2 = 6;
0x00058898 bal 0x3aaec | sym_bcmp ();
0x0005889c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000588a0 bnez v0, 0x588d0 | goto label_2;
| }
0x000588a4 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x000588a8 move a1, s1 | a1 = s1;
0x000588ac move a0, s3 | a0 = s3;
0x000588b0 bal 0x3b600 | sym_strcpy ()
0x000588b4 move s1, zero | s1 = 0;
0x000588b8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000588bc b 0x588f0 | goto label_3;
| label_0:
0x000588c0 lw s2, -0x7dc8(gp) | s2 = *((gp - 8050));
0x000588c4 lw s5, -0x77b4(gp) | s5 = *((gp - 7661));
0x000588c8 lw s6, -0x7d80(gp) | s6 = *((gp - 8032));
0x000588cc move s0, v0 | s0 = v0;
| }
| label_2:
0x000588d0 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x000588d4 addiu a1, zero, 0x100 | a1 = aav.0x00000100;
0x000588d8 move t9, s2 | t9 = s2;
0x000588dc move a2, s0 | a2 = s0;
0x000588e0 jalr t9 | t9 ();
0x000588e4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000588e8 bnez v0, 0x58870 |
| } while (v0 != 0);
0x000588ec addiu s1, zero, -1 | s1 = -1;
| label_3:
0x000588f0 lw t9, -0x7dcc(gp) | t9 = *((gp - 8051));
0x000588f4 move a0, s0 | a0 = s0;
0x000588f8 jalr t9 | t9 ();
0x000588fc lw ra, 0x13c(sp) | ra = *(var_13ch);
0x00058900 b 0x58908 | goto label_4;
| label_1:
0x00058904 lw ra, 0x13c(sp) | ra = *(var_13ch);
| label_4:
0x00058908 move v0, s1 | v0 = s1;
0x0005890c lw s6, 0x138(sp) | s6 = *(var_138h);
0x00058910 lw s5, 0x134(sp) | s5 = *(var_134h);
0x00058914 lw s4, 0x130(sp) | s4 = *(var_130h);
0x00058918 lw s3, 0x12c(sp) | s3 = *(var_12ch);
0x0005891c lw s2, 0x128(sp) | s2 = *(var_128h);
0x00058920 lw s1, 0x124(sp) | s1 = *(var_124h);
0x00058924 lw s0, 0x120(sp) | s0 = *(var_120h);
0x00058928 addiu sp, sp, 0x140 |
0x0005892c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x549d0 */
| #include <stdint.h>
|
; (fcn) sym.gethostbyaddr_r () | void gethostbyaddr_r () {
0x000549d0 lui gp, 6 |
0x000549d4 addiu gp, gp, 0xd10 |
0x000549d8 addu gp, gp, t9 | gp += t9;
0x000549dc addiu sp, sp, -0x90 |
0x000549e0 lw t9, 0xa8(sp) | t9 = *(arg_a8h);
0x000549e4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x000549e8 sw s6, 0x80(sp) | *(var_80h) = s6;
0x000549ec sw s3, 0x74(sp) | *(var_74h) = s3;
0x000549f0 sw s0, 0x68(sp) | *(var_68h) = s0;
0x000549f4 sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x000549f8 sw fp, 0x88(sp) | *(var_88h) = fp;
0x000549fc sw s7, 0x84(sp) | *(var_84h) = s7;
0x00054a00 sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x00054a04 sw s4, 0x78(sp) | *(var_78h) = s4;
0x00054a08 sw s2, 0x70(sp) | *(var_70h) = s2;
0x00054a0c sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00054a10 lw s3, 0xa0(sp) | s3 = *(arg_a0h);
0x00054a14 lw s6, 0xa4(sp) | s6 = *(arg_a4h);
0x00054a18 lw s0, 0xac(sp) | s0 = *(arg_ach);
0x00054a1c sw zero, (t9) | *(t9) = 0;
| if (a0 == 0) {
0x00054a20 beqz a0, 0x54d10 | goto label_0;
| }
0x00054a24 addiu v0, zero, 2 | v0 = 2;
0x00054a28 move s7, a0 | s7 = a0;
0x00054a2c move s2, a1 | s2 = a1;
0x00054a30 move s5, a2 | s5 = a2;
0x00054a34 move s1, a3 | s1 = a3;
| if (a2 != v0) {
0x00054a38 beq a2, v0, 0x54a50 |
0x00054a3c addiu v0, zero, 0xa | v0 = 0xa;
0x00054a40 addiu v0, zero, 0x16 | v0 = 0x16;
| if (a2 != v0) {
0x00054a44 bne a2, v0, 0x54d14 | goto label_1;
| }
0x00054a48 addiu v1, zero, 0x10 | v1 = 0x10;
0x00054a4c b 0x54a58 |
| } else {
0x00054a50 addiu v0, zero, 0x16 | v0 = 0x16;
0x00054a54 addiu v1, zero, 4 | v1 = 4;
| }
0x00054a58 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (a1 != v1) {
0x00054a5c bne a1, v1, 0x54d18 | goto label_2;
| }
0x00054a60 lw t9, 0xa8(sp) | t9 = *(arg_a8h);
0x00054a64 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00054a68 sw s6, 0x14(sp) | *(var_14h) = s6;
0x00054a6c sw t9, 0x18(sp) | *(var_18h) = t9;
0x00054a70 lw t9, -0x7800(gp) | t9 = *((gp - 7680));
0x00054a74 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00054a78 move a0, s7 | a0 = s7;
0x00054a7c move a1, s2 | a1 = s2;
0x00054a80 move a2, s5 | a2 = s5;
0x00054a84 move a3, s1 | a3 = s1;
0x00054a88 bal 0x54890 | fcn_00054890 ();
0x00054a8c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00054a90 beqz v0, 0x54d14 | goto label_1;
| }
0x00054a94 lw v1, (s0) | v1 = *(s0);
0x00054a98 addiu a0, zero, 1 | a0 = 1;
0x00054a9c addiu a0, zero, 4 | a0 = 4;
| if (v1 != a0) {
0x00054aa0 beq v1, a0, 0x54aac |
0x00054aa4 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (v1 != a0) {
0x00054aa8 bne v1, a0, 0x54d18 | goto label_2;
| }
| }
0x00054aac addiu v0, zero, -1 | v0 = -1;
0x00054ab0 sltiu v1, s2, 0x11 | v1 = (s2 < 0x11) ? 1 : 0;
0x00054ab4 sw v0, (s0) | *(s0) = v0;
0x00054ab8 addiu v0, zero, 0x22 | v0 = 0x22;
| if (v1 == 0) {
0x00054abc beqz v1, 0x54d14 | goto label_1;
| }
0x00054ac0 negu s4, s3 | __asm ("negu s4, s3");
0x00054ac4 andi s4, s4, 3 | s4 &= 3;
0x00054ac8 addiu s6, s6, -0x18 | s6 += -0x18;
0x00054acc subu s6, s6, s4 | __asm ("subu s6, s6, s4");
0x00054ad0 slti v1, s6, 0x100 | v1 = (s6 < aav.0x00000100) ? 1 : 0;
0x00054ad4 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (v1 != 0) {
0x00054ad8 bnez v1, 0x54d18 | goto label_2;
| }
0x00054adc addu s4, s3, s4 | s4 = s3 + s4;
0x00054ae0 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00054ae4 addiu a0, s4, 8 | a0 = s4 + 8;
0x00054ae8 sw zero, 4(s4) | *((s4 + 1)) = 0;
0x00054aec sw a0, (s4) | *(s4) = a0;
0x00054af0 move a1, s7 | a1 = s7;
0x00054af4 move a2, s2 | a2 = s2;
0x00054af8 bal 0x3a800 | sym_memcpy ();
0x00054afc addiu v0, zero, 2 | v0 = 2;
0x00054b00 addiu s3, s4, 0x18 | s3 = s4 + 0x18;
0x00054b04 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s5 == v0) {
0x00054b08 bne s5, v0, 0x54b40 |
0x00054b0c lbu v0, 1(s7) | v0 = *((s7 + 1));
0x00054b10 lbu a2, 3(s7) | a2 = *((s7 + 3));
0x00054b14 lbu a3, 2(s7) | a3 = *((s7 + 2));
0x00054b18 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00054b1c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00054b20 lbu v0, (s7) | v0 = *(s7);
0x00054b24 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x00054b28 move a0, s3 | a0 = s3;
0x00054b2c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00054b30 addiu a1, a1, -0x4a4c | a1 += -0x4a4c;
0x00054b34 jalr t9 | t9 ();
0x00054b38 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054b3c b 0x54bb4 | goto label_3;
| }
0x00054b40 lw t1, -0x7fa8(gp) | t1 = *((gp - 8170));
0x00054b44 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x00054b48 addiu t0, s2, -1 | t0 = s2 + -1;
0x00054b4c addu t0, s7, t0 | t0 = s7 + t0;
0x00054b50 move fp, s3 | fp = s3;
0x00054b54 addiu t1, t1, -0x4a30 | t1 += -0x4a30;
| do {
0x00054b58 lbu a3, (t0) | a3 = *(t0);
0x00054b5c move a0, fp | a0 = fp;
0x00054b60 move a1, t1 | a1 = t1;
0x00054b64 andi a2, a3, 0xf | a2 = a3 & 0xf;
0x00054b68 sw t0, 0x58(sp) | *(var_58h) = t0;
0x00054b6c sw t1, 0x5c(sp) | *(var_5ch) = t1;
0x00054b70 sw t9, 0x60(sp) | *(var_60h) = t9;
0x00054b74 srl a3, a3, 4 | a3 >>= 4;
0x00054b78 jalr t9 | t9 ();
0x00054b7c lw t0, 0x58(sp) | t0 = *(var_58h);
0x00054b80 addu fp, fp, v0 | fp += v0;
0x00054b84 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054b88 addiu t0, t0, -1 | t0 += -1;
0x00054b8c sltu v0, t0, s7 | v0 = (t0 < s7) ? 1 : 0;
0x00054b90 lw t1, 0x5c(sp) | t1 = *(var_5ch);
0x00054b94 lw t9, 0x60(sp) | t9 = *(var_60h);
0x00054b98 beqz v0, 0x54b58 |
| } while (v0 == 0);
0x00054b9c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00054ba0 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00054ba4 move a0, fp | a0 = fp;
0x00054ba8 addiu a1, a1, -0x4a28 | a1 += -0x4a28;
0x00054bac bal 0x3b600 | sym_strcpy ()
0x00054bb0 lw gp, 0x20(sp) | gp = *(var_20h);
| label_3:
0x00054bb4 lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
0x00054bb8 addiu fp, sp, 0x28 | fp = sp + 0x28;
0x00054bbc move a0, fp | a0 = fp;
0x00054bc0 move a1, zero | a1 = 0;
0x00054bc4 addiu a2, zero, 0x28 | a2 = 0x28;
0x00054bc8 bal 0x3a940 | sym_memset ();
0x00054bcc lw gp, 0x20(sp) | gp = *(var_20h);
0x00054bd0 move s7, zero | s7 = 0;
| do {
0x00054bd4 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x00054bd8 move a0, s3 | a0 = s3;
0x00054bdc addiu a1, zero, 0xc | a1 = 0xc;
0x00054be0 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x00054be4 move a3, fp | a3 = fp;
0x00054be8 bal 0x532b0 | fcn_000532b0 ();
0x00054bec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00054bf0 bgez v0, 0x54bfc |
0x00054bf4 addiu v0, zero, 1 | v0 = 1;
0x00054bf8 b 0x54d04 | goto label_4;
| }
0x00054bfc lw t9, -0x7ce4(gp) | t9 = *((gp - 7993));
0x00054c00 lw a1, 0x28(sp) | a1 = *(src);
0x00054c04 move a0, s3 | a0 = s3;
0x00054c08 move a2, s6 | a2 = s6;
0x00054c0c sw v0, 0x58(sp) | *(var_58h) = v0;
0x00054c10 bal 0x3b8e0 | sym_strncpy ();
0x00054c14 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054c18 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00054c1c lw a0, 0x28(sp) | a0 = *(src);
0x00054c20 jalr t9 | t9 ();
0x00054c24 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00054c28 addiu a0, zero, 5 | a0 = 5;
0x00054c2c lw gp, 0x20(sp) | gp = *(var_20h);
0x00054c30 lw v1, 0x58(sp) | v1 = *(var_58h);
| if (v0 != a0) {
0x00054c34 bne v0, a0, 0x54c98 | goto label_5;
| }
0x00054c38 addiu s7, s7, 1 | s7++;
0x00054c3c addiu v0, zero, 6 | v0 = 6;
0x00054c40 lw t9, -0x7828(gp) | t9 = *((gp - 7690));
| if (s7 == v0) {
0x00054c44 bne s7, v0, 0x54c50 |
0x00054c48 addiu v0, zero, 3 | v0 = 3;
0x00054c4c b 0x54c8c | goto label_6;
| }
0x00054c50 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00054c54 lw a1, 0x40(sp) | a1 = *(var_40h);
0x00054c58 move a2, v1 | a2 = v1;
0x00054c5c move a3, s3 | a3 = s3;
0x00054c60 sw s6, 0x10(sp) | *(var_10h) = s6;
0x00054c64 bal 0x52cd0 | fcn_00052cd0 ();
0x00054c68 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054c6c lw a0, 0x50(sp) | a0 = *(var_50h);
0x00054c70 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00054c74 sw v0, 0x58(sp) | *(var_58h) = v0;
0x00054c78 jalr t9 | t9 ();
0x00054c7c lw v0, 0x58(sp) | v0 = *(var_58h);
0x00054c80 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054c84 bgez v0, 0x54bd4 |
| } while (v0 >= 0);
0x00054c88 addiu v0, zero, 3 | v0 = 3;
| label_6:
0x00054c8c sw v0, (s0) | *(s0) = v0;
0x00054c90 addiu v0, zero, -1 | v0 = -1;
0x00054c94 b 0x54d14 | goto label_1;
| label_5:
0x00054c98 addiu a1, zero, 0xc | a1 = 0xc;
0x00054c9c lw a0, 0x50(sp) | a0 = *(var_50h);
| if (v0 == a1) {
0x00054ca0 bne v0, a1, 0x54cf4 |
0x00054ca4 lw t9, -0x7828(gp) | t9 = *((gp - 7690));
0x00054ca8 lw a1, 0x40(sp) | a1 = *(var_40h);
0x00054cac move a2, v1 | a2 = v1;
0x00054cb0 move a3, s3 | a3 = s3;
0x00054cb4 sw s6, 0x10(sp) | *(var_10h) = s6;
0x00054cb8 bal 0x52cd0 | fcn_00052cd0 ();
0x00054cbc lw gp, 0x20(sp) | gp = *(var_20h);
0x00054cc0 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00054cc4 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00054cc8 jalr t9 | t9 ();
0x00054ccc lw t9, 0xa8(sp) | t9 = *(arg_a8h);
0x00054cd0 sw s3, (s1) | *(s1) = s3;
0x00054cd4 sw s5, 8(s1) | *((s1 + 2)) = s5;
0x00054cd8 sw s2, 0xc(s1) | *((s1 + 3)) = s2;
0x00054cdc sw s4, 0x10(s1) | *((s1 + 4)) = s4;
0x00054ce0 sw s4, 4(s1) | *((s1 + 1)) = s4;
0x00054ce4 sw s1, (t9) | *(t9) = s1;
0x00054ce8 move v0, zero | v0 = 0;
0x00054cec sw zero, (s0) | *(s0) = 0;
0x00054cf0 b 0x54d14 |
| } else {
0x00054cf4 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00054cf8 jalr t9 | t9 ();
0x00054cfc nop |
0x00054d00 addiu v0, zero, 4 | v0 = 4;
| label_4:
0x00054d04 sw v0, (s0) | *(s0) = v0;
0x00054d08 addiu v0, zero, 2 | v0 = 2;
0x00054d0c b 0x54d14 | goto label_1;
| label_0:
0x00054d10 addiu v0, zero, 0x16 | v0 = 0x16;
| }
| label_1:
0x00054d14 lw ra, 0x8c(sp) | ra = *(var_8ch);
| label_2:
0x00054d18 lw fp, 0x88(sp) | fp = *(var_88h);
0x00054d1c lw s7, 0x84(sp) | s7 = *(var_84h);
0x00054d20 lw s6, 0x80(sp) | s6 = *(var_80h);
0x00054d24 lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x00054d28 lw s4, 0x78(sp) | s4 = *(var_78h);
0x00054d2c lw s3, 0x74(sp) | s3 = *(var_74h);
0x00054d30 lw s2, 0x70(sp) | s2 = *(var_70h);
0x00054d34 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x00054d38 lw s0, 0x68(sp) | s0 = *(var_68h);
0x00054d3c addiu sp, sp, 0x90 |
0x00054d40 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x54d50 */
| #include <stdint.h>
|
; (fcn) sym.gethostbyname_r () | void gethostbyname_r () {
0x00054d50 lui gp, 6 |
0x00054d54 addiu gp, gp, 0x990 |
0x00054d58 addu gp, gp, t9 | gp += t9;
0x00054d5c addiu sp, sp, -0x90 |
0x00054d60 sw s6, 0x80(sp) | *(var_80h) = s6;
0x00054d64 lw s6, 0xa0(sp) | s6 = *(arg_a0h);
0x00054d68 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00054d6c sw s7, 0x84(sp) | *(var_84h) = s7;
0x00054d70 sw s1, 0x6c(sp) | *(var_6ch) = s1;
0x00054d74 sw ra, 0x8c(sp) | *(var_8ch) = ra;
0x00054d78 sw fp, 0x88(sp) | *(var_88h) = fp;
0x00054d7c sw s5, 0x7c(sp) | *(var_7ch) = s5;
0x00054d80 sw s4, 0x78(sp) | *(var_78h) = s4;
0x00054d84 sw s3, 0x74(sp) | *(var_74h) = s3;
0x00054d88 sw s2, 0x70(sp) | *(var_70h) = s2;
0x00054d8c sw s0, 0x68(sp) | *(var_68h) = s0;
0x00054d90 lw s1, 0xa4(sp) | s1 = *(arg_a4h);
0x00054d94 sw zero, (s6) | *(s6) = 0;
0x00054d98 addiu s7, zero, 0x16 | s7 = 0x16;
| if (a0 == 0) {
0x00054d9c beqz a0, 0x55098 | goto label_0;
| }
0x00054da0 lw t0, -0x7564(gp) | t0 = *((gp - 7513));
0x00054da4 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00054da8 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
0x00054dac addu s3, t0, v1 | s3 = t0 + v1;
0x00054db0 move s0, a1 | s0 = a1;
0x00054db4 move s4, a2 | s4 = a2;
0x00054db8 lw fp, (s3) | fp = *(s3);
0x00054dbc move s2, a3 | s2 = a3;
0x00054dc0 sw zero, (s3) | *(s3) = 0;
0x00054dc4 addiu a1, zero, 2 | a1 = 2;
0x00054dc8 sw a3, 0x10(sp) | *(var_10h) = a3;
0x00054dcc sw t0, 0x5c(sp) | *(var_5ch) = t0;
0x00054dd0 sw s6, 0x14(sp) | *(var_14h) = s6;
0x00054dd4 sw s1, 0x18(sp) | *(var_18h) = s1;
0x00054dd8 move a2, s0 | a2 = s0;
0x00054ddc move a3, s4 | a3 = s4;
0x00054de0 move s5, a0 | s5 = a0;
0x00054de4 bal 0x54960 | fcn_00054960 ();
0x00054de8 move s7, v0 | s7 = v0;
0x00054dec lw gp, 0x20(sp) | gp = *(var_20h);
0x00054df0 lw t0, 0x5c(sp) | t0 = *(var_5ch);
| if (v0 == 0) {
0x00054df4 bnez v0, 0x54e00 |
0x00054df8 sw fp, (s3) | *(s3) = fp;
0x00054dfc b 0x55098 | goto label_0;
| }
0x00054e00 lw v0, (s1) | v0 = *(s1);
0x00054e04 addiu v1, zero, 1 | v1 = 1;
0x00054e08 addiu v1, zero, 4 | v1 = 4;
| if (v0 != v1) {
0x00054e0c beq v0, v1, 0x54e28 |
0x00054e10 addiu v1, zero, -1 | v1 = -1;
| if (v0 == v1) {
0x00054e14 beq v0, v1, 0x54e40 | goto label_1;
| }
0x00054e18 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (v0 != v1) {
0x00054e1c bne v0, v1, 0x5509c | goto label_2;
| }
0x00054e20 lw v1, (s3) | v1 = *(s3);
0x00054e24 b 0x54e34 |
| } else {
0x00054e28 xori s7, s7, 2 | s7 ^= 2;
0x00054e2c sltiu s7, s7, 1 | s7 = (s7 < 1) ? 1 : 0;
0x00054e30 b 0x54e44 | goto label_3;
| }
0x00054e34 addiu v0, zero, 2 | v0 = 2;
0x00054e38 lw ra, 0x8c(sp) | ra = *(var_8ch);
| if (v1 != v0) {
0x00054e3c bne v1, v0, 0x5509c | goto label_2;
| }
| label_1:
0x00054e40 move s7, zero | s7 = 0;
| label_3:
0x00054e44 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00054e48 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00054e4c addu t0, t0, v1 | t0 += v1;
0x00054e50 addiu v0, zero, -1 | v0 = -1;
0x00054e54 sw fp, (t0) | *(t0) = fp;
0x00054e58 sw v1, 0x58(sp) | *(var_58h) = v1;
0x00054e5c sw v0, (s1) | *(s1) = v0;
0x00054e60 move a0, s5 | a0 = s5;
0x00054e64 bal 0x3b6b0 | sym_strlen ();
0x00054e68 addiu fp, v0, 1 | fp = v0 + 1;
0x00054e6c slt v0, fp, s2 | v0 = (fp < s2) ? 1 : 0;
0x00054e70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054e74 bnez v0, 0x54e80 |
| while (a0 != 0) {
0x00054e78 addiu s7, zero, 0x22 | s7 = 0x22;
0x00054e7c b 0x55098 | goto label_0;
0x00054e80 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00054e84 move a0, s4 | a0 = s4;
0x00054e88 move a2, fp | a2 = fp;
0x00054e8c move a1, s5 | a1 = s5;
0x00054e90 bal 0x3a800 | sym_memcpy ();
0x00054e94 addu v0, s4, fp | v0 = s4 + fp;
0x00054e98 negu s3, v0 | __asm ("negu s3, v0");
0x00054e9c subu s2, s2, fp | __asm ("subu s2, s2, fp");
0x00054ea0 andi s3, s3, 3 | s3 &= 3;
0x00054ea4 subu v1, s2, s3 | __asm ("subu v1, s2, s3");
0x00054ea8 addiu fp, v1, -8 | fp = v1 + -8;
0x00054eac slti a0, fp, 0x100 | a0 = (fp < aav.0x00000100) ? 1 : 0;
0x00054eb0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054eb4 bnez a0, 0x54e78 |
| }
0x00054eb8 addu s3, v0, s3 | s3 = v0 + s3;
0x00054ebc lw t9, -0x7860(gp) | t9 = *((gp - 7704));
0x00054ec0 addiu a2, s3, 0x10 | a2 = s3 + 0x10;
0x00054ec4 sw s4, (s3) | *(s3) = s4;
0x00054ec8 sw zero, 4(s3) | *((s3 + 1)) = 0;
0x00054ecc move a1, a2 | a1 = a2;
0x00054ed0 sw v1, 0x5c(sp) | *(var_5ch) = v1;
0x00054ed4 sw a2, 0x60(sp) | *(var_60h) = a2;
0x00054ed8 move a0, s5 | a0 = s5;
0x00054edc bal 0x526a0 | sym_inet_aton ();
0x00054ee0 addiu s2, s3, 8 | s2 = s3 + 8;
0x00054ee4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054ee8 lw v1, 0x5c(sp) | v1 = *(var_5ch);
0x00054eec lw a2, 0x60(sp) | a2 = *(var_60h);
| if (v0 != 0) {
0x00054ef0 beqz v0, 0x54f28 |
0x00054ef4 addiu v0, zero, 2 | v0 = 2;
0x00054ef8 sw a2, 8(s3) | *((s3 + 2)) = a2;
0x00054efc sw zero, 0xc(s3) | *((s3 + 3)) = 0;
0x00054f00 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00054f04 addiu v0, zero, 4 | v0 = 4;
0x00054f08 sw s4, (s0) | *(s0) = s4;
0x00054f0c sw s3, 4(s0) | *((s0 + 1)) = s3;
0x00054f10 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00054f14 sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x00054f18 move s7, zero | s7 = 0;
0x00054f1c sw s0, (s6) | *(s6) = s0;
0x00054f20 sw zero, (s1) | *(s1) = 0;
0x00054f24 b 0x55098 | goto label_0;
| }
0x00054f28 addiu v0, zero, 1 | v0 = 1;
| if (s7 == 0) {
0x00054f2c bnez s7, 0x54f64 |
0x00054f30 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x00054f34 addiu v1, v1, -0x14 | v1 += -0x14;
0x00054f38 sw s2, 0x44(sp) | *(var_44h) = s2;
0x00054f3c sw v1, 0x48(sp) | *(var_48h) = v1;
0x00054f40 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x00054f44 move a0, s5 | a0 = s5;
0x00054f48 addiu a1, zero, 1 | a1 = 1;
0x00054f4c addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x00054f50 addiu a3, sp, 0x28 | a3 = sp + 0x28;
0x00054f54 bal 0x532b0 | fcn_000532b0 ();
0x00054f58 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x00054f5c bgez v0, 0x54f70 | goto label_4;
| }
0x00054f60 addiu v0, zero, 1 | v0 = 1;
| }
0x00054f64 sw v0, (s1) | *(s1) = v0;
0x00054f68 addiu s7, zero, 2 | s7 = 2;
0x00054f6c b 0x55098 | goto label_0;
| label_4:
0x00054f70 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00054f74 addiu v0, zero, 1 | v0 = 1;
0x00054f78 lw v1, -0x7570(gp) | v1 = *((gp - 7516));
| if (v1 != v0) {
0x00054f7c bne v1, v0, 0x55068 | goto label_5;
| }
0x00054f80 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x00054f84 lw a2, 0x38(sp) | a2 = *(var_38h);
0x00054f88 addiu s5, v0, 3 | s5 = v0 + 3;
0x00054f8c mul a2, v0, a2 | __asm ("mul a2, v0, a2");
0x00054f90 sll s5, s5, 2 | s5 <<= 2;
0x00054f94 addu v0, s5, a2 | v0 = s5 + a2;
0x00054f98 subu fp, fp, v0 | __asm ("subu fp, fp, v0");
0x00054f9c addiu s7, zero, 0x22 | s7 = 0x22;
| if (fp < 0) {
0x00054fa0 bltz fp, 0x5507c | goto label_6;
| }
0x00054fa4 lw t9, -0x7f04(gp) | t9 = *((gp - 8129));
0x00054fa8 addu a0, s2, s5 | a0 = s2 + s5;
0x00054fac move a1, s2 | a1 = s2;
0x00054fb0 bal 0x3aeb0 | sym_memmove ();
0x00054fb4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054fb8 addiu s5, s5, -4 | s5 += -4;
0x00054fbc lw a1, 0x3c(sp) | a1 = *(s2);
0x00054fc0 lw t9, -0x7ed4(gp) | t9 = *((gp - 8117));
0x00054fc4 addu s5, s2, s5 | s5 = s2 + s5;
0x00054fc8 move a0, s5 | a0 = s5;
0x00054fcc addiu a2, zero, 4 | a2 = 4;
0x00054fd0 bal 0x3a800 | sym_memcpy ();
0x00054fd4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00054fd8 move v0, zero | v0 = 0;
0x00054fdc b 0x54fec |
| while (a0 == 0) {
0x00054fe0 sw s5, (v1) | *(v1) = s5;
0x00054fe4 addiu v0, v0, 1 | v0++;
0x00054fe8 addiu s5, s5, 4 | s5 += 4;
0x00054fec lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00054ff0 sll v1, v0, 2 | v1 = v0 << 2;
0x00054ff4 sltu a0, a0, v0 | a0 = (a0 < v0) ? 1 : 0;
0x00054ff8 addu v1, s2, v1 | v1 = s2 + v1;
0x00054ffc beqz a0, 0x54fe0 |
| }
0x00055000 lw s7, 0x28(sp) | s7 = *(var_28h);
0x00055004 sw zero, (v1) | *(v1) = 0;
| if (s7 != 0) {
0x00055008 beqz s7, 0x5503c |
0x0005500c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00055010 move a0, s7 | a0 = s7;
0x00055014 bal 0x3b6b0 | sym_strlen ();
0x00055018 sltu v0, v0, fp | v0 = (v0 < fp) ? 1 : 0;
0x0005501c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00055020 beqz v0, 0x5503c | goto label_7;
| }
0x00055024 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00055028 move a0, s5 | a0 = s5;
0x0005502c move a1, s7 | a1 = s7;
0x00055030 bal 0x3b600 | sym_strcpy ()
0x00055034 lw gp, 0x20(sp) | gp = *(var_20h);
0x00055038 move s4, s5 | s4 = s5;
| }
| label_7:
0x0005503c addiu v0, zero, 2 | v0 = 2;
0x00055040 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00055044 addiu v0, zero, 4 | v0 = 4;
0x00055048 sw s4, (s0) | *(s0) = s4;
0x0005504c sw s3, 4(s0) | *((s0 + 1)) = s3;
0x00055050 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x00055054 sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x00055058 move s7, zero | s7 = 0;
0x0005505c sw s0, (s6) | *(s6) = s0;
0x00055060 sw zero, (s1) | *(s1) = 0;
0x00055064 b 0x5507c | goto label_6;
| label_5:
0x00055068 lw t9, 0x58(sp) | t9 = *(var_58h);
0x0005506c sw v0, (s1) | *(s1) = v0;
0x00055070 addiu s7, zero, 2 | s7 = 2;
0x00055074 addu v1, v1, t9 | v1 += t9;
0x00055078 sw v0, (v1) | *(v1) = v0;
| label_6:
0x0005507c lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00055080 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00055084 jalr t9 | t9 ();
0x00055088 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005508c lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x00055090 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00055094 jalr t9 | t9 ();
| label_0:
0x00055098 lw ra, 0x8c(sp) | ra = *(var_8ch);
| label_2:
0x0005509c move v0, s7 | v0 = s7;
0x000550a0 lw fp, 0x88(sp) | fp = *(var_88h);
0x000550a4 lw s7, 0x84(sp) | s7 = *(var_84h);
0x000550a8 lw s6, 0x80(sp) | s6 = *(var_80h);
0x000550ac lw s5, 0x7c(sp) | s5 = *(var_7ch);
0x000550b0 lw s4, 0x78(sp) | s4 = *(var_78h);
0x000550b4 lw s3, 0x74(sp) | s3 = *(var_74h);
0x000550b8 lw s2, 0x70(sp) | s2 = *(var_70h);
0x000550bc lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x000550c0 lw s0, 0x68(sp) | s0 = *(var_68h);
0x000550c4 addiu sp, sp, 0x90 |
0x000550c8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x52094 */
| #include <stdint.h>
|
; (fcn) sym.inet_ntop () | void inet_ntop () {
0x00052094 lui gp, 6 |
0x00052098 addiu gp, gp, 0x364c |
0x0005209c addu gp, gp, t9 | gp += t9;
0x000520a0 addiu sp, sp, -0x98 |
0x000520a4 addiu v0, zero, 2 | v0 = 2;
0x000520a8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000520ac sw ra, 0x94(sp) | *(var_94h) = ra;
0x000520b0 sw fp, 0x90(sp) | *(var_90h) = fp;
0x000520b4 sw s7, 0x8c(sp) | *(var_8ch) = s7;
0x000520b8 sw s6, 0x88(sp) | *(var_88h) = s6;
0x000520bc sw s5, 0x84(sp) | *(var_84h) = s5;
0x000520c0 sw s4, 0x80(sp) | *(var_80h) = s4;
0x000520c4 sw s3, 0x7c(sp) | *(var_7ch) = s3;
0x000520c8 sw s2, 0x78(sp) | *(var_78h) = s2;
0x000520cc sw s1, 0x74(sp) | *(var_74h) = s1;
0x000520d0 sw s0, 0x70(sp) | *(var_70h) = s0;
0x000520d4 lw t9, -0x7904(gp) | t9 = *((gp - 7745));
| if (a0 != v0) {
0x000520d8 beq a0, v0, 0x520f0 |
0x000520dc addiu v0, zero, 0xa | v0 = 0xa;
0x000520e0 lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
| if (a0 != v0) {
0x000520e4 bne a0, v0, 0x52388 | goto label_1;
| }
0x000520e8 addiu a0, sp, 0x48 | a0 = sp + 0x48;
0x000520ec b 0x5210c |
| } else {
0x000520f0 move a0, a1 | a0 = a1;
0x000520f4 move a1, a2 | a1 = a2;
0x000520f8 addiu t9, t9, 0x1f30 | t9 += aav.0x00001f30;
0x000520fc move a2, a3 | a2 = a3;
0x00052100 bal 0x51f30 | fcn_00051f30 ();
0x00052104 b 0x52380 | goto label_2;
0x00052108 nop |
| }
0x0005210c move s6, a1 | s6 = a1;
0x00052110 move s4, a2 | s4 = a2;
0x00052114 move a1, zero | a1 = 0;
0x00052118 addiu a2, zero, 0x20 | a2 = 0x20;
0x0005211c move s5, a3 | s5 = a3;
0x00052120 bal 0x3a940 | sym_memset ();
0x00052124 lw gp, 0x10(sp) | gp = *(var_10h);
0x00052128 move v0, zero | v0 = 0;
0x0005212c addiu a0, zero, 0x10 | a0 = 0x10;
| do {
0x00052130 sra a1, v0, 1 | a1 = v0 >> 1;
0x00052134 addiu v1, sp, 0x18 | v1 = sp + 0x18;
0x00052138 sll a1, a1, 2 | a1 <<= 2;
0x0005213c addu a1, v1, a1 | a1 = v1 + a1;
0x00052140 addu v1, s6, v0 | v1 = s6 + v0;
0x00052144 lbu a2, 1(v1) | a2 = *((v1 + 1));
0x00052148 lbu v1, (v1) | v1 = *(v1);
0x0005214c addiu v0, v0, 2 | v0 += 2;
0x00052150 sll v1, v1, 8 | v1 <<= 8;
0x00052154 or v1, a2, v1 | v1 = a2 | v1;
0x00052158 sw v1, 0x30(a1) | *(var_48h) = v1;
0x0005215c bne v0, a0, 0x52130 |
| } while (v0 != a0);
0x00052160 addiu s1, zero, -1 | s1 = -1;
0x00052164 addiu v0, zero, -1 | v0 = -1;
0x00052168 move v1, zero | v1 = 0;
0x0005216c addiu a0, zero, -1 | a0 = -1;
0x00052170 addiu a1, zero, 8 | a1 = 8;
0x00052174 sll a2, v1, 2 | a2 = v1 << 2;
| do {
0x00052178 addiu a3, sp, 0x18 | a3 = sp + 0x18;
0x0005217c addu a2, a3, a2 | a2 = a3 + a2;
0x00052180 lw a2, 0x30(a2) | a2 = *(var_48h);
| if (a2 == 0) {
0x00052184 bnez a2, 0x5219c |
0x00052188 nop |
| if (v0 != a0) {
0x0005218c beql v0, a0, 0x521bc |
0x00052190 move v0, v1 | v0 = v1;
0x00052194 addiu s3, s3, 1 | s3++;
0x00052198 b 0x521d0 |
| if (v0 == a0) {
| } else {
0x0005219c beql v0, a0, 0x521d4 | goto label_3;
| }
0x000521a0 addiu v1, v1, 1 | v1++;
0x000521a4 slt a2, s2, s3 | a2 = (s2 < s3) ? 1 : 0;
| if (s1 != a0) {
0x000521a8 beq s1, a0, 0x521c4 |
0x000521ac move s2, s3 | s2 = s3;
| if (a2 != 0) {
0x000521b0 bnel a2, zero, 0x521c8 |
0x000521b4 addiu v0, zero, -1 | v0 = -1;
0x000521b8 b 0x521d0 |
| } else {
0x000521bc addiu s3, zero, 1 | s3 = 1;
| }
0x000521c0 b 0x521d0 |
| } else {
0x000521c4 move s2, s3 | s2 = s3;
| }
0x000521c8 move s1, v0 | s1 = v0;
0x000521cc addiu v0, zero, -1 | v0 = -1;
| }
| }
0x000521d0 addiu v1, v1, 1 | v1++;
| label_3:
0x000521d4 sll a2, v1, 2 | a2 = v1 << 2;
0x000521d8 bne v1, a1, 0x52178 |
| } while (v1 != a1);
0x000521dc addiu v1, zero, -1 | v1 = -1;
| if (v0 != v1) {
0x000521e0 beq v0, v1, 0x521fc |
0x000521e4 nop |
0x000521e8 slt v1, s2, s3 | v1 = (s2 < s3) ? 1 : 0;
| if (s1 == v1) {
0x000521ec beq s1, v1, 0x523a8 | goto label_4;
| }
| if (v1 != 0) {
0x000521f0 movz v0, s1, v1 | v0 = s1;
| }
| if (v1 == 0) {
0x000521f4 movn s2, s3, v1 | s2 = s3;
| }
0x000521f8 b 0x523ac | goto label_5;
| }
0x000521fc lw v1, -0x7fa8(gp) | v1 = *((gp - 8170));
| if (s1 != v0) {
0x00052200 beq s1, v0, 0x52214 |
| label_0:
0x00052204 slti v1, s2, 2 | v1 = (s2 < 2) ? 1 : 0;
0x00052208 addiu v0, zero, -1 | v0 = -1;
| if (v1 == 0) {
0x0005220c movn s1, v0, v1 | s1 = v0;
| }
0x00052210 lw v1, -0x7fa8(gp) | v1 = *((gp - 8170));
| }
0x00052214 lw t9, -0x7f70(gp) | t9 = *((gp - 8156));
0x00052218 addiu s0, sp, 0x18 | s0 = sp + 0x18;
0x0005221c move s3, zero | s3 = 0;
0x00052220 move fp, s0 | fp = s0;
0x00052224 addiu s7, v1, -0x4b10 | s7 = v1 + -0x4b10;
0x00052228 addu a3, s1, s2 | a3 = s1 + s2;
0x0005222c addiu v0, zero, -1 | v0 = -1;
| do {
0x00052230 slt v0, s3, s1 | v0 = (s3 < s1) ? 1 : 0;
| if (s1 != v0) {
0x00052234 beq s1, v0, 0x52260 |
0x00052238 slt v0, s3, a3 | v0 = (s3 < a3) ? 1 : 0;
| if (v0 == 0) {
0x0005223c bnez v0, 0x52260 |
| if (v0 == 0) {
0x00052240 beqz v0, 0x52260 | goto label_6;
| }
0x00052244 nop |
0x00052248 addiu s3, s3, 1 | s3++;
| if (s3 == s1) {
0x0005224c bnel s3, s1, 0x52314 | goto label_7;
| }
0x00052250 addiu v0, zero, 0x3a | v0 = 0x3a;
0x00052254 sb v0, (s0) | *(s0) = v0;
0x00052258 addiu s0, s0, 1 | s0++;
0x0005225c b 0x52310 |
| }
| } else {
| label_6:
0x00052260 sll v0, s3, 2 | v0 = s3 << 2;
| if (s3 != 0) {
0x00052264 beqz s3, 0x522e4 |
0x00052268 addiu v0, zero, 0x3a | v0 = 0x3a;
0x0005226c sb v0, (s0) | *(s0) = v0;
0x00052270 addiu v0, zero, 6 | v0 = 6;
0x00052274 addiu s0, s0, 1 | s0++;
| if (s3 == v0) {
0x00052278 bne s3, v0, 0x522e0 |
0x0005227c sll v0, s3, 2 | v0 = s3 << 2;
| if (s1 != 0) {
0x00052280 bnez s1, 0x522e4 | goto label_8;
| }
0x00052284 addiu v0, zero, 5 | v0 = 5;
| if (s2 != s3) {
0x00052288 beq s2, s3, 0x522a4 |
0x0005228c sll v0, s3, 2 | v0 = s3 << 2;
| if (s2 != v0) {
0x00052290 bne s2, v0, 0x522e4 | goto label_8;
| }
0x00052294 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00052298 ori v0, zero, 0xffff | v0 = 0xffff;
0x0005229c sll v0, s3, 2 | v0 = s3 << 2;
| if (a0 != v0) {
0x000522a0 bne a0, v0, 0x522e4 | goto label_8;
| }
| }
0x000522a4 lw t9, -0x7904(gp) | t9 = *((gp - 7745));
0x000522a8 subu a2, sp, s0 | __asm ("subu a2, sp, s0");
0x000522ac addiu a0, s6, 0xc | a0 = s6 + 0xc;
0x000522b0 move a1, s0 | a1 = s0;
0x000522b4 addiu t9, t9, 0x1f30 | t9 += aav.0x00001f30;
0x000522b8 addiu a2, a2, 0x46 | a2 += 0x46;
0x000522bc bal 0x51f30 | fcn_00051f30 ();
0x000522c0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000522c4 beqz v0, 0x523a0 | goto label_9;
| }
0x000522c8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x000522cc move a0, s0 | a0 = s0;
0x000522d0 bal 0x3b6b0 | sym_strlen ();
0x000522d4 addu s0, s0, v0 | s0 += v0;
0x000522d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000522dc b 0x52328 | goto label_10;
| }
0x000522e0 sll v0, s3, 2 | v0 = s3 << 2;
| }
| label_8:
0x000522e4 addu v0, fp, v0 | v0 = fp + v0;
0x000522e8 lw a2, 0x30(v0) | a2 = *(var_48h);
0x000522ec move a0, s0 | a0 = s0;
0x000522f0 sw a3, 0x6c(sp) | *(var_6ch) = a3;
0x000522f4 sw t9, 0x68(sp) | *(var_68h) = t9;
0x000522f8 move a1, s7 | a1 = s7;
0x000522fc jalr t9 | t9 ();
0x00052300 lw gp, 0x10(sp) | gp = *(var_10h);
0x00052304 lw t9, 0x68(sp) | t9 = *(var_68h);
0x00052308 lw a3, 0x6c(sp) | a3 = *(var_6ch);
0x0005230c addu s0, s0, v0 | s0 += v0;
| }
0x00052310 addiu s3, s3, 1 | s3++;
| label_7:
0x00052314 addiu v0, zero, 8 | v0 = 8;
0x00052318 addiu v0, zero, -1 | v0 = -1;
0x0005231c bne s3, v0, 0x52230 |
| } while (s3 != v0);
| if (s1 != v0) {
0x00052320 beql s1, v0, 0x52348 |
0x00052324 sb zero, (s0) | *(s0) = 0;
| label_10:
0x00052328 addu s1, s1, s2 | s1 += s2;
0x0005232c addiu v0, zero, 8 | v0 = 8;
0x00052330 sb zero, (s0) | *(s0) = 0;
| if (s1 == v0) {
0x00052334 bnel s1, v0, 0x52348 | goto label_11;
| }
0x00052338 addiu v0, zero, 0x3a | v0 = 0x3a;
0x0005233c sb v0, (s0) | *(s0) = v0;
0x00052340 addiu s0, s0, 1 | s0++;
0x00052344 sb zero, (s0) | *(s0) = 0;
| }
| label_11:
0x00052348 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0005234c addiu s0, s0, 1 | s0++;
0x00052350 subu s0, s0, a1 | __asm ("subu s0, s0, a1");
0x00052354 sltu s5, s5, s0 | s5 = (s5 < s0) ? 1 : 0;
| if (s5 != 0) {
0x00052358 beql s5, zero, 0x52378 |
0x0005235c lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00052360 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00052364 move v0, v1 | v0 = v1;
0x00052368 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x0005236c addu v0, v1, v0 | v0 = v1 + v0;
0x00052370 addiu v1, zero, 0x1c | v1 = 0x1c;
0x00052374 b 0x5239c |
| } else {
0x00052378 move a0, s4 | a0 = s4;
0x0005237c bal 0x3b600 | sym_strcpy ()
| label_2:
0x00052380 lw ra, 0x94(sp) | ra = *(var_94h);
0x00052384 b 0x523b8 | goto label_12;
| label_1:
0x00052388 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0005238c move v0, v1 | v0 = v1;
0x00052390 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x00052394 addu v0, v1, v0 | v0 = v1 + v0;
0x00052398 addiu v1, zero, 0x7c | v1 = 0x7c;
| }
0x0005239c sw v1, (v0) | *(v0) = v1;
| label_9:
0x000523a0 move v0, zero | v0 = 0;
0x000523a4 b 0x523b4 | goto label_13;
| label_4:
0x000523a8 move s2, s3 | s2 = s3;
| label_5:
0x000523ac move s1, v0 | s1 = v0;
0x000523b0 b 0x52204 | goto label_0;
| label_13:
0x000523b4 lw ra, 0x94(sp) | ra = *(var_94h);
| label_12:
0x000523b8 lw fp, 0x90(sp) | fp = *(var_90h);
0x000523bc lw s7, 0x8c(sp) | s7 = *(var_8ch);
0x000523c0 lw s6, 0x88(sp) | s6 = *(var_88h);
0x000523c4 lw s5, 0x84(sp) | s5 = *(var_84h);
0x000523c8 lw s4, 0x80(sp) | s4 = *(var_80h);
0x000523cc lw s3, 0x7c(sp) | s3 = *(var_7ch);
0x000523d0 lw s2, 0x78(sp) | s2 = *(var_78h);
0x000523d4 lw s1, 0x74(sp) | s1 = *(var_74h);
0x000523d8 lw s0, 0x70(sp) | s0 = *(var_70h);
0x000523dc addiu sp, sp, 0x98 |
0x000523e0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x47a0c */
| #include <stdint.h>
|
; (fcn) sym.ruserpass () | void ruserpass () {
0x00047a0c lui gp, 7 |
0x00047a10 addiu gp, gp, -0x232c |
0x00047a14 addu gp, gp, t9 | gp += t9;
0x00047a18 lw t9, -0x7f80(gp) | t9 = *((gp - 8160));
0x00047a1c addiu sp, sp, -0x4e0 |
0x00047a20 sw ra, 0x4dc(sp) | *(var_4dch) = ra;
0x00047a24 sw fp, 0x4d8(sp) | *(var_4d8h) = fp;
0x00047a28 sw s7, 0x4d4(sp) | *(var_4d4h) = s7;
0x00047a2c move fp, sp | fp = sp;
0x00047a30 sw s5, 0x4cc(sp) | *(var_4cch) = s5;
0x00047a34 sw s2, 0x4c0(sp) | *(var_4c0h) = s2;
0x00047a38 sw s0, 0x4b8(sp) | *(var_4b8h) = s0;
0x00047a3c sw gp, 0x10(sp) | *(dest) = gp;
0x00047a40 sw s6, 0x4d0(sp) | *(var_4d0h) = s6;
0x00047a44 sw s4, 0x4c8(sp) | *(var_4c8h) = s4;
0x00047a48 sw s3, 0x4c4(sp) | *(var_4c4h) = s3;
0x00047a4c sw s1, 0x4bc(sp) | *(var_4bch) = s1;
0x00047a50 move s2, a0 | s2 = a0;
0x00047a54 move s5, a1 | s5 = a1;
0x00047a58 move s7, a2 | s7 = a2;
0x00047a5c jalr t9 | t9 ();
0x00047a60 lw gp, 0x10(fp) | gp = *(dest);
0x00047a64 lw t9, -0x7aa4(gp) | t9 = *((gp - 7849));
0x00047a68 move s0, v0 | s0 = v0;
0x00047a6c jalr t9 | t9 ();
0x00047a70 lw gp, 0x10(fp) | gp = *(dest);
| if (s0 != v0) {
0x00047a74 beq s0, v0, 0x47a80 |
0x00047a78 addiu s1, zero, -1 | s1 = -1;
0x00047a7c b 0x47edc | goto label_3;
| }
0x00047a80 lw t9, -0x795c(gp) | t9 = *((gp - 7767));
0x00047a84 jalr t9 | t9 ();
0x00047a88 nop |
0x00047a8c lw gp, 0x10(fp) | gp = *(dest);
0x00047a90 lw t9, -0x7aa0(gp) | t9 = *((gp - 7848));
0x00047a94 move s0, v0 | s0 = v0;
0x00047a98 jalr t9 | t9 ();
0x00047a9c lw gp, 0x10(fp) | gp = *(dest);
| if (s0 != v0) {
0x00047aa0 bne s0, v0, 0x47ed8 | goto label_4;
| }
0x00047aa4 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00047aa8 lw t9, -0x7f84(gp) | t9 = *((gp - 8161));
0x00047aac addiu a0, a0, -0x71b0 | a0 += -0x71b0;
0x00047ab0 bal 0x5b4e0 | sym_getenv ();
0x00047ab4 move s1, v0 | s1 = v0;
0x00047ab8 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 == 0) {
0x00047abc beqz v0, 0x47ed8 | goto label_4;
| }
0x00047ac0 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00047ac4 move a0, v0 | a0 = v0;
0x00047ac8 bal 0x3b6b0 | sym_strlen ();
0x00047acc addiu v0, v0, 0x16 | v0 += 0x16;
0x00047ad0 lw gp, 0x10(fp) | gp = *(dest);
0x00047ad4 srl v0, v0, 3 | v0 >>= 3;
0x00047ad8 sll v0, v0, 3 | v0 <<= 3;
0x00047adc subu sp, sp, v0 |
0x00047ae0 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00047ae4 addiu s0, sp, 0x10 | s0 = sp + 0x10;
0x00047ae8 move a0, s0 | a0 = s0;
0x00047aec move a1, s1 | a1 = s1;
0x00047af0 bal 0x3b600 | sym_strcpy ()
0x00047af4 lw gp, 0x10(fp) | gp = *(dest);
0x00047af8 move a0, s0 | a0 = s0;
0x00047afc lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00047b00 lw t9, -0x7dfc(gp) | t9 = *((gp - 8063));
0x00047b04 addiu a1, a1, -0x5380 | a1 += -0x5380;
0x00047b08 bal 0x3b3a0 | sym_strcat ();
0x00047b0c lw gp, 0x10(fp) | gp = *(dest);
0x00047b10 move a0, s0 | a0 = s0;
0x00047b14 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00047b18 lw t9, -0x7dd0(gp) | t9 = *((gp - 8052));
0x00047b1c addiu a1, a1, -0x7aa4 | a1 += -0x7aa4;
0x00047b20 bal 0x2e600 | sym_fopen ();
0x00047b24 lw gp, 0x10(fp) | gp = *(dest);
0x00047b28 lw s3, -0x7ecc(gp) | s3 = *((gp - 8115));
0x00047b2c sw v0, 0x1be0(s3) | *((s3 + 1784)) = v0;
| if (v0 == 0) {
0x00047b30 bnez v0, 0x47b70 |
0x00047b34 rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x00047b38 move v0, v1 | v0 = v1;
0x00047b3c lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x00047b40 addu v0, v1, v0 | v0 = v1 + v0;
0x00047b44 lw v1, (v0) | v1 = *(v0);
0x00047b48 addiu v0, zero, 2 | v0 = 2;
0x00047b4c move s1, zero | s1 = 0;
| if (v1 == v0) {
0x00047b50 beq v1, v0, 0x47edc | goto label_3;
| }
0x00047b54 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00047b58 lw t9, -0x7958(gp) | t9 = *((gp - 7766));
0x00047b5c move a1, s0 | a1 = s0;
0x00047b60 addiu a0, a0, -0x7a14 | a0 += -0x7a14;
0x00047b64 bal 0x2f780 | sym_printf ();
0x00047b68 move sp, fp |
0x00047b6c b 0x47ee0 | goto label_5;
| }
0x00047b70 lw t9, -0x7cd0(gp) | t9 = *((gp - 7988));
0x00047b74 move a0, v0 | a0 = v0;
0x00047b78 addiu a1, zero, 2 | a1 = 2;
0x00047b7c bal 0x327e0 | sym_fsetlocking ();
0x00047b80 lw gp, 0x10(fp) | gp = *(dest);
0x00047b84 addiu a0, fp, 0x18 | a0 = fp + 0x18;
0x00047b88 lw t9, -0x7aa8(gp) | t9 = *((gp - 7850));
0x00047b8c addiu a1, zero, 0x400 | a1 = aav.0x00000400;
0x00047b90 jalr t9 | t9 ();
0x00047b94 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 < 0) {
0x00047b98 bgez v0, 0x47ba0 |
0x00047b9c sb zero, 0x18(fp) | *(var_18h) = 0;
| }
0x00047ba0 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x00047ba4 addiu a0, fp, 0x18 | a0 = fp + 0x18;
0x00047ba8 addiu a1, zero, 0x2e | a1 = 0x2e;
0x00047bac bal 0x3b3e0 | sym_index ();
0x00047bb0 move s4, v0 | s4 = v0;
0x00047bb4 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 == 0) {
0x00047bb8 bnez v0, 0x47bd4 |
0x00047bbc lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00047bc0 addiu a0, fp, 0x18 | a0 = fp + 0x18;
0x00047bc4 bal 0x3b6b0 | sym_strlen ();
0x00047bc8 lw gp, 0x10(fp) | gp = *(dest);
0x00047bcc addiu v1, fp, 0x18 | v1 = fp + 0x18;
0x00047bd0 addu s4, v1, v0 | s4 = v1 + v0;
| }
0x00047bd4 lw s0, -0x7ecc(gp) | s0 = *((gp - 8115));
0x00047bd8 move s1, zero | s1 = 0;
0x00047bdc addiu s0, s0, 0x1be4 | s0 += 0x1be4;
0x00047be0 b 0x47ea4 | goto label_6;
| label_2:
0x00047be4 addiu v1, zero, 1 | v1 = 1;
0x00047be8 addiu v1, zero, 0xb | v1 = 0xb;
| if (v0 != v1) {
0x00047bec beq v0, v1, 0x47c34 |
0x00047bf0 lw v1, -0x7b0c(gp) | v1 = *((gp - 7875));
| if (v0 != v1) {
0x00047bf4 bne v0, v1, 0x47ea8 | goto label_7;
| }
0x00047bf8 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| if (s1 == 0) {
0x00047bfc bnel s1, zero, 0x47e5c | goto label_8;
| }
0x00047c00 jalr t9 | t9 ();
0x00047c04 nop |
0x00047c08 addiu v1, zero, 0xa | v1 = 0xa;
0x00047c0c lw gp, 0x10(fp) | gp = *(dest);
| if (v0 != v1) {
0x00047c10 bne v0, v1, 0x47ea4 | goto label_6;
| }
0x00047c14 lw t9, -0x7d9c(gp) | t9 = *((gp - 8039));
0x00047c18 move a0, s2 | a0 = s2;
0x00047c1c move a1, s0 | a1 = s0;
0x00047c20 bal 0x3c160 | sym_strcasecmp ();
0x00047c24 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 != 0) {
0x00047c28 bnez v0, 0x47c3c | goto label_9;
| }
0x00047c2c addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
0x00047c30 b 0x47e5c | goto label_8;
| }
0x00047c34 addiu s1, zero, 1 | s1 = 1;
0x00047c38 b 0x47e58 | goto label_10;
| label_9:
0x00047c3c lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
0x00047c40 move a0, s2 | a0 = s2;
0x00047c44 addiu a1, zero, 0x2e | a1 = 0x2e;
0x00047c48 bal 0x3b3e0 | sym_index ();
0x00047c4c lw gp, 0x10(fp) | gp = *(dest);
| if (v0 == 0) {
0x00047c50 beqz v0, 0x47ea4 | goto label_6;
| }
0x00047c54 lw t9, -0x7d9c(gp) | t9 = *((gp - 8039));
0x00047c58 move a0, v0 | a0 = v0;
0x00047c5c move a1, s4 | a1 = s4;
0x00047c60 sw v0, 0x4b0(fp) | *(var_4b0h) = v0;
0x00047c64 bal 0x3c160 | sym_strcasecmp ();
0x00047c68 lw gp, 0x10(fp) | gp = *(dest);
0x00047c6c lw a2, 0x4b0(fp) | a2 = *(var_4b0h);
| if (v0 != 0) {
0x00047c70 bnez v0, 0x47ea4 | goto label_6;
| }
0x00047c74 lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x00047c78 subu v1, a2, s2 | __asm ("subu v1, a2, s2");
0x00047c7c move a2, v1 | a2 = v1;
0x00047c80 sw v1, 0x4b0(fp) | *(var_4b0h) = v1;
0x00047c84 move a0, s2 | a0 = s2;
0x00047c88 move a1, s0 | a1 = s0;
0x00047c8c bal 0x3c3c0 | sym_strncasecmp ();
0x00047c90 lw gp, 0x10(fp) | gp = *(dest);
0x00047c94 lw v1, 0x4b0(fp) | v1 = *(var_4b0h);
| if (v0 != 0) {
0x00047c98 bnez v0, 0x47ea4 | goto label_6;
| }
0x00047c9c addu v1, v1, s0 | v1 += s0;
0x00047ca0 lbu v0, (v1) | v0 = *(v1);
0x00047ca4 move s1, zero | s1 = 0;
0x00047ca8 b 0x47d54 | goto label_11;
| label_0:
0x00047cac slti v1, v0, 4 | v1 = (v0 < 4) ? 1 : 0;
| if (v0 == v1) {
0x00047cb0 beq v0, v1, 0x47d64 | goto label_12;
| }
| if (v1 != 0) {
0x00047cb4 beql v1, zero, 0x47cd0 |
0x00047cb8 slti v0, v0, 6 | v0 = (v0 < 6) ? 1 : 0;
0x00047cbc addiu v1, zero, 2 | v1 = 2;
0x00047cc0 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
| if (v0 != v1) {
0x00047cc4 bne v0, v1, 0x47e48 | goto label_13;
| }
0x00047cc8 b 0x47ce0 | goto label_14;
0x00047ccc nop |
| }
0x00047cd0 lw v0, -0x7fa8(gp) | v0 = *((gp - 8170));
| if (v0 == 0) {
0x00047cd4 beqz v0, 0x47e48 | goto label_13;
| }
0x00047cd8 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
0x00047cdc b 0x47e5c | goto label_8;
| label_14:
0x00047ce0 jalr t9 | t9 ();
0x00047ce4 nop |
0x00047ce8 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 == 0) {
0x00047cec beqz v0, 0x47e58 | goto label_10;
| }
0x00047cf0 lw a0, (s5) | a0 = *(s5);
0x00047cf4 lw t9, -0x7e94(gp) | t9 = *((gp - 8101));
| if (a0 != 0) {
0x00047cf8 bnez a0, 0x47d48 | goto label_15;
| }
0x00047cfc lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00047d00 move a0, s0 | a0 = s0;
0x00047d04 bal 0x3b6b0 | sym_strlen ();
0x00047d08 lw gp, 0x10(fp) | gp = *(dest);
0x00047d0c lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x00047d10 addiu a0, v0, 1 | a0 = v0 + 1;
0x00047d14 jalr t9 | t9 ();
0x00047d18 lw gp, 0x10(fp) | gp = *(dest);
0x00047d1c bnez v0, 0x47d30 |
| while (v0 == 0) {
0x00047d20 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00047d24 lw t9, -0x7958(gp) | t9 = *((gp - 7766));
0x00047d28 addiu a0, a0, -0x5378 | a0 += -0x5378;
0x00047d2c b 0x47ddc | goto label_16;
0x00047d30 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00047d34 move a0, v0 | a0 = v0;
0x00047d38 move a1, s0 | a1 = s0;
0x00047d3c bal 0x3b600 | sym_strcpy ()
0x00047d40 sw v0, (s5) | *(s5) = v0;
0x00047d44 b 0x47e58 | goto label_10;
| label_15:
0x00047d48 move a1, s0 | a1 = s0;
0x00047d4c bal 0x3b5d0 | sym_strcmp ();
0x00047d50 lw gp, 0x10(fp) | gp = *(dest);
| label_11:
0x00047d54 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| if (v0 == 0) {
0x00047d58 beqz v0, 0x47e5c | goto label_8;
| }
0x00047d5c lw v1, -0x7b0c(gp) | v1 = *((gp - 7875));
0x00047d60 b 0x47ea8 | goto label_7;
| label_12:
0x00047d64 lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00047d68 lw t9, -0x7e94(gp) | t9 = *((gp - 8101));
0x00047d6c lw a0, (s5) | a0 = *(s5);
0x00047d70 addiu a1, a1, -0x5368 | a1 += -0x5368;
0x00047d74 bal 0x3b5d0 | sym_strcmp ();
0x00047d78 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 != 0) {
0x00047d7c beqz v0, 0x47dec |
0x00047d80 lw t9, -0x79c0(gp) | t9 = *((gp - 7792));
0x00047d84 lw a0, 0x1be0(s3) | a0 = *((s3 + 1784));
0x00047d88 bal 0x387c0 | sym_fileno ();
0x00047d8c lw gp, 0x10(fp) | gp = *(dest);
0x00047d90 move a0, v0 | a0 = v0;
0x00047d94 lw t9, -0x7e90(gp) | t9 = *((gp - 8100));
0x00047d98 addiu a1, fp, 0x418 | a1 = fp + aav.0x00000418;
0x00047d9c jalr t9 | t9 ();
0x00047da0 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 < 0) {
0x00047da4 bltz v0, 0x47dec | goto label_17;
| }
0x00047da8 lw v0, 0x42c(fp) | v0 = *(var_42ch);
0x00047dac andi v0, v0, 0x3f | v0 &= 0x3f;
0x00047db0 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| if (v0 == 0) {
0x00047db4 beqz v0, 0x47df0 | goto label_18;
| }
0x00047db8 lw s0, -0x7958(gp) | s0 = *((gp - 7766));
0x00047dbc lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00047dc0 move t9, s0 | t9 = s0;
0x00047dc4 addiu a0, a0, -0x535c | a0 += -0x535c;
0x00047dc8 bal 0x2f780 | sym_printf ();
0x00047dcc lw gp, 0x10(fp) | gp = *(dest);
0x00047dd0 move t9, s0 | t9 = s0;
0x00047dd4 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x00047dd8 addiu a0, a0, -0x5330 | a0 += -0x5330;
| label_16:
0x00047ddc bal 0x2f780 | sym_printf ();
0x00047de0 nop |
0x00047de4 lw gp, 0x10(fp) | gp = *(dest);
0x00047de8 b 0x47ecc | goto label_19;
| }
| label_17:
0x00047dec addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| label_18:
0x00047df0 bal 0x47740 | fcn_00047740 ();
0x00047df4 nop |
0x00047df8 lw gp, 0x10(fp) | gp = *(dest);
| if (v0 == 0) {
0x00047dfc beqz v0, 0x47e58 | goto label_10;
| }
0x00047e00 lw v0, (s7) | v0 = *(s7);
0x00047e04 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| if (v0 != 0) {
0x00047e08 bnez v0, 0x47e5c | goto label_8;
| }
0x00047e0c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00047e10 move a0, s0 | a0 = s0;
0x00047e14 bal 0x3b6b0 | sym_strlen ();
0x00047e18 lw gp, 0x10(fp) | gp = *(dest);
0x00047e1c lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x00047e20 addiu a0, v0, 1 | a0 = v0 + 1;
0x00047e24 jalr t9 | t9 ();
0x00047e28 lw gp, 0x10(fp) | gp = *(dest);
0x00047e2c beqz v0, 0x47d20 |
| }
0x00047e30 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00047e34 move a0, v0 | a0 = v0;
0x00047e38 move a1, s0 | a1 = s0;
0x00047e3c bal 0x3b600 | sym_strcpy ()
0x00047e40 sw v0, (s7) | *(s7) = v0;
0x00047e44 b 0x47e58 | goto label_10;
| label_13:
0x00047e48 lw t9, -0x7958(gp) | t9 = *((gp - 7766));
0x00047e4c move a1, s0 | a1 = s0;
0x00047e50 addiu a0, v0, -0x52fc | a0 = v0 + -0x52fc;
0x00047e54 bal 0x2f780 | sym_printf ();
| label_10:
0x00047e58 addiu t9, s6, 0x7740 | t9 = s6 + 0x7740;
| label_8:
0x00047e5c sw t9, 0x4b0(fp) | *(var_4b0h) = t9;
0x00047e60 bal 0x47740 | fcn_00047740 ();
0x00047e64 lw gp, 0x10(fp) | gp = *(dest);
0x00047e68 lw t9, 0x4b0(fp) | t9 = *(var_4b0h);
0x00047e6c bnez v0, 0x47e88 |
| while (v0 == v1) {
0x00047e70 lw a0, 0x1be0(s3) | a0 = *((s3 + 1784));
| label_1:
0x00047e74 lw t9, -0x7dcc(gp) | t9 = *((gp - 8051));
0x00047e78 move s1, zero | s1 = 0;
0x00047e7c bal 0x2de40 | sym_fclose ();
0x00047e80 move sp, fp |
0x00047e84 b 0x47ee0 | goto label_5;
0x00047e88 addiu v1, zero, 0xb | v1 = 0xb;
0x00047e8c addiu v1, zero, 1 | v1 = 1;
0x00047e90 beq v0, v1, 0x47e70 |
| }
0x00047e94 addiu v1, zero, 3 | v1 = 3;
| if (v0 != v1) {
0x00047e98 bne v0, v1, 0x47cac | goto label_0;
| }
0x00047e9c lw a0, 0x1be0(s3) | a0 = *((s3 + 1784));
0x00047ea0 b 0x47e74 | goto label_1;
| label_6:
0x00047ea4 lw v1, -0x7b0c(gp) | v1 = *((gp - 7875));
| label_7:
0x00047ea8 addiu t9, v1, 0x7740 | t9 = v1 + 0x7740;
0x00047eac sw t9, 0x4b0(fp) | *(var_4b0h) = t9;
0x00047eb0 bal 0x47740 | fcn_00047740 ();
0x00047eb4 lw gp, 0x10(fp) | gp = *(dest);
0x00047eb8 lw t9, 0x4b0(fp) | t9 = *(var_4b0h);
0x00047ebc lw s6, -0x7b0c(gp) | s6 = *((gp - 7875));
| if (v0 != 0) {
0x00047ec0 bnez v0, 0x47be4 | goto label_2;
| }
0x00047ec4 lw a0, 0x1be0(s3) | a0 = *((s3 + 1784));
0x00047ec8 b 0x47e74 | goto label_1;
| label_19:
0x00047ecc lw t9, -0x7dcc(gp) | t9 = *((gp - 8051));
0x00047ed0 lw a0, 0x1be0(s3) | a0 = *((s3 + 1784));
0x00047ed4 bal 0x2de40 | sym_fclose ();
| label_4:
0x00047ed8 addiu s1, zero, -1 | s1 = -1;
| label_3:
0x00047edc move sp, fp |
| label_5:
0x00047ee0 lw ra, 0x4dc(sp) | ra = *(var_4dch);
0x00047ee4 move v0, s1 | v0 = s1;
0x00047ee8 lw fp, 0x4d8(sp) | fp = *(var_4d8h);
0x00047eec lw s7, 0x4d4(sp) | s7 = *(var_4d4h);
0x00047ef0 lw s6, 0x4d0(sp) | s6 = *(var_4d0h);
0x00047ef4 lw s5, 0x4cc(sp) | s5 = *(var_4cch);
0x00047ef8 lw s4, 0x4c8(sp) | s4 = *(var_4c8h);
0x00047efc lw s3, 0x4c4(sp) | s3 = *(var_4c4h);
0x00047f00 lw s2, 0x4c0(sp) | s2 = *(var_4c0h);
0x00047f04 lw s1, 0x4bc(sp) | s1 = *(var_4bch);
0x00047f08 lw s0, 0x4b8(sp) | s0 = *(var_4b8h);
0x00047f0c addiu sp, sp, 0x4e0 |
0x00047f10 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x2dd70 */
| #include <stdint.h>
|
; (fcn) sym.sgetspent_r () | void sgetspent_r () {
0x0002dd70 lui gp, 8 |
0x0002dd74 addiu gp, gp, 0x7970 |
0x0002dd78 addu gp, gp, t9 | gp += t9;
0x0002dd7c addiu sp, sp, -0x30 |
0x0002dd80 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x0002dd84 lw s1, 0x40(sp) | s1 = *(arg_40h);
0x0002dd88 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0002dd8c sltiu v0, a3, 0x100 | v0 = (a3 < aav.0x00000100) ? 1 : 0;
0x0002dd90 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0002dd94 sw s4, 0x28(sp) | *(var_28h) = s4;
0x0002dd98 sw s3, 0x24(sp) | *(var_24h) = s3;
0x0002dd9c sw s2, 0x20(sp) | *(var_20h) = s2;
0x0002dda0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002dda4 sw zero, (s1) | *(s1) = 0;
0x0002dda8 beqz v0, 0x2ddcc |
| while (v0 == 0) {
0x0002ddac rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0002ddb0 move v0, v1 | v0 = v1;
0x0002ddb4 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x0002ddb8 addu v0, v1, v0 | v0 = v1 + v0;
0x0002ddbc addiu v1, zero, 0x22 | v1 = 0x22;
0x0002ddc0 sw v1, (v0) | *(v0) = v1;
0x0002ddc4 addiu v0, zero, 0x22 | v0 = 0x22;
0x0002ddc8 b 0x2de20 | goto label_0;
0x0002ddcc move s2, a1 | s2 = a1;
0x0002ddd0 move s0, a2 | s0 = a2;
| if (a0 == a2) {
0x0002ddd4 beq a0, a2, 0x2de08 | goto label_1;
| }
0x0002ddd8 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0002dddc move s4, a3 | s4 = a3;
0x0002dde0 move s3, a0 | s3 = a0;
0x0002dde4 bal 0x3b6b0 | sym_strlen ();
0x0002dde8 sltu v0, v0, s4 | v0 = (v0 < s4) ? 1 : 0;
0x0002ddec lw gp, 0x10(sp) | gp = *(var_10h);
0x0002ddf0 beqz v0, 0x2ddac |
| }
0x0002ddf4 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x0002ddf8 move a0, s0 | a0 = s0;
0x0002ddfc move a1, s3 | a1 = s3;
0x0002de00 bal 0x3b600 | sym_strcpy ()
0x0002de04 lw gp, 0x10(sp) | gp = *(var_10h);
| label_1:
0x0002de08 lw t9, -0x7c7c(gp) | t9 = *(gp);
0x0002de0c move a0, s2 | a0 = s2;
0x0002de10 move a1, s0 | a1 = s0;
0x0002de14 bal 0x2d500 | fcn_0002d500 ();
| if (v0 != 0) {
0x0002de18 beql v0, zero, 0x2de20 |
0x0002de1c sw s2, (s1) | *(s1) = s2;
| }
| label_0:
0x0002de20 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0002de24 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0002de28 lw s3, 0x24(sp) | s3 = *(var_24h);
0x0002de2c lw s2, 0x20(sp) | s2 = *(var_20h);
0x0002de30 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0002de34 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0002de38 addiu sp, sp, 0x30 |
0x0002de3c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x24e70 */
| #include <stdint.h>
|
; (fcn) sym.timegm () | void timegm () {
0x00024e70 lui gp, 9 |
0x00024e74 addiu gp, gp, 0x870 |
0x00024e78 addu gp, gp, t9 | gp += t9;
0x00024e7c lw t9, -0x7fe4(gp) | t9 = *((gp - 8185));
0x00024e80 addiu sp, sp, -0x50 |
0x00024e84 addiu a2, zero, 0x30 | a2 = 0x30;
0x00024e88 move a1, zero | a1 = 0;
0x00024e8c sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00024e90 sw s0, 0x48(sp) | *(var_48h) = s0;
0x00024e94 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00024e98 move s0, a0 | s0 = a0;
0x00024e9c addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00024ea0 bal 0x3a940 | sym_memset ();
0x00024ea4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00024ea8 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00024eac lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x00024eb0 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x00024eb4 addiu a1, a1, -0x777c | a1 += -0x777c;
0x00024eb8 bal 0x3b600 | sym_strcpy ()
0x00024ebc lw gp, 0x10(sp) | gp = *(var_10h);
0x00024ec0 move a0, s0 | a0 = s0;
0x00024ec4 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x00024ec8 lw t9, -0x7cdc(gp) | t9 = *((gp - 7991));
0x00024ecc addiu a1, zero, 1 | a1 = 1;
0x00024ed0 bal 0x24ef0 | fcn_00024ef0 ();
0x00024ed4 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00024ed8 lw s0, 0x48(sp) | s0 = *(var_48h);
0x00024edc addiu sp, sp, 0x50 |
0x00024ee0 jr ra | return;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x3ed40 */
| #include <stdint.h>
|
; (fcn) sym.ttyname_r () | void ttyname_r () {
0x0003ed40 lui gp, 7 |
0x0003ed44 addiu gp, gp, 0x69a0 |
0x0003ed48 addu gp, gp, t9 | gp += t9;
0x0003ed4c lw t9, -0x7e90(gp) | t9 = *((gp - 8100));
0x0003ed50 addiu sp, sp, -0x198 |
0x0003ed54 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003ed58 sw s5, 0x184(sp) | *(var_184h) = s5;
0x0003ed5c sw s4, 0x180(sp) | *(var_180h) = s4;
0x0003ed60 sw s0, 0x170(sp) | *(var_170h) = s0;
0x0003ed64 sw ra, 0x194(sp) | *(var_194h) = ra;
0x0003ed68 sw fp, 0x190(sp) | *(var_190h) = fp;
0x0003ed6c sw s7, 0x18c(sp) | *(var_18ch) = s7;
0x0003ed70 sw s6, 0x188(sp) | *(var_188h) = s6;
0x0003ed74 sw s3, 0x17c(sp) | *(var_17ch) = s3;
0x0003ed78 sw s2, 0x178(sp) | *(var_178h) = s2;
0x0003ed7c sw s1, 0x174(sp) | *(var_174h) = s1;
0x0003ed80 move s4, a1 | s4 = a1;
0x0003ed84 addiu a1, sp, 0xb0 | a1 = sp + 0xb0;
0x0003ed88 move s0, a0 | s0 = a0;
0x0003ed8c move s5, a2 | s5 = a2;
0x0003ed90 jalr t9 | t9 ();
0x0003ed94 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 < 0) {
0x0003ed98 bgez v0, 0x3edb4 |
0x0003ed9c rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0003eda0 move v0, v1 | v0 = v1;
0x0003eda4 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x0003eda8 addu v0, v1, v0 | v0 = v1 + v0;
0x0003edac lw v0, (v0) | v0 = *(v0);
0x0003edb0 b 0x3ef40 | goto label_1;
| }
0x0003edb4 lw t9, -0x7be0(gp) | t9 = *((gp - 7928));
0x0003edb8 move a0, s0 | a0 = s0;
0x0003edbc bal 0x3e6c0 | sym_isatty ();
0x0003edc0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0003edc4 bnez v0, 0x3ef08 | goto label_2;
| }
0x0003edc8 addiu v0, zero, 0x19 | v0 = 0x19;
0x0003edcc b 0x3ef2c | goto label_3;
| label_0:
0x0003edd0 addiu a0, sp, 0x148 | a0 = sp + aav.0x00000148;
0x0003edd4 move t9, s3 | t9 = s3;
0x0003edd8 move a1, s2 | a1 = s2;
0x0003eddc bal 0x3b600 | sym_strcpy ()
0x0003ede0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ede4 addiu v0, sp, 0x148 | v0 = sp + aav.0x00000148;
0x0003ede8 move a0, s2 | a0 = s2;
0x0003edec lw t9, -0x7e7c(gp) | t9 = *((gp - 8095));
0x0003edf0 addu s7, v0, s1 | s7 = v0 + s1;
0x0003edf4 addiu fp, zero, 0x1e | fp = 0x1e;
0x0003edf8 jalr t9 | t9 ();
0x0003edfc subu fp, fp, s1 | __asm ("subu fp, fp, s1");
0x0003ee00 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ee04 move s1, v0 | s1 = v0;
| if (v0 != 0) {
0x0003ee08 bnez v0, 0x3eed4 | goto label_4;
| }
0x0003ee0c lbu s0, (s0) | s0 = *(s0);
0x0003ee10 b 0x3eefc | goto label_5;
| do {
0x0003ee14 addiu a1, v0, 0xb | a1 = v0 + 0xb;
0x0003ee18 move a0, a1 | a0 = a1;
0x0003ee1c move t9, s6 | t9 = s6;
0x0003ee20 sw a1, 0x168(sp) | *(var_168h) = a1;
0x0003ee24 bal 0x3b6b0 | sym_strlen ();
0x0003ee28 sltu v0, fp, v0 | v0 = (fp < v0) ? 1 : 0;
0x0003ee2c lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ee30 lw a1, 0x168(sp) | a1 = *(var_168h);
| if (v0 == 0) {
0x0003ee34 bnez v0, 0x3eed4 |
0x0003ee38 move t9, s3 | t9 = s3;
0x0003ee3c move a0, s7 | a0 = s7;
0x0003ee40 bal 0x3b600 | sym_strcpy ()
0x0003ee44 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ee48 addiu a0, sp, 0x148 | a0 = sp + aav.0x00000148;
0x0003ee4c lw t9, -0x7e28(gp) | t9 = *((gp - 8074));
0x0003ee50 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0003ee54 jalr t9 | t9 ();
0x0003ee58 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0003ee5c bnez v0, 0x3eed4 | goto label_4;
| }
0x0003ee60 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0003ee64 addiu v0, zero, 0x2000 | v0 = 0x2000;
0x0003ee68 andi v1, v1, 0xf000 | v1 &= aav.0x0000f000;
0x0003ee6c lw t9, -0x7e78(gp) | t9 = *((gp - 8094));
| if (v1 != v0) {
0x0003ee70 bne v1, v0, 0x3eed8 | goto label_6;
| }
0x0003ee74 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0003ee78 lw v1, 0xd8(sp) | v1 = *(var_d8h);
0x0003ee7c lw v0, 0x44(sp) | v0 = *(var_44h);
| if (v1 != v0) {
0x0003ee80 bne v1, v0, 0x3eed8 | goto label_6;
| }
0x0003ee84 lw v1, 0xdc(sp) | v1 = *(var_dch);
0x0003ee88 lw t9, -0x7e74(gp) | t9 = *((gp - 8093));
| if (v1 != v0) {
0x0003ee8c bne v1, v0, 0x3eed4 | goto label_4;
| }
0x0003ee90 move a0, s1 | a0 = s1;
0x0003ee94 jalr t9 | t9 ();
0x0003ee98 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003ee9c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x0003eea0 addiu a0, sp, 0x148 | a0 = sp + aav.0x00000148;
0x0003eea4 bal 0x3b6b0 | sym_strlen ();
0x0003eea8 sltu s5, s5, v0 | s5 = (s5 < v0) ? 1 : 0;
0x0003eeac lw gp, 0x10(sp) | gp = *(var_10h);
0x0003eeb0 addiu v0, zero, 0x22 | v0 = 0x22;
| if (s5 != 0) {
0x0003eeb4 bnez s5, 0x3ef2c | goto label_3;
| }
0x0003eeb8 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x0003eebc move a0, s4 | a0 = s4;
0x0003eec0 addiu a1, sp, 0x148 | a1 = sp + aav.0x00000148;
0x0003eec4 bal 0x3b600 | sym_strcpy ()
0x0003eec8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003eecc move v0, zero | v0 = 0;
0x0003eed0 b 0x3ef2c | goto label_3;
| }
| label_4:
0x0003eed4 lw t9, -0x7e78(gp) | t9 = *((gp - 8094));
| label_6:
0x0003eed8 move a0, s1 | a0 = s1;
0x0003eedc jalr t9 | t9 ();
0x0003eee0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003eee4 bnez v0, 0x3ee14 |
| } while (v0 != 0);
0x0003eee8 lw t9, -0x7e74(gp) | t9 = *((gp - 8093));
0x0003eeec move a0, s1 | a0 = s1;
0x0003eef0 jalr t9 | t9 ();
0x0003eef4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003eef8 lbu s0, (s0) | s0 = *(s0);
| label_5:
0x0003eefc addiu s0, s0, 1 | s0++;
0x0003ef00 addu s0, s2, s0 | s0 = s2 + s0;
0x0003ef04 b 0x3ef18 | goto label_7;
| label_2:
0x0003ef08 lw s0, -0x7fa8(gp) | s0 = *((gp - 8170));
0x0003ef0c lw s3, -0x7f44(gp) | s3 = *((gp - 8145));
0x0003ef10 lw s6, -0x7fdc(gp) | s6 = *((gp - 8183));
0x0003ef14 addiu s0, s0, -0x5da0 | s0 += -0x5da0;
| label_7:
0x0003ef18 lbu s1, (s0) | s1 = *(s0);
0x0003ef1c addiu s2, s0, 1 | s2 = s0 + 1;
| if (s1 != 0) {
0x0003ef20 bnez s1, 0x3edd0 | goto label_0;
| }
0x0003ef24 addiu v0, zero, 0x19 | v0 = 0x19;
0x0003ef28 b 0x3ef2c |
| label_3:
0x0003ef2c rdhwr v1, 29 | __asm ("rdhwr v1, 29");
0x0003ef30 move a0, v1 | a0 = v1;
0x0003ef34 lw v1, -0x7564(gp) | v1 = *((gp - 7513));
0x0003ef38 addu a0, v1, a0 | a0 = v1 + a0;
0x0003ef3c sw v0, (a0) | *(a0) = v0;
| label_1:
0x0003ef40 lw ra, 0x194(sp) | ra = *(var_194h);
0x0003ef44 lw fp, 0x190(sp) | fp = *(var_190h);
0x0003ef48 lw s7, 0x18c(sp) | s7 = *(var_18ch);
0x0003ef4c lw s6, 0x188(sp) | s6 = *(var_188h);
0x0003ef50 lw s5, 0x184(sp) | s5 = *(var_184h);
0x0003ef54 lw s4, 0x180(sp) | s4 = *(var_180h);
0x0003ef58 lw s3, 0x17c(sp) | s3 = *(var_17ch);
0x0003ef5c lw s2, 0x178(sp) | s2 = *(var_178h);
0x0003ef60 lw s1, 0x174(sp) | s1 = *(var_174h);
0x0003ef64 lw s0, 0x170(sp) | s0 = *(var_170h);
0x0003ef68 addiu sp, sp, 0x198 |
0x0003ef6c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libuClibc-0.9.33.2.so @ 0x2b04c */
| #include <stdint.h>
|
; (fcn) sym.wordexp () | void wordexp () {
0x0002b04c lui gp, 9 |
0x0002b050 addiu gp, gp, -0x596c |
0x0002b054 addu gp, gp, t9 | gp += t9;
0x0002b058 lw v1, (a1) | v1 = *(a1);
0x0002b05c addiu sp, sp, -0xa0 |
0x0002b060 lw t9, 4(a1) | t9 = *((a1 + 1));
0x0002b064 sw v1, 0x70(sp) | *(var_70h) = v1;
0x0002b068 lw v1, 8(a1) | v1 = *((a1 + 2));
0x0002b06c sw gp, 0x28(sp) | *(var_28h) = gp;
0x0002b070 andi v0, a2, 8 | v0 = a2 & 8;
0x0002b074 sw s3, 0x84(sp) | *(var_84h) = s3;
0x0002b078 sw s1, 0x7c(sp) | *(var_7ch) = s1;
0x0002b07c sw s0, 0x78(sp) | *(var_78h) = s0;
0x0002b080 sw ra, 0x9c(sp) | *(var_9ch) = ra;
0x0002b084 sw fp, 0x98(sp) | *(var_98h) = fp;
0x0002b088 sw s7, 0x94(sp) | *(var_94h) = s7;
0x0002b08c sw s6, 0x90(sp) | *(var_90h) = s6;
0x0002b090 sw s5, 0x8c(sp) | *(var_8ch) = s5;
0x0002b094 sw s4, 0x88(sp) | *(var_88h) = s4;
0x0002b098 sw s2, 0x80(sp) | *(var_80h) = s2;
0x0002b09c move s1, a0 | s1 = a0;
0x0002b0a0 move s0, a1 | s0 = a1;
0x0002b0a4 move s3, a2 | s3 = a2;
0x0002b0a8 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0002b0ac sw zero, 0x54(sp) | *(var_54h) = 0;
0x0002b0b0 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x0002b0b4 sw t9, 0x64(sp) | *(var_64h) = t9;
0x0002b0b8 sw v1, 0x6c(sp) | *(var_6ch) = v1;
| if (v0 != 0) {
0x0002b0bc beqz v0, 0x2b0d4 |
0x0002b0c0 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002b0c4 move a0, a1 | a0 = a1;
0x0002b0c8 bal 0x2afc8 | sym_wordfree ();
0x0002b0cc lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b0d0 sw zero, 0x64(sp) | *(var_64h) = 0;
| }
0x0002b0d4 andi t9, s3, 2 | t9 = s3 & 2;
0x0002b0d8 sw t9, 0x60(sp) | *(var_60h) = t9;
| if (t9 == 0) {
0x0002b0dc bnez t9, 0x2b130 |
0x0002b0e0 andi v0, s3, 1 | v0 = s3 & 1;
0x0002b0e4 sw zero, (s0) | *(s0) = 0;
0x0002b0e8 lw t9, -0x75cc(gp) | t9 = *((gp - 7539));
| if (v0 != 0) {
0x0002b0ec beqz v0, 0x2b114 |
0x0002b0f0 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0002b0f4 addiu a1, zero, 4 | a1 = 4;
0x0002b0f8 addiu a0, a0, 1 | a0++;
0x0002b0fc jalr t9 | t9 ();
0x0002b100 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x0002b104 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b108 bnez v0, 0x2b130 | goto label_10;
| }
0x0002b10c addiu s7, zero, 1 | s7 = 1;
0x0002b110 b 0x2b9c0 | goto label_9;
| }
0x0002b114 addiu a0, zero, 1 | a0 = 1;
0x0002b118 addiu a1, zero, 4 | a1 = 4;
0x0002b11c jalr t9 | t9 ();
0x0002b120 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x0002b124 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b128 beqz v0, 0x2ba30 | goto label_11;
| }
0x0002b12c sw zero, 8(s0) | *((s0 + 2)) = 0;
| }
| label_10:
0x0002b130 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x0002b134 lw t9, -0x7f84(gp) | t9 = *((gp - 8161));
0x0002b138 addiu a0, a0, -0x71b4 | a0 += -0x71b4;
0x0002b13c jalr t9 | t9 ();
0x0002b140 move s2, v0 | s2 = v0;
0x0002b144 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b148 bnez v0, 0x2b16c |
0x0002b14c lw a1, -0x7fa8(gp) | a1 = *((gp - 8170));
0x0002b150 lw t9, -0x7f44(gp) | t9 = *((gp - 8145));
0x0002b154 addiu a0, sp, 0x48 | a0 = sp + 0x48;
0x0002b158 addiu a1, a1, -0x7d4c | a1 += -0x7d4c;
0x0002b15c bal 0x3b600 | sym_strcpy ()
0x0002b160 move s2, v0 | s2 = v0;
0x0002b164 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b168 b 0x2b1e0 | goto label_12;
| }
0x0002b16c sb zero, 0x48(sp) | *(dest) = 0;
0x0002b170 move a1, v0 | a1 = v0;
0x0002b174 addiu v1, sp, 0x48 | v1 = sp + 0x48;
0x0002b178 addiu a3, zero, 0x20 | a3 = 0x20;
0x0002b17c addiu t0, zero, 9 | t0 = 9;
0x0002b180 addiu t1, zero, 0xa | t1 = 0xa;
0x0002b184 b 0x2b1d0 | goto label_13;
| label_0:
0x0002b188 addiu v0, sp, 0x48 | v0 = sp + 0x48;
| if (a0 == a3) {
0x0002b18c beq a0, a3, 0x2b1a0 | goto label_14;
| }
0x0002b190 sltu a2, v0, v1 | a2 = (v0 < v1) ? 1 : 0;
| if (a0 == t0) {
0x0002b194 beq a0, t0, 0x2b1a4 | goto label_15;
| }
0x0002b198 addiu a1, a1, 1 | a1++;
| if (a0 == t1) {
0x0002b19c bnel a0, t1, 0x2b1d0 | goto label_13;
| }
| do {
| label_14:
0x0002b1a0 sltu a2, v0, v1 | a2 = (v0 < v1) ? 1 : 0;
| if (a2 == 0) {
| label_15:
0x0002b1a4 beqz a2, 0x2b1c0 | goto label_16;
| }
0x0002b1a8 nop |
0x0002b1ac lbu a2, (v0) | a2 = *(v0);
| if (a2 == 0) {
0x0002b1b0 beqz a2, 0x2b1c0 | goto label_16;
| }
0x0002b1b4 nop |
0x0002b1b8 addiu v0, v0, 1 | v0++;
0x0002b1bc bnel a2, a0, 0x2b1a0 |
| } while (a2 == a0);
| label_16:
0x0002b1c0 addiu a1, a1, 1 | a1++;
| if (v0 == v1) {
0x0002b1c4 bne v0, v1, 0x2b1d0 |
0x0002b1c8 sb a0, (v1) | *(v1) = a0;
0x0002b1cc addiu v1, v1, 1 | v1++;
| }
| label_13:
0x0002b1d0 lbu a0, (a1) | a0 = *(a1);
| if (a0 != 0) {
0x0002b1d4 bnez a0, 0x2b188 | goto label_0;
| }
0x0002b1d8 nop |
0x0002b1dc sb zero, (v1) | *(v1) = 0;
| label_12:
0x0002b1e0 sw zero, 0x58(sp) | *(var_58h) = 0;
0x0002b1e4 lw s4, -0x7fb4(gp) | s4 = *((gp - 8173));
0x0002b1e8 lw s5, -0x7fb4(gp) | s5 = *((gp - 8173));
0x0002b1ec b 0x2b988 | goto label_17;
| label_6:
0x0002b1f0 sltiu v1, s6, 0x40 | v1 = (s6 < 0x40) ? 1 : 0;
| if (s6 == v1) {
0x0002b1f4 beq s6, v1, 0x2b53c | goto label_18;
| }
0x0002b1f8 addiu v1, zero, 0x5c | v1 = 0x5c;
| if (v1 != 0) {
0x0002b1fc beqz v1, 0x2b238 |
0x0002b200 addiu v1, zero, 0x24 | v1 = 0x24;
0x0002b204 sltiu v1, s6, 0x25 | v1 = (s6 < 0x25) ? 1 : 0;
| if (s6 == v1) {
0x0002b208 beq s6, v1, 0x2b2a4 | goto label_19;
| }
0x0002b20c addiu v1, zero, 0x27 | v1 = 0x27;
| if (v1 != 0) {
0x0002b210 beqz v1, 0x2b228 |
0x0002b214 addiu v1, zero, 0x22 | v1 = 0x22;
0x0002b218 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
| if (s6 != v1) {
0x0002b21c bne s6, v1, 0x2b8dc | goto label_20;
| }
0x0002b220 addiu v0, v0, 1 | v0++;
0x0002b224 b 0x2b334 | goto label_21;
| }
| if (s6 == v1) {
0x0002b228 beql s6, v1, 0x2b488 | goto label_22;
| }
0x0002b22c addiu v0, v0, 1 | v0++;
0x0002b230 addiu v0, zero, 0x2a | v0 = 0x2a;
0x0002b234 b 0x2b24c |
| } else {
0x0002b238 sltiu v1, s6, 0x5d | v1 = (s6 < 0x5d) ? 1 : 0;
| if (s6 == v1) {
0x0002b23c beq s6, v1, 0x2b278 | goto label_23;
| }
0x0002b240 addiu v1, zero, 0x60 | v1 = 0x60;
| if (v1 == 0) {
0x0002b244 beqz v1, 0x2b25c | goto label_24;
| }
0x0002b248 addiu v0, zero, 0x5b | v0 = 0x5b;
| }
0x0002b24c lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
| if (s6 != v0) {
0x0002b250 bne s6, v0, 0x2b8dc | goto label_20;
| }
0x0002b254 sw zero, 0x3c(sp) | *(var_3ch) = 0;
0x0002b258 b 0x2b540 | goto label_25;
| label_24:
0x0002b25c andi v1, s3, 4 | v1 = s3 & 4;
| if (s6 != v1) {
0x0002b260 beq s6, v1, 0x2b2e8 |
0x0002b264 addiu v0, zero, 0x7e | v0 = 0x7e;
0x0002b268 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
| if (s6 != v0) {
0x0002b26c bne s6, v0, 0x2b8dc | goto label_20;
| }
0x0002b270 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b274 b 0x2b500 | goto label_26;
| label_23:
0x0002b278 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x0002b27c addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b280 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b284 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b288 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b28c addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b290 addiu t9, t9, -0x7cb0 | t9 += -0x7cb0;
0x0002b294 move a3, s1 | a3 = s1;
0x0002b298 bal 0x28350 | fcn_00028350 ();
0x0002b29c lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b2a0 b 0x2b52c | goto label_27;
| label_19:
0x0002b2a4 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x0002b2a8 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b2ac sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b2b0 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0002b2b4 sw s3, 0x14(sp) | *(var_14h) = s3;
0x0002b2b8 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002b2bc sw s2, 0x1c(sp) | *(var_1ch) = s2;
0x0002b2c0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0002b2c4 sw zero, 0x24(sp) | *(var_24h) = 0;
0x0002b2c8 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b2cc addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b2d0 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b2d4 addiu t9, t9, -0x6664 | t9 += -0x6664;
0x0002b2d8 move a3, s1 | a3 = s1;
0x0002b2dc bal 0x2999c | fcn_0002999c ();
0x0002b2e0 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b2e4 b 0x2b52c | goto label_27;
| }
0x0002b2e8 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
| if (v1 != 0) {
0x0002b2ec bnez v1, 0x2ba14 | goto label_28;
| }
0x0002b2f0 addiu v0, v0, 1 | v0++;
0x0002b2f4 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b2f8 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b2fc sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b300 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0002b304 sw s3, 0x14(sp) | *(var_14h) = s3;
0x0002b308 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002b30c sw s2, 0x1c(sp) | *(var_1ch) = s2;
0x0002b310 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0002b314 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b318 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b31c addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b320 addiu t9, t9, -0x73e4 | t9 += -0x73e4;
0x0002b324 move a3, s1 | a3 = s1;
0x0002b328 bal 0x28c1c | fcn_00028c1c ();
0x0002b32c lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b330 b 0x2b52c | goto label_27;
| label_21:
0x0002b334 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b338 lw fp, -0x7fb4(gp) | fp = *((gp - 8173));
0x0002b33c lw s6, -0x7fb4(gp) | s6 = *((gp - 8173));
0x0002b340 b 0x2b46c | goto label_29;
| label_3:
0x0002b344 sltiu v1, a3, 0x25 | v1 = (a3 < 0x25) ? 1 : 0;
| if (a3 != v1) {
0x0002b348 beq a3, v1, 0x2b380 |
| if (v1 != 0) {
0x0002b34c beql v1, zero, 0x2b368 |
0x0002b350 addiu v1, zero, 0x5c | v1 = 0x5c;
0x0002b354 addiu v0, zero, 0x22 | v0 = 0x22;
0x0002b358 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (a3 != v0) {
0x0002b35c bne a3, v0, 0x2b448 | goto label_30;
| }
0x0002b360 lw v0, 0x54(sp) | v0 = *(var_54h);
0x0002b364 b 0x2ba20 | goto label_31;
| }
0x0002b368 addiu v1, zero, 0x60 | v1 = 0x60;
| if (a3 == v1) {
0x0002b36c beq a3, v1, 0x2b41c | goto label_32;
| }
0x0002b370 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (a3 != v1) {
0x0002b374 bne a3, v1, 0x2b448 | goto label_30;
| }
0x0002b378 andi v1, s3, 4 | v1 = s3 & 4;
0x0002b37c b 0x2b3d8 | goto label_33;
| }
0x0002b380 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b384 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b388 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0002b38c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0002b390 addiu v0, zero, 1 | v0 = 1;
0x0002b394 sw s3, 0x14(sp) | *(var_14h) = s3;
0x0002b398 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0002b39c sw s2, 0x1c(sp) | *(var_1ch) = s2;
0x0002b3a0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0002b3a4 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b3a8 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b3ac addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b3b0 addiu t9, fp, -0x6664 | t9 = fp + -0x6664;
0x0002b3b4 move a3, s1 | a3 = s1;
0x0002b3b8 bal 0x2999c | fcn_0002999c ();
0x0002b3bc lw gp, 0x28(sp) | gp = *(var_28h);
| do {
| label_1:
0x0002b3c0 move s7, v0 | s7 = v0;
| if (v0 != 0) {
0x0002b3c4 bnez v0, 0x2b9c0 | goto label_9;
| }
| label_2:
0x0002b3c8 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b3cc addiu v0, v0, 1 | v0++;
0x0002b3d0 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b3d4 b 0x2b46c | goto label_29;
| label_33:
0x0002b3d8 addiu v0, v0, 1 | v0++;
| if (v1 != 0) {
0x0002b3dc bnez v1, 0x2ba14 | goto label_28;
| }
0x0002b3e0 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b3e4 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b3e8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b3ec sw s3, 0x14(sp) | *(var_14h) = s3;
0x0002b3f0 sw zero, 0x18(sp) | *(var_18h) = 0;
0x0002b3f4 sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x0002b3f8 sw zero, 0x20(sp) | *(var_20h) = 0;
0x0002b3fc addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b400 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b404 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b408 addiu t9, s6, -0x73e4 | t9 = s6 + -0x73e4;
0x0002b40c move a3, s1 | a3 = s1;
0x0002b410 bal 0x28c1c | fcn_00028c1c ();
0x0002b414 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b418 b 0x2b3c0 |
| } while (1);
| label_32:
0x0002b41c addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b420 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b424 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b428 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b42c addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b430 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b434 addiu t9, v0, -0x7c1c | t9 = v0 + -0x7c1c;
0x0002b438 move a3, s1 | a3 = s1;
0x0002b43c bal 0x283e4 | fcn_000283e4 ();
0x0002b440 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b444 b 0x2b3c0 | goto label_1;
| label_30:
0x0002b448 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b44c addiu t9, s4, -0x7d70 | t9 = s4 + -0x7d70;
0x0002b450 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b454 bal 0x28290 | fcn_00028290 ();
0x0002b458 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b45c lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b460 bnez v0, 0x2b3c8 | goto label_2;
| }
0x0002b464 addiu s7, zero, 1 | s7 = 1;
0x0002b468 b 0x2b9c0 | goto label_9;
| label_29:
0x0002b46c lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b470 addu v1, s1, v0 | v1 = s1 + v0;
0x0002b474 lbu a3, (v1) | a3 = *(v1);
0x0002b478 addiu v1, zero, 0x24 | v1 = 0x24;
| if (a3 != 0) {
0x0002b47c bnez a3, 0x2b344 | goto label_3;
| }
0x0002b480 addiu s7, zero, 5 | s7 = 5;
0x0002b484 b 0x2b9c0 | goto label_9;
| label_22:
0x0002b488 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b48c addiu s6, zero, 0x27 | s6 = 0x27;
0x0002b490 b 0x2b4c4 |
| while (a3 != 0) {
0x0002b494 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (a3 == s6) {
0x0002b498 beq a3, s6, 0x2ba1c | goto label_34;
| }
0x0002b49c addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b4a0 addiu t9, s4, -0x7d70 | t9 = s4 + -0x7d70;
0x0002b4a4 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b4a8 bal 0x28290 | fcn_00028290 ();
0x0002b4ac sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b4b0 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b4b4 beqz v0, 0x2ba30 | goto label_11;
| }
0x0002b4b8 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b4bc addiu v0, v0, 1 | v0++;
0x0002b4c0 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b4c4 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b4c8 addu v0, s1, v0 | v0 = s1 + v0;
0x0002b4cc lbu a3, (v0) | a3 = *(v0);
0x0002b4d0 addiu s7, zero, 5 | s7 = 5;
0x0002b4d4 bnez a3, 0x2b494 |
| }
0x0002b4d8 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x0002b4dc b 0x2b9c4 | goto label_35;
| label_8:
0x0002b4e0 addiu t9, s5, -0x795c | t9 = s5 + -0x795c;
0x0002b4e4 move a1, zero | a1 = 0;
0x0002b4e8 bal 0x286a4 | fcn_000286a4 ();
0x0002b4ec move s7, v0 | s7 = v0;
0x0002b4f0 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b4f4 beqz v0, 0x2b97c | goto label_36;
| }
0x0002b4f8 lw ra, 0x9c(sp) | ra = *(var_9ch);
0x0002b4fc b 0x2ba3c | goto label_37;
| label_26:
0x0002b500 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x0002b504 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b508 lw v0, (s0) | v0 = *(s0);
0x0002b50c addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b510 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b514 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0002b518 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b51c addiu t9, t9, -0x71f8 | t9 += -0x71f8;
0x0002b520 move a3, s1 | a3 = s1;
0x0002b524 bal 0x28e08 | fcn_00028e08 ();
0x0002b528 lw gp, 0x28(sp) | gp = *(var_28h);
| label_27:
0x0002b52c move s7, v0 | s7 = v0;
| if (v0 == 0) {
0x0002b530 beqz v0, 0x2b97c | goto label_36;
| }
0x0002b534 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x0002b538 b 0x2b9c4 | goto label_35;
| label_18:
0x0002b53c sw zero, 0x3c(sp) | *(var_3ch) = 0;
| label_25:
0x0002b540 sw zero, 0x40(sp) | *(var_40h) = 0;
0x0002b544 sw zero, 0x44(sp) | *(var_44h) = 0;
0x0002b548 move s6, zero | s6 = 0;
0x0002b54c addiu s7, zero, 1 | s7 = 1;
0x0002b550 b 0x2b6b8 |
| while (fp != 0) {
0x0002b554 lw t9, -0x7f90(gp) | t9 = *((gp - 8164));
| if (s2 != 0) {
0x0002b558 beqz s2, 0x2b564 |
0x0002b55c move a0, s2 | a0 = s2;
0x0002b560 b 0x2b56c |
| } else {
0x0002b564 lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x0002b568 addiu a0, a0, -0x7d4c | a0 += -0x7d4c;
| }
0x0002b56c move a1, fp | a1 = fp;
0x0002b570 bal 0x3b3e0 | sym_index ();
0x0002b574 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b578 bnez v0, 0x2b6cc | goto label_38;
| }
0x0002b57c addiu v0, zero, 0x27 | v0 = 0x27;
0x0002b580 addiu v0, zero, 0x22 | v0 = 0x22;
| if (fp != v0) {
0x0002b584 bnel fp, v0, 0x2b598 |
0x0002b588 addiu v0, zero, 1 | v0 = 1;
| if (s6 == 0) {
0x0002b58c bnez s6, 0x2b5ac |
0x0002b590 addiu s6, zero, 1 | s6 = 1;
0x0002b594 b 0x2b6a0 |
| } else {
0x0002b598 addiu v0, zero, 1 | v0 = 1;
| if (fp != v0) {
0x0002b59c bne fp, v0, 0x2b5b4 | goto label_39;
| }
| if (s6 == 0) {
0x0002b5a0 beql s6, zero, 0x2b6ac | goto label_40;
| }
0x0002b5a4 addiu s6, zero, 2 | s6 = 2;
0x0002b5a8 addiu v0, zero, 2 | v0 = 2;
| }
0x0002b5ac addiu v0, zero, 1 | v0 = 1;
| if (s6 == v0) {
0x0002b5b0 beq s6, v0, 0x2b6a8 | goto label_41;
| }
| label_39:
0x0002b5b4 addiu v0, zero, 0x24 | v0 = 0x24;
| if (s6 != v0) {
0x0002b5b8 beq s6, v0, 0x2b620 |
0x0002b5bc addiu v0, zero, 0x5c | v0 = 0x5c;
| if (fp != v0) {
0x0002b5c0 bne fp, v0, 0x2b624 | goto label_42;
| }
0x0002b5c4 addiu v0, sp, 0x58 | v0 = sp + 0x58;
0x0002b5c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0002b5cc addiu v0, sp, 0x3c | v0 = sp + 0x3c;
0x0002b5d0 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x0002b5d4 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0002b5d8 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x0002b5dc sw v0, 0x20(sp) | *(var_20h) = v0;
0x0002b5e0 xori v0, s6, 2 | v0 = s6 ^ 2;
0x0002b5e4 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0002b5e8 sw s3, 0x14(sp) | *(var_14h) = s3;
0x0002b5ec sw s2, 0x1c(sp) | *(var_1ch) = s2;
0x0002b5f0 sw v0, 0x24(sp) | *(var_24h) = v0;
0x0002b5f4 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b5f8 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b5fc addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b600 addiu t9, t9, -0x6664 | t9 += -0x6664;
0x0002b604 move a3, s1 | a3 = s1;
0x0002b608 bal 0x2999c | fcn_0002999c ();
0x0002b60c move s7, v0 | s7 = v0;
0x0002b610 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b614 beqz v0, 0x2b6ac | goto label_40;
| }
0x0002b618 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002b61c b 0x2b8c4 | goto label_43;
| }
0x0002b620 addiu v0, zero, 0x5c | v0 = 0x5c;
| label_42:
0x0002b624 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (fp == v0) {
0x0002b628 bne fp, v0, 0x2b678 |
0x0002b62c addiu v1, sp, 0x58 | v1 = sp + 0x58;
0x0002b630 sw v1, 0x10(sp) | *(var_10h) = v1;
0x0002b634 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x0002b638 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b63c addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b640 move a3, s1 | a3 = s1;
| if (s6 != 0) {
0x0002b644 beqz s6, 0x2b654 |
0x0002b648 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b64c addiu t9, v0, -0x7c1c | t9 = v0 + -0x7c1c;
0x0002b650 b 0x2b65c |
| } else {
0x0002b654 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b658 addiu t9, v0, -0x7cb0 | t9 = v0 + -0x7cb0;
| }
0x0002b65c jalr t9 | t9 ();
0x0002b660 nop |
0x0002b664 move s7, v0 | s7 = v0;
0x0002b668 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0002b66c beqz v0, 0x2b6ac | goto label_40;
| }
0x0002b670 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002b674 b 0x2b8c4 | goto label_43;
| }
0x0002b678 addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b67c addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b680 addiu t9, s4, -0x7d70 | t9 = s4 + -0x7d70;
0x0002b684 move a3, fp | a3 = fp;
0x0002b688 bal 0x28290 | fcn_00028290 ();
0x0002b68c sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b690 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b694 bnez v0, 0x2b6ac | goto label_40;
| }
0x0002b698 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002b69c b 0x2b8c4 | goto label_43;
| }
0x0002b6a0 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b6a4 b 0x2b6b0 | goto label_44;
| label_41:
0x0002b6a8 move s6, zero | s6 = 0;
| label_40:
0x0002b6ac lw v0, 0x58(sp) | v0 = *(var_58h);
| label_44:
0x0002b6b0 addiu v0, v0, 1 | v0++;
0x0002b6b4 sw v0, 0x58(sp) | *(var_58h) = v0;
0x0002b6b8 lw v1, 0x58(sp) | v1 = *(var_58h);
0x0002b6bc addu v0, s1, v1 | v0 = s1 + v1;
0x0002b6c0 lbu fp, (v0) | fp = *(v0);
0x0002b6c4 sw v1, 0x68(sp) | *(var_68h) = v1;
0x0002b6c8 bnez fp, 0x2b554 |
| }
| label_38:
0x0002b6cc lw t9, 0x68(sp) | t9 = *(var_68h);
0x0002b6d0 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x0002b6d4 addiu a0, sp, 0x3c | a0 = sp + 0x3c;
0x0002b6d8 addiu s6, t9, -1 | s6 = t9 + -1;
0x0002b6dc addiu t9, s5, -0x795c | t9 = s5 + -0x795c;
0x0002b6e0 sw s6, 0x58(sp) | *(var_58h) = s6;
0x0002b6e4 bal 0x286a4 | fcn_000286a4 ();
0x0002b6e8 move s7, v0 | s7 = v0;
0x0002b6ec lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b6f0 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0002b6f4 sw zero, 0x54(sp) | *(var_54h) = 0;
0x0002b6f8 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x0002b6fc move s6, zero | s6 = 0;
0x0002b700 b 0x2b8ac | goto label_45;
| label_5:
0x0002b704 sll v0, s6, 2 | v0 = s6 << 2;
0x0002b708 lw t9, -0x7f40(gp) | t9 = *((gp - 8144));
0x0002b70c addu v0, v1, v0 | v0 = v1 + v0;
0x0002b710 lw a0, (v0) | a0 = *(v0);
0x0002b714 addiu a1, zero, 0x10 | a1 = 0x10;
0x0002b718 move a2, zero | a2 = 0;
0x0002b71c addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x0002b720 bal 0x17e64 | sym_glob ();
0x0002b724 addiu s7, zero, 1 | s7 = 1;
0x0002b728 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b72c bnez v0, 0x2b8a8 | goto label_46;
| }
0x0002b730 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (s2 == 0) {
0x0002b734 beqz s2, 0x2b804 | goto label_47;
| }
0x0002b738 lbu v0, (s2) | v0 = *(s2);
0x0002b73c lw v0, 0x34(sp) | v0 = *(var_34h);
| if (v0 != 0) {
0x0002b740 bnez v0, 0x2b804 | goto label_47;
| }
0x0002b744 addiu s7, sp, 0x54 | s7 = sp + 0x54;
0x0002b748 addiu fp, sp, 0x50 | fp = sp + 0x50;
0x0002b74c lw a3, (v0) | a3 = *(v0);
0x0002b750 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b754 move a1, s7 | a1 = s7;
0x0002b758 addiu t9, v0, -0x79c8 | t9 = v0 + -0x79c8;
0x0002b75c move a2, fp | a2 = fp;
0x0002b760 bal 0x28638 | fcn_00028638 ();
0x0002b764 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b768 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b76c addiu v1, zero, 1 | v1 = 1;
0x0002b770 b 0x2b7d0 |
| while (a0 == 0) {
0x0002b774 move a1, s7 | a1 = s7;
0x0002b778 move a2, fp | a2 = fp;
0x0002b77c addiu t9, s4, -0x7d70 | t9 = s4 + -0x7d70;
0x0002b780 addiu a3, zero, 0x20 | a3 = 0x20;
0x0002b784 bal 0x28290 | fcn_00028290 ();
0x0002b788 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b78c lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b790 lw v1, 0x74(sp) | v1 = *(var_74h);
| if (v0 != 0) {
0x0002b794 beqz v0, 0x2b7cc |
0x0002b798 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0002b79c sll a3, v1, 2 | a3 = v1 << 2;
0x0002b7a0 move a1, s7 | a1 = s7;
0x0002b7a4 addu a3, a0, a3 | a3 = a0 + a3;
0x0002b7a8 move a0, v0 | a0 = v0;
0x0002b7ac lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b7b0 lw a3, (a3) | a3 = *(a3);
0x0002b7b4 addiu t9, v0, -0x79c8 | t9 = v0 + -0x79c8;
0x0002b7b8 move a2, fp | a2 = fp;
0x0002b7bc bal 0x28638 | fcn_00028638 ();
0x0002b7c0 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b7c4 lw v1, 0x74(sp) | v1 = *(var_74h);
0x0002b7c8 sw v0, 0x4c(sp) | *(var_4ch) = v0;
| }
0x0002b7cc addiu v1, v1, 1 | v1++;
0x0002b7d0 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0002b7d4 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x0002b7d8 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (v0 == 0) {
0x0002b7dc beqz v0, 0x2b7e8 | goto label_48;
| }
0x0002b7e0 sw v1, 0x74(sp) | *(var_74h) = v1;
0x0002b7e4 bnel a0, zero, 0x2b774 |
| }
| label_48:
0x0002b7e8 lw t9, -0x7f3c(gp) | t9 = *((gp - 8143));
0x0002b7ec addiu a0, sp, 0x30 | a0 = sp + 0x30;
0x0002b7f0 bal 0x1810c | sym_globfree ();
0x0002b7f4 lw v1, 0x4c(sp) | v1 = *(var_4ch);
0x0002b7f8 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b7fc sltiu s7, v1, 1 | s7 = (v1 < 1) ? 1 : 0;
0x0002b800 b 0x2b8a8 | goto label_46;
| label_47:
0x0002b804 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
| if (a0 != 0) {
0x0002b808 beqz a0, 0x2b824 |
0x0002b80c jalr t9 | t9 ();
0x0002b810 nop |
0x0002b814 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b818 sw zero, 0x50(sp) | *(var_50h) = 0;
0x0002b81c sw zero, 0x54(sp) | *(var_54h) = 0;
0x0002b820 sw zero, 0x4c(sp) | *(var_4ch) = 0;
| }
0x0002b824 move fp, zero | fp = 0;
0x0002b828 lw s7, -0x7fac(gp) | s7 = *((gp - 8171));
0x0002b82c b 0x2b884 | goto label_49;
| label_4:
0x0002b830 sll v0, fp, 2 | v0 = fp << 2;
0x0002b834 move t9, s7 | t9 = s7;
0x0002b838 addu v0, v1, v0 | v0 = v1 + v0;
0x0002b83c lw a0, (v0) | a0 = *(v0);
0x0002b840 bal 0x3c240 | sym_strdup ();
0x0002b844 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b848 bnez v0, 0x2b864 |
| while (v0 != 0) {
0x0002b84c lw t9, -0x7f3c(gp) | t9 = *((gp - 8143));
0x0002b850 addiu a0, sp, 0x30 | a0 = sp + 0x30;
0x0002b854 addiu s7, zero, 1 | s7 = 1;
0x0002b858 bal 0x1810c | sym_globfree ();
0x0002b85c lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b860 b 0x2b8a8 | goto label_46;
0x0002b864 move a1, v0 | a1 = v0;
0x0002b868 lw v0, -0x7fb4(gp) | v0 = *((gp - 8173));
0x0002b86c addiu t9, v0, -0x795c | t9 = v0 + -0x795c;
0x0002b870 move a0, s0 | a0 = s0;
0x0002b874 bal 0x286a4 | fcn_000286a4 ();
0x0002b878 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b87c bnez v0, 0x2b84c |
| }
0x0002b880 addiu fp, fp, 1 | fp++;
| label_49:
0x0002b884 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0002b888 sltu v0, fp, v0 | v0 = (fp < v0) ? 1 : 0;
0x0002b88c lw v1, 0x34(sp) | v1 = *(var_34h);
| if (v0 != 0) {
0x0002b890 bnez v0, 0x2b830 | goto label_4;
| }
0x0002b894 lw t9, -0x7f3c(gp) | t9 = *((gp - 8143));
0x0002b898 addiu a0, sp, 0x30 | a0 = sp + 0x30;
0x0002b89c move s7, zero | s7 = 0;
0x0002b8a0 bal 0x1810c | sym_globfree ();
0x0002b8a4 lw gp, 0x28(sp) | gp = *(var_28h);
| label_46:
0x0002b8a8 addiu s6, s6, 1 | s6++;
| label_45:
0x0002b8ac lw v0, 0x3c(sp) | v0 = *(var_3ch);
| if (s7 != 0) {
0x0002b8b0 bnez s7, 0x2b8c0 | goto label_50;
| }
0x0002b8b4 sltu v0, s6, v0 | v0 = (s6 < v0) ? 1 : 0;
0x0002b8b8 lw v1, 0x40(sp) | v1 = *(var_40h);
| if (v0 != 0) {
0x0002b8bc bnez v0, 0x2b704 | goto label_5;
| }
| label_50:
0x0002b8c0 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
| label_43:
0x0002b8c4 addiu a0, sp, 0x3c | a0 = sp + 0x3c;
0x0002b8c8 bal 0x2afc8 | sym_wordfree ();
0x0002b8cc lw gp, 0x28(sp) | gp = *(var_28h);
| if (s7 == 0) {
0x0002b8d0 beqz s7, 0x2b97c | goto label_36;
| }
0x0002b8d4 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x0002b8d8 b 0x2b9c4 | goto label_35;
| label_20:
0x0002b8dc lw fp, -0x7f90(gp) | fp = *((gp - 8164));
0x0002b8e0 move a1, s6 | a1 = s6;
0x0002b8e4 move t9, fp | t9 = fp;
0x0002b8e8 addiu a0, a0, -0x716c | a0 += -0x716c;
0x0002b8ec bal 0x3b3e0 | sym_index ();
0x0002b8f0 lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b8f4 lw s7, 0x4c(sp) | s7 = *(var_4ch);
| if (v0 == 0) {
0x0002b8f8 bnez v0, 0x2b944 |
0x0002b8fc lw a0, -0x7fa8(gp) | a0 = *((gp - 8170));
0x0002b900 move a1, s6 | a1 = s6;
0x0002b904 move t9, fp | t9 = fp;
0x0002b908 addiu a0, a0, -0x7168 | a0 += -0x7168;
0x0002b90c bal 0x3b3e0 | sym_index ();
0x0002b910 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b914 bnez v0, 0x2b9bc | goto label_51;
| }
0x0002b918 move a0, s7 | a0 = s7;
0x0002b91c addiu a1, sp, 0x54 | a1 = sp + 0x54;
0x0002b920 addiu a2, sp, 0x50 | a2 = sp + 0x50;
0x0002b924 addiu t9, s4, -0x7d70 | t9 = s4 + -0x7d70;
0x0002b928 move a3, s6 | a3 = s6;
0x0002b92c bal 0x28290 | fcn_00028290 ();
0x0002b930 sw v0, 0x4c(sp) | *(var_4ch) = v0;
0x0002b934 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x0002b938 bnez v0, 0x2b97c | goto label_36;
| }
0x0002b93c addiu s7, zero, 1 | s7 = 1;
0x0002b940 b 0x2b9c0 | goto label_9;
| }
0x0002b944 move a1, s7 | a1 = s7;
0x0002b948 bnez s7, 0x2b95c |
| while (v0 == 0) {
0x0002b94c sw zero, 0x50(sp) | *(var_50h) = 0;
0x0002b950 sw zero, 0x54(sp) | *(var_54h) = 0;
0x0002b954 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x0002b958 b 0x2b97c | goto label_36;
0x0002b95c addiu t9, s5, -0x795c | t9 = s5 + -0x795c;
0x0002b960 move a0, s0 | a0 = s0;
0x0002b964 bal 0x286a4 | fcn_000286a4 ();
0x0002b968 move s7, v0 | s7 = v0;
0x0002b96c lw gp, 0x28(sp) | gp = *(var_28h);
0x0002b970 beqz v0, 0x2b94c |
| }
0x0002b974 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
0x0002b978 b 0x2b9c4 | goto label_35;
| label_36:
0x0002b97c lw v0, 0x58(sp) | v0 = *(var_58h);
| label_7:
0x0002b980 addiu v0, v0, 1 | v0++;
0x0002b984 sw v0, 0x58(sp) | *(var_58h) = v0;
| label_17:
0x0002b988 lw v0, 0x58(sp) | v0 = *(var_58h);
0x0002b98c addu v1, s1, v0 | v1 = s1 + v0;
0x0002b990 lbu s6, (v1) | s6 = *(v1);
0x0002b994 addiu v1, zero, 0x3f | v1 = 0x3f;
| if (s6 != 0) {
0x0002b998 bnez s6, 0x2b1f0 | goto label_6;
| }
0x0002b99c lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x0002b9a0 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
| if (a1 == 0) {
0x0002b9a4 beqz a1, 0x2ba0c | goto label_52;
| }
0x0002b9a8 addiu t9, t9, -0x795c | t9 += -0x795c;
0x0002b9ac move a0, s0 | a0 = s0;
0x0002b9b0 bal 0x286a4 | fcn_000286a4 ();
0x0002b9b4 move s7, v0 | s7 = v0;
0x0002b9b8 b 0x2ba38 | goto label_53;
| label_51:
0x0002b9bc addiu s7, zero, 2 | s7 = 2;
| do {
| label_9:
0x0002b9c0 lw t9, -0x7668(gp) | t9 = *((gp - 7578));
| label_35:
0x0002b9c4 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0002b9c8 jalr t9 | t9 ();
0x0002b9cc addiu v0, zero, 1 | v0 = 1;
0x0002b9d0 lw gp, 0x28(sp) | gp = *(var_28h);
| if (s7 == v0) {
0x0002b9d4 beq s7, v0, 0x2ba38 | goto label_53;
| }
0x0002b9d8 lw v1, 0x60(sp) | v1 = *(var_60h);
0x0002b9dc lw t9, 0x70(sp) | t9 = *(var_70h);
| if (v1 == 0) {
0x0002b9e0 bnez v1, 0x2b9f4 |
0x0002b9e4 lw t9, -0x7f48(gp) | t9 = *((gp - 8146));
0x0002b9e8 move a0, s0 | a0 = s0;
0x0002b9ec bal 0x2afc8 | sym_wordfree ();
0x0002b9f0 lw t9, 0x70(sp) | t9 = *(var_70h);
| }
0x0002b9f4 lw v1, 0x64(sp) | v1 = *(var_64h);
0x0002b9f8 sw t9, (s0) | *(s0) = t9;
0x0002b9fc lw t9, 0x6c(sp) | t9 = *(var_6ch);
0x0002ba00 sw v1, 4(s0) | *((s0 + 1)) = v1;
0x0002ba04 sw t9, 8(s0) | *((s0 + 2)) = t9;
0x0002ba08 b 0x2ba38 | goto label_53;
| label_52:
0x0002ba0c move s7, zero | s7 = 0;
0x0002ba10 b 0x2ba38 | goto label_53;
| label_28:
0x0002ba14 addiu s7, zero, 4 | s7 = 4;
0x0002ba18 b 0x2b9c0 |
| } while (1);
| label_34:
0x0002ba1c lw v0, 0x54(sp) | v0 = *(var_54h);
| label_31:
0x0002ba20 lw v0, 0x58(sp) | v0 = *(var_58h);
| if (v0 != 0) {
0x0002ba24 bnez v0, 0x2b980 | goto label_7;
| }
0x0002ba28 move a0, s0 | a0 = s0;
0x0002ba2c b 0x2b4e0 | goto label_8;
| label_11:
0x0002ba30 addiu s7, zero, 1 | s7 = 1;
0x0002ba34 b 0x2b9c0 | goto label_9;
| label_53:
0x0002ba38 lw ra, 0x9c(sp) | ra = *(var_9ch);
| label_37:
0x0002ba3c move v0, s7 | v0 = s7;
0x0002ba40 lw fp, 0x98(sp) | fp = *(var_98h);
0x0002ba44 lw s7, 0x94(sp) | s7 = *(var_94h);
0x0002ba48 lw s6, 0x90(sp) | s6 = *(var_90h);
0x0002ba4c lw s5, 0x8c(sp) | s5 = *(var_8ch);
0x0002ba50 lw s4, 0x88(sp) | s4 = *(var_88h);
0x0002ba54 lw s3, 0x84(sp) | s3 = *(var_84h);
0x0002ba58 lw s2, 0x80(sp) | s2 = *(var_80h);
0x0002ba5c lw s1, 0x7c(sp) | s1 = *(var_7ch);
0x0002ba60 lw s0, 0x78(sp) | s0 = *(var_78h);
0x0002ba64 addiu sp, sp, 0xa0 |
0x0002ba68 jr ra | return v0;
| }
[*] Function strcpy used 26 times libuClibc-0.9.33.2.so