[*] Binary protection state of curl
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function strcpy tear down of curl
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/curl @ 0xb358 */
| #include <stdint.h>
|
; (fcn) fcn.0000b358 () | void fcn_0000b358 () {
0x0000b358 lui gp, 3 |
0x0000b35c addiu gp, gp, 0x6ce8 |
0x0000b360 addu gp, gp, t9 | gp += t9;
0x0000b364 addiu sp, sp, -0x60 |
0x0000b368 lw t9, -0x7bcc(gp) | t9 = sym.imp.strchr;
0x0000b36c sw s2, 0x40(sp) | *(var_40h) = s2;
0x0000b370 lw s2, -0x7cb0(gp) | s2 = *((gp - 7980));
0x0000b374 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0000b378 move s1, a1 | s1 = a1;
0x0000b37c lw v0, (s2) | v0 = *(s2);
0x0000b380 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b384 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0000b388 sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0000b38c sw s4, 0x48(sp) | *(var_48h) = s4;
0x0000b390 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0000b394 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0000b398 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0000b39c sw s3, 0x44(sp) | *(var_44h) = s3;
0x0000b3a0 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0000b3a4 move s6, a0 | s6 = a0;
0x0000b3a8 addiu a1, zero, 0x3d | a1 = 0x3d;
0x0000b3ac move a0, s1 | a0 = s1;
0x0000b3b0 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0000b3b4 move s4, a2 | s4 = a2;
0x0000b3b8 move s5, a3 | s5 = a3;
0x0000b3bc jalr t9 | t9 ();
0x0000b3c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b3c4 sw zero, 0x2c(sp) | *(var_2ch) = 0;
0x0000b3c8 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0000b3cc beqz v0, 0xb4d0 |
| while (v0 != 0) {
0x0000b3d0 lb a0, (v0) | a0 = *(v0);
0x0000b3d4 addiu v1, zero, 0x40 | v1 = 0x40;
0x0000b3d8 subu s3, v0, s1 | __asm ("subu s3, v0, s1");
0x0000b3dc addiu s0, v0, 1 | s0 = v0 + 1;
| if (a0 == v1) {
0x0000b3e0 bne a0, v1, 0xb45c |
0x0000b3e4 lw a0, -0x7fd4(gp) | a0 = *(gp);
0x0000b3e8 lw t9, -0x7d80(gp) | t9 = sym.imp.strcmp;
0x0000b3ec move a1, s0 | a1 = s0;
0x0000b3f0 addiu a0, a0, -0x34c | a0 += -0x34c;
0x0000b3f4 jalr t9 | t9 ();
0x0000b3f8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000b3fc bnez v0, 0xb674 | goto label_8;
| }
0x0000b400 lw s6, -0x7d10(gp) | s6 = *((gp - 8004));
0x0000b404 lw t9, -0x7f64(gp) | t9 = sym.file2memory;
0x0000b408 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0000b40c lw s7, (s6) | s7 = *(s6);
0x0000b410 addiu a0, sp, 0x2c | a0 = sp + 0x2c;
0x0000b414 move a2, s7 | a2 = s7;
0x0000b418 bal 0x171b0 | sym_file2memory ();
0x0000b41c move s0, v0 | s0 = v0;
0x0000b420 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s7 != 0) {
0x0000b424 beqz s7, 0xb440 |
| label_5:
0x0000b428 lw v0, (s6) | v0 = *(s6);
0x0000b42c lw t9, -0x7c6c(gp) | t9 = sym.imp.fclose;
| if (v0 == s7) {
0x0000b430 beq v0, s7, 0xb440 | goto label_7;
| }
0x0000b434 move a0, s7 | a0 = s7;
0x0000b438 jalr t9 | t9 ();
0x0000b43c lw gp, 0x18(sp) | gp = *(var_18h);
| }
| if (s0 != 0) {
| label_7:
0x0000b440 bnez s0, 0xb490 | goto label_4;
| }
0x0000b444 nop |
0x0000b448 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x0000b44c lw a2, 0x30(sp) | a2 = *(var_30h);
| if (s0 == 0) {
0x0000b450 beqz s0, 0xb464 | goto label_9;
| }
0x0000b454 lw t9, -0x7bbc(gp) | t9 = sym.imp.curl_easy_escape;
0x0000b458 b 0xb528 | goto label_10;
| }
0x0000b45c lw t9, -0x7d70(gp) | t9 = sym.imp.strdup;
| if (s0 != 0) {
0x0000b460 bnez s0, 0xb4f4 | goto label_11;
| }
| label_9:
0x0000b464 lw a0, -0x7fd4(gp) | a0 = *(gp);
0x0000b468 lw t9, -0x7d70(gp) | t9 = sym.imp.strdup;
0x0000b46c addiu a0, a0, 0x6c00 | a0 += 0x6c00;
0x0000b470 jalr t9 | t9 ();
0x0000b474 move s7, v0 | s7 = v0;
0x0000b478 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b47c beqz v0, 0xb66c | goto label_12;
| }
0x0000b480 move v0, zero | v0 = 0;
| label_0:
0x0000b484 sw s7, (s4) | *(s4) = s7;
0x0000b488 move s0, zero | s0 = 0;
0x0000b48c sw v0, (s5) | *(s5) = v0;
| label_4:
0x0000b490 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0000b494 lw v1, (s2) | v1 = *(s2);
0x0000b498 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0000b49c bne a0, v1, 0xb71c | goto label_13;
| }
0x0000b4a0 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0000b4a4 lw fp, 0x58(sp) | fp = *(var_58h);
0x0000b4a8 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0000b4ac lw s6, 0x50(sp) | s6 = *(var_50h);
0x0000b4b0 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0000b4b4 lw s4, 0x48(sp) | s4 = *(var_48h);
0x0000b4b8 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0000b4bc lw s2, 0x40(sp) | s2 = *(var_40h);
0x0000b4c0 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0000b4c4 lw s0, 0x38(sp) | s0 = *(var_38h);
0x0000b4c8 addiu sp, sp, 0x60 |
0x0000b4cc jr ra | return v0;
0x0000b4d0 lw t9, -0x7bcc(gp) | t9 = sym.imp.strchr;
0x0000b4d4 addiu a1, zero, 0x40 | a1 = 0x40;
0x0000b4d8 move a0, s1 | a0 = s1;
0x0000b4dc jalr t9 | t9 ();
0x0000b4e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b4e4 bnez v0, 0xb3d0 |
| }
0x0000b4e8 move s0, s1 | s0 = s1;
0x0000b4ec move s3, zero | s3 = 0;
0x0000b4f0 lw t9, -0x7d70(gp) | t9 = sym.imp.strdup;
| label_11:
0x0000b4f4 move a0, s0 | a0 = s0;
0x0000b4f8 jalr t9 | t9 ();
0x0000b4fc move s0, v0 | s0 = v0;
0x0000b500 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b504 sw v0, 0x2c(sp) | *(var_2ch) = v0;
| if (v0 == 0) {
0x0000b508 beqz v0, 0xb66c | goto label_12;
| }
0x0000b50c lw t9, -0x7c88(gp) | t9 = sym.imp.strlen;
0x0000b510 move a0, v0 | a0 = v0;
0x0000b514 jalr t9 | t9 ();
0x0000b518 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b51c move a2, v0 | a2 = v0;
0x0000b520 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0000b524 lw t9, -0x7bbc(gp) | t9 = sym.imp.curl_easy_escape;
| label_10:
0x0000b528 move a1, s0 | a1 = s0;
0x0000b52c move a0, zero | a0 = 0;
0x0000b530 jalr t9 | t9 ();
0x0000b534 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b538 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0000b53c lw t9, -0x7c38(gp) | t9 = sym.imp.free;
0x0000b540 move s0, v0 | s0 = v0;
0x0000b544 jalr t9 | t9 ();
0x0000b548 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b54c sw zero, 0x2c(sp) | *(var_2ch) = 0;
| if (s0 == 0) {
0x0000b550 beqz s0, 0xb66c | goto label_12;
| }
0x0000b554 lw t9, -0x7c88(gp) | t9 = sym.imp.strlen;
0x0000b558 move a0, s0 | a0 = s0;
0x0000b55c jalr t9 | t9 ();
0x0000b560 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b564 beqz v0, 0xb6b8 | goto label_14;
| }
0x0000b568 move s6, zero | s6 = 0;
0x0000b56c move v1, zero | v1 = 0;
0x0000b570 addiu t1, zero, 0x25 | t1 = 0x25;
0x0000b574 addiu t0, zero, 0x32 | t0 = 0x32;
0x0000b578 addiu t2, zero, 0x30 | t2 = 0x30;
0x0000b57c addiu t3, zero, 0x2b | t3 = 0x2b;
| do {
0x0000b580 addu a2, s0, v1 | a2 = s0 + v1;
0x0000b584 lb a1, (a2) | a1 = *(a2);
0x0000b588 addiu a0, v1, 1 | a0 = v1 + 1;
| if (a1 == t1) {
0x0000b58c beq a1, t1, 0xb628 | goto label_15;
| }
| label_1:
0x0000b590 addu v1, s0, s6 | v1 = s0 + s6;
| if (v1 != s6) {
0x0000b594 beq v1, s6, 0xb59c |
0x0000b598 sb a1, (v1) | *(v1) = a1;
| }
0x0000b59c move v1, a0 | v1 = a0;
| label_2:
0x0000b5a0 sltu a0, v1, v0 | a0 = (v1 < v0) ? 1 : 0;
0x0000b5a4 addiu s6, s6, 1 | s6++;
0x0000b5a8 bnez a0, 0xb580 |
| } while (a0 != 0);
0x0000b5ac addu fp, s6, s3 | fp = s6 + s3;
0x0000b5b0 addu v0, s0, s6 | v0 = s0 + s6;
| label_6:
0x0000b5b4 addiu a1, fp, 2 | a1 = fp + 2;
0x0000b5b8 lw t9, -0x7ce0(gp) | t9 = sym.imp.malloc;
0x0000b5bc move a0, a1 | a0 = a1;
0x0000b5c0 sw a1, 0x24(sp) | *(var_24h_2) = a1;
0x0000b5c4 sb zero, (v0) | *(v0) = 0;
0x0000b5c8 jalr t9 | t9 ();
0x0000b5cc move s7, v0 | s7 = v0;
0x0000b5d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b5d4 lw a1, 0x24(sp) | a1 = *(var_24h_2);
| if (v0 == 0) {
0x0000b5d8 beqz v0, 0xb6c8 | goto label_16;
| }
0x0000b5dc lw t9, -0x7ca8(gp) | t9 = sym.imp.strcpy
| if (s3 == 0) {
0x0000b5e0 beqz s3, 0xb654 | goto label_17;
| }
0x0000b5e4 lw a2, -0x7fd4(gp) | a2 = *(gp);
0x0000b5e8 lw t9, -0x7cec(gp) | t9 = sym.imp.curl_msnprintf;
0x0000b5ec sw s0, 0x14(sp) | *(var_14h) = s0;
0x0000b5f0 sw s1, 0x10(sp) | *(var_10h_2) = s1;
0x0000b5f4 move a3, s3 | a3 = s3;
| /* str._.s_s */
0x0000b5f8 addiu a2, a2, 0x5e0 | a2 += aav.0x000005e0;
0x0000b5fc move a0, v0 | a0 = v0;
0x0000b600 jalr t9 | t9 ();
0x0000b604 addiu fp, fp, 1 | fp++;
0x0000b608 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b60c sw fp, 0x30(sp) | *(var_30h) = fp;
| label_3:
0x0000b610 lw t9, -0x7c3c(gp) | t9 = sym.imp.curl_free;
0x0000b614 move a0, s0 | a0 = s0;
0x0000b618 jalr t9 | t9 ();
0x0000b61c lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b620 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0000b624 b 0xb484 | goto label_0;
| label_15:
0x0000b628 addu a3, s0, a0 | a3 = s0 + a0;
0x0000b62c lb a3, (a3) | a3 = *(a3);
| if (a3 != t0) {
0x0000b630 bne a3, t0, 0xb590 | goto label_1;
| }
0x0000b634 nop |
0x0000b638 lb a2, 2(a2) | a2 = *((a2 + 2));
| if (a2 != t2) {
0x0000b63c bne a2, t2, 0xb590 | goto label_1;
| }
0x0000b640 nop |
0x0000b644 addu a0, s0, s6 | a0 = s0 + s6;
0x0000b648 addiu v1, v1, 3 | v1 += 3;
0x0000b64c sb t3, (a0) | *(a0) = t3;
0x0000b650 b 0xb5a0 | goto label_2;
| label_17:
0x0000b654 move a1, s0 | a1 = s0;
0x0000b658 move a0, v0 | a0 = v0;
0x0000b65c jalr t9 | t9 ();
0x0000b660 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b664 sw s6, 0x30(sp) | *(var_30h) = s6;
0x0000b668 b 0xb610 | goto label_3;
| label_12:
0x0000b66c addiu s0, zero, 0xe | s0 = 0xe;
0x0000b670 b 0xb490 | goto label_4;
| label_8:
0x0000b674 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0000b678 lw t9, -0x7d94(gp) | t9 = sym.imp.fopen64;
| /* esilref: 'rb' */
0x0000b67c addiu a1, a1, 0x59c | a1 += 0x59c;
0x0000b680 move a0, s0 | a0 = s0;
0x0000b684 jalr t9 | t9 ();
0x0000b688 move s7, v0 | s7 = v0;
0x0000b68c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000b690 beqz v0, 0xb6e0 |
0x0000b694 lw t9, -0x7f64(gp) | t9 = sym.file2memory;
0x0000b698 move a2, v0 | a2 = v0;
0x0000b69c addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0000b6a0 addiu a0, sp, 0x2c | a0 = sp + 0x2c;
0x0000b6a4 bal 0x171b0 | sym_file2memory ();
0x0000b6a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b6ac move s0, v0 | s0 = v0;
0x0000b6b0 lw s6, -0x7d10(gp) | s6 = *((gp - 8004));
0x0000b6b4 b 0xb428 | goto label_5;
| label_14:
0x0000b6b8 move v0, s0 | v0 = s0;
0x0000b6bc move fp, s3 | fp = s3;
0x0000b6c0 move s6, zero | s6 = 0;
0x0000b6c4 b 0xb5b4 | goto label_6;
| label_16:
0x0000b6c8 lw t9, -0x7c3c(gp) | t9 = sym.imp.curl_free;
0x0000b6cc move a0, s0 | a0 = s0;
0x0000b6d0 jalr t9 | t9 ();
0x0000b6d4 addiu s0, zero, 0xe | s0 = 0xe;
0x0000b6d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b6dc b 0xb490 | goto label_4;
| }
0x0000b6e0 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0000b6e4 lw t9, -0x7fa8(gp) | t9 = sym.warnf;
0x0000b6e8 move a2, s1 | a2 = s1;
| /* str.Couldnt_read_data_from_file___s___this_makes_an_empty_POST._n */
0x0000b6ec addiu a1, a1, 0x5a0 | a1 += 0x5a0;
0x0000b6f0 move a0, s6 | a0 = s6;
0x0000b6f4 bal 0x11260 | sym_warnf ();
0x0000b6f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b6fc move a2, zero | a2 = 0;
0x0000b700 addiu a1, sp, 0x30 | a1 = sp + 0x30;
0x0000b704 lw t9, -0x7f64(gp) | t9 = sym.file2memory;
0x0000b708 addiu a0, sp, 0x2c | a0 = sp + 0x2c;
0x0000b70c bal 0x171b0 | sym_file2memory ();
0x0000b710 move s0, v0 | s0 = v0;
0x0000b714 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b718 b 0xb440 | goto label_7;
| label_13:
0x0000b71c lw t9, -0x7ce8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0000b720 jalr t9 | t9 ();
0x0000b724 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/curl @ 0x8790 */
| #include <stdint.h>
|
; (fcn) sym.create_dir_hierarchy () | void create_dir_hierarchy () {
0x00008790 lui gp, 4 |
0x00008794 addiu gp, gp, -0x6750 |
0x00008798 addu gp, gp, t9 | gp += t9;
0x0000879c addiu sp, sp, -0x48 |
0x000087a0 lw t9, -0x7c88(gp) | t9 = sym.imp.strlen;
0x000087a4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000087a8 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000087ac sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x000087b0 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000087b4 sw a1, 0x4c(sp) | *(arg_4ch) = a1;
0x000087b8 sw fp, 0x40(sp) | *(var_40h) = fp;
0x000087bc sw s6, 0x38(sp) | *(var_38h) = s6;
0x000087c0 sw s5, 0x34(sp) | *(var_34h) = s5;
0x000087c4 sw s4, 0x30(sp) | *(var_30h) = s4;
0x000087c8 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000087cc sw s2, 0x28(sp) | *(var_28h) = s2;
0x000087d0 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000087d4 move s0, a0 | s0 = a0;
0x000087d8 jalr t9 | t9 ();
0x000087dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000087e0 move a0, s0 | a0 = s0;
0x000087e4 lw t9, -0x7d70(gp) | t9 = sym.imp.strdup;
0x000087e8 move s7, v0 | s7 = v0;
0x000087ec jalr t9 | t9 ();
0x000087f0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000087f4 beqz v0, 0x89ec | goto label_5;
| }
0x000087f8 lw t9, -0x7ce0(gp) | t9 = sym.imp.malloc;
0x000087fc addiu a0, s7, 1 | a0 = s7 + 1;
0x00008800 move s4, v0 | s4 = v0;
0x00008804 jalr t9 | t9 ();
0x00008808 move s2, v0 | s2 = v0;
0x0000880c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008810 beqz v0, 0x8a24 | goto label_6;
| }
0x00008814 lw s3, -0x7fd4(gp) | s3 = *(gp);
0x00008818 lw t9, -0x7d0c(gp) | t9 = sym.imp.strtok;
0x0000881c addiu a1, s3, 0x12c | a1 = s3 + aav.0x0000012c;
0x00008820 sb zero, (v0) | *(v0) = 0;
0x00008824 move a0, s4 | a0 = s4;
0x00008828 jalr t9 | t9 ();
0x0000882c lw gp, 0x18(sp) | gp = *(var_18h);
0x00008830 move s1, v0 | s1 = v0;
0x00008834 addiu s3, s3, 0x12c | s3 += aav.0x0000012c;
0x00008838 lw s6, -0x7fd4(gp) | s6 = *(gp);
0x0000883c addiu s5, zero, -1 | s5 = -1;
| /* esilref: '&s&s' */
0x00008840 addiu s6, s6, 0x130 | s6 += 0x130;
0x00008844 addiu fp, zero, 0xd | fp = 0xd;
| if (s1 == 0) {
0x00008848 beqz s1, 0x88c4 | goto label_7;
| }
0x0000884c lw t9, -0x7d0c(gp) | t9 = sym.imp.strtok;
| do {
0x00008850 move a1, s3 | a1 = s3;
0x00008854 move a0, zero | a0 = 0;
0x00008858 jalr t9 | t9 ();
0x0000885c move s0, v0 | s0 = v0;
0x00008860 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008864 beqz v0, 0x88c4 | goto label_7;
| }
0x00008868 lw t9, -0x7c88(gp) | t9 = sym.imp.strlen;
0x0000886c move a0, s2 | a0 = s2;
0x00008870 jalr t9 | t9 ();
0x00008874 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00008878 bnez v0, 0x8980 | goto label_8;
| }
0x0000887c lw t9, -0x7cec(gp) | t9 = sym.imp.curl_msnprintf;
| if (s4 == s1) {
0x00008880 beq s4, s1, 0x89a4 | goto label_9;
| }
0x00008884 sw s1, 0x10(sp) | *(var_10h) = s1;
0x00008888 move a3, s3 | a3 = s3;
0x0000888c move a2, s6 | a2 = s6;
0x00008890 move a1, s7 | a1 = s7;
0x00008894 move a0, s2 | a0 = s2;
0x00008898 jalr t9 | t9 ();
0x0000889c lw gp, 0x18(sp) | gp = *(var_18h);
| label_3:
0x000088a0 lw t9, -0x7b70(gp) | t9 = sym.imp.mkdir;
0x000088a4 addiu a1, zero, 0x1e8 | a1 = 0x1e8;
0x000088a8 move a0, s2 | a0 = s2;
0x000088ac jalr t9 | t9 ();
0x000088b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s5) {
0x000088b4 beq v0, s5, 0x8918 | goto label_10;
| }
| label_0:
0x000088b8 move s1, s0 | s1 = s0;
| label_1:
0x000088bc lw t9, -0x7d0c(gp) | t9 = sym.imp.strtok;
0x000088c0 bnez s1, 0x8850 |
| } while (s1 != 0);
| label_7:
0x000088c4 move s0, zero | s0 = 0;
| label_2:
0x000088c8 lw t9, -0x7c38(gp) | t9 = sym.imp.free;
0x000088cc move a0, s2 | a0 = s2;
0x000088d0 jalr t9 | t9 ();
0x000088d4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000088d8 lw t9, -0x7c38(gp) | t9 = sym.imp.free;
0x000088dc move a0, s4 | a0 = s4;
0x000088e0 jalr t9 | t9 ();
| label_4:
0x000088e4 lw ra, 0x44(sp) | ra = *(var_44h);
0x000088e8 move v0, s0 | v0 = s0;
0x000088ec lw fp, 0x40(sp) | fp = *(var_40h);
0x000088f0 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x000088f4 lw s6, 0x38(sp) | s6 = *(var_38h);
0x000088f8 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000088fc lw s4, 0x30(sp) | s4 = *(var_30h);
0x00008900 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00008904 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00008908 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0000890c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00008910 addiu sp, sp, 0x48 |
0x00008914 jr ra | return v0;
| label_10:
0x00008918 lw t9, -0x7b6c(gp) | t9 = sym.imp.__errno_location;
0x0000891c jalr t9 | t9 ();
0x00008920 nop |
0x00008924 lw v0, (v0) | v0 = *(v0);
0x00008928 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == fp) {
0x0000892c beq v0, fp, 0x88b8 | goto label_0;
| }
0x00008930 addiu v1, zero, 0x11 | v1 = 0x11;
0x00008934 move s1, s0 | s1 = s0;
| if (v0 == v1) {
0x00008938 beq v0, v1, 0x88bc | goto label_1;
| }
0x0000893c addiu v1, zero, 0x1e | v1 = 0x1e;
0x00008940 slti v1, v0, 0x1f | v1 = (v0 < 0x1f) ? 1 : 0;
| if (v0 != v1) {
0x00008944 beq v0, v1, 0x8a38 |
0x00008948 addiu v1, zero, 0x4e | v1 = 0x4e;
| if (v1 == 0) {
0x0000894c bnez v1, 0x89bc |
0x00008950 addiu v1, zero, 0x46d | v1 = 0x46d;
| if (v0 == v1) {
0x00008954 beq v0, v1, 0x8aa4 | goto label_11;
| }
0x00008958 lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
| if (v0 != v1) {
0x0000895c bne v0, v1, 0x8a80 | goto label_12;
| }
0x00008960 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008964 lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x00008968 move a2, s2 | a2 = s2;
| /* str.Cannot_create_directory__s_because_you_exceeded_your_quota._n */
0x0000896c addiu a1, a1, 0x1f8 | a1 += segment.DYNAMIC;
0x00008970 jalr t9 | t9 ();
0x00008974 addiu s0, zero, 0x17 | s0 = 0x17;
0x00008978 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000897c b 0x88c8 | goto label_2;
| label_8:
0x00008980 lw t9, -0x7cec(gp) | t9 = sym.imp.curl_msnprintf;
0x00008984 sw s1, 0x10(sp) | *(var_10h) = s1;
0x00008988 move a3, s3 | a3 = s3;
0x0000898c move a2, s6 | a2 = s6;
0x00008990 subu a1, s7, v0 | __asm ("subu a1, s7, v0");
0x00008994 addu a0, s2, v0 | a0 = s2 + v0;
0x00008998 jalr t9 | t9 ();
0x0000899c lw gp, 0x18(sp) | gp = *(var_18h);
0x000089a0 b 0x88a0 | goto label_3;
| label_9:
0x000089a4 lw t9, -0x7ca8(gp) | t9 = sym.imp.strcpy
0x000089a8 move a1, s4 | a1 = s4;
0x000089ac move a0, s2 | a0 = s2;
0x000089b0 jalr t9 | t9 ();
0x000089b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000089b8 b 0x88a0 | goto label_3;
| }
0x000089bc addiu v1, zero, 0x1c | v1 = 0x1c;
| if (v0 == fp) {
0x000089c0 beq v0, fp, 0x8a5c | goto label_13;
| }
0x000089c4 lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
| if (v0 != v1) {
0x000089c8 bne v0, v1, 0x8a80 | goto label_12;
| }
0x000089cc lw a1, -0x7fd4(gp) | a1 = *(gp);
0x000089d0 lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x000089d4 move a2, s2 | a2 = s2;
| /* str.No_space_left_on_the_file_system_that_will_contain_the_directory__s._n */
0x000089d8 addiu a1, a1, 0x1b0 | a1 += 0x1b0;
0x000089dc jalr t9 | t9 ();
0x000089e0 addiu s0, zero, 0x17 | s0 = 0x17;
0x000089e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000089e8 b 0x88c8 | goto label_2;
| label_5:
0x000089ec lw ra, 0x44(sp) | ra = *(var_44h);
0x000089f0 addiu s0, zero, 0x1b | s0 = 0x1b;
0x000089f4 move v0, s0 | v0 = s0;
0x000089f8 lw fp, 0x40(sp) | fp = *(var_40h);
0x000089fc lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00008a00 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00008a04 lw s5, 0x34(sp) | s5 = *(var_34h);
0x00008a08 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00008a0c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00008a10 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00008a14 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00008a18 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00008a1c addiu sp, sp, 0x48 |
0x00008a20 jr ra | return v0;
| label_6:
0x00008a24 lw t9, -0x7c38(gp) | t9 = sym.imp.free;
0x00008a28 move a0, s4 | a0 = s4;
0x00008a2c jalr t9 | t9 ();
0x00008a30 addiu s0, zero, 0x1b | s0 = 0x1b;
0x00008a34 b 0x88e4 | goto label_4;
| }
0x00008a38 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008a3c lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
0x00008a40 lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x00008a44 move a2, s2 | a2 = s2;
| /* str._s_resides_on_a_read_only_file_system._n */
0x00008a48 addiu a1, a1, 0x188 | a1 += 0x188;
0x00008a4c jalr t9 | t9 ();
0x00008a50 addiu s0, zero, 0x17 | s0 = 0x17;
0x00008a54 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008a58 b 0x88c8 | goto label_2;
| label_13:
0x00008a5c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008a60 lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
0x00008a64 lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x00008a68 move a2, s2 | a2 = s2;
| /* str.You_dont_have_permission_to_create__s._n */
0x00008a6c addiu a1, a1, 0x138 | a1 += aav.0x00000138;
0x00008a70 jalr t9 | t9 ();
0x00008a74 addiu s0, zero, 0x17 | s0 = 0x17;
0x00008a78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008a7c b 0x88c8 | goto label_2;
| label_12:
0x00008a80 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008a84 lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
0x00008a88 lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x00008a8c move a2, s2 | a2 = s2;
| /* str.Error_creating_directory__s._n */
0x00008a90 addiu a1, a1, 0x238 | a1 += aav.0x00000238;
0x00008a94 jalr t9 | t9 ();
0x00008a98 addiu s0, zero, 0x17 | s0 = 0x17;
0x00008a9c lw gp, 0x18(sp) | gp = *(var_18h);
0x00008aa0 b 0x88c8 | goto label_2;
| label_11:
0x00008aa4 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008aa8 lw t9, -0x7d90(gp) | t9 = sym.imp.curl_mfprintf;
0x00008aac lw a0, 0x4c(sp) | a0 = *(arg_4ch);
0x00008ab0 move a2, s2 | a2 = s2;
| /* str.The_directory_name__s_is_too_long._n */
0x00008ab4 addiu a1, a1, 0x164 | a1 += aav.0x00000164;
0x00008ab8 jalr t9 | t9 ();
0x00008abc addiu s0, zero, 0x17 | s0 = 0x17;
0x00008ac0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008ac4 b 0x88c8 | goto label_2;
| }
[*] Function strcpy used 3 times curl