[*] Binary protection state of libcproducer.so
No RELRO No Canary found NX disabled DSO RPATH No RUNPATH Symbols
[*] Function fprintf tear down of libcproducer.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0xb190 */
| #include <stdint.h>
|
; (fcn) sym.__do_global_dtors_aux () | void do_global_dtors_aux () {
0x0000b190 lui gp, 8 |
0x0000b194 addiu gp, gp, 0x5f40 |
0x0000b198 addu gp, gp, t9 | gp += t9;
0x0000b19c addiu sp, sp, -0x30 |
0x0000b1a0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0000b1a4 lw s3, -0x7fe4(gp) | s3 = *((gp - 8185));
0x0000b1a8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0000b1ac sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000b1b0 lbu v0, -0x60c0(s3) | v0 = *((s3 - 24768));
0x0000b1b4 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0000b1b8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0000b1bc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0000b1c0 lw v0, -0x7324(gp) | v0 = *((gp - 7369));
| if (v0 != 0) {
0x0000b1c4 bnez v0, 0xb27c | goto label_1;
| }
0x0000b1c8 lw v0, -0x7fe0(gp) | v0 = *(gp);
| if (v0 != 0) {
0x0000b1cc beqz v0, 0xb1e0 |
0x0000b1d0 lw t9, -0x7324(gp) | t9 = *((gp - 7369));
0x0000b1d4 lw a0, (v0) | a0 = *(v0);
0x0000b1d8 jalr t9 | t9 ();
0x0000b1dc lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0000b1e0 lw s2, -0x7fe4(gp) | s2 = *((gp - 8185));
0x0000b1e4 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x0000b1e8 lw s1, -0x7fdc(gp) | s1 = *(gp);
| /* obj.__DTOR_LIST__ */
0x0000b1ec addiu s2, s2, -0x7644 | s2 += -0x7644;
0x0000b1f0 lw v0, -0x60bc(s0) | v0 = *((s0 - 6191));
0x0000b1f4 subu s1, s1, s2 | __asm ("subu s1, s1, s2");
0x0000b1f8 sra s1, s1, 2 | s1 >>= 2;
0x0000b1fc addiu s1, s1, -1 | s1 += -1;
0x0000b200 sltu v1, v0, s1 | v1 = (v0 < s1) ? 1 : 0;
0x0000b204 lw t9, -0x7fd8(gp) | t9 = *(gp);
| if (v1 == 0) {
0x0000b208 beqz v1, 0xb238 | goto label_2;
| }
| do {
0x0000b20c addiu v0, v0, 1 | v0++;
0x0000b210 sll v1, v0, 2 | v1 = v0 << 2;
0x0000b214 addu v1, s2, v1 | v1 = s2 + v1;
0x0000b218 lw t9, (v1) | t9 = *(v1);
0x0000b21c sw v0, -0x60bc(s0) | *((s0 - 6191)) = v0;
0x0000b220 jalr t9 | t9 ();
0x0000b224 lw v0, -0x60bc(s0) | v0 = *((s0 - 6191));
0x0000b228 sltu v1, v0, s1 | v1 = (v0 < s1) ? 1 : 0;
0x0000b22c lw gp, 0x10(sp) | gp = *(var_10h);
0x0000b230 bnez v1, 0xb20c |
| } while (v1 != 0);
0x0000b234 lw t9, -0x7fd8(gp) | t9 = *(gp);
| label_2:
0x0000b238 addiu t9, t9, -0x4f00 | t9 += -0x4f00;
0x0000b23c bal 0xb100 | entry0 ();
0x0000b240 nop |
0x0000b244 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000b248 lw v0, -0x7cb4(gp) | v0 = *((gp - 7981));
0x0000b24c lw a0, -0x7de8(gp) | a0 = *((gp - 8058));
| if (v0 == 0) {
0x0000b250 beqz v0, 0xb298 | goto label_3;
| }
0x0000b254 lw v0, -0x75e4(gp) | v0 = *((gp - 7545));
| if (a0 == 0) {
0x0000b258 beqz a0, 0xb29c | goto label_4;
| }
0x0000b25c lb v0, (a0) | v0 = *(a0);
0x0000b260 slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0000b264 lw t9, -0x75e4(gp) | t9 = *((gp - 7545));
| if (v0 != 0) {
0x0000b268 bnez v0, 0xb298 | goto label_3;
| }
0x0000b26c jalr t9 | t9 ();
0x0000b270 nop |
| do {
0x0000b274 addiu v0, zero, 1 | v0 = 1;
| label_0:
0x0000b278 sb v0, -0x60c0(s3) | *((s3 - 24768)) = v0;
| label_1:
0x0000b27c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000b280 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0000b284 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0000b288 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0000b28c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0000b290 addiu sp, sp, 0x30 |
0x0000b294 jr ra | return v0;
| label_3:
0x0000b298 lw v0, -0x75e4(gp) | v0 = *((gp - 7545));
| label_4:
0x0000b29c lw a0, -0x7fd4(gp) | a0 = *((gp - 8181));
0x0000b2a0 beqz v0, 0xb274 |
| } while (v0 == 0);
0x0000b2a4 lw t9, -0x75e4(gp) | t9 = *((gp - 7545));
| /* obj.__EH_FRAME_BEGIN__ */
0x0000b2a8 addiu a0, a0, -0x768c | a0 += -0x768c;
0x0000b2ac jalr t9 | t9 ();
0x0000b2b0 addiu v0, zero, 1 | v0 = 1;
0x0000b2b4 b 0xb278 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x513b4 */
| #include <stdint.h>
|
; (fcn) sym.acceptStateMachineState () | void acceptStateMachineState () {
0x000513b4 addiu sp, sp, -0x18 |
0x000513b8 sw fp, 0x14(sp) | *(var_14h) = fp;
0x000513bc move fp, sp | fp = sp;
0x000513c0 sw a0, 0x18(fp) | *(arg_18h) = a0;
0x000513c4 sw a2, 0x20(fp) | *(arg_20h) = a2;
0x000513c8 sw a3, 0x24(fp) | *(arg_24h) = a3;
0x000513cc sw zero, 8(fp) | *(var_8h) = 0;
0x000513d0 lw a0, 0x18(fp) | a0 = *(arg_18h);
0x000513d4 sw a0, 0xc(fp) | *(var_ch) = a0;
0x000513d8 lw a0, 0xc(fp) | a0 = *(var_ch);
| if (a0 == 0) {
0x000513dc bnez a0, 0x513f4 |
0x000513e0 nop |
0x000513e4 addiu v0, zero, 1 | v0 = 1;
0x000513e8 sw v0, 8(fp) | *(var_8h) = v0;
0x000513ec b 0x51448 | goto label_0;
0x000513f0 nop |
| }
0x000513f4 lw a0, 0xc(fp) | a0 = *(var_ch);
0x000513f8 lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x000513fc lw a1, 4(a0) | a1 = *((a0 + 1));
0x00051400 lw a0, (a0) | a0 = *(a0);
0x00051404 lw a2, 0x20(fp) | a2 = *(arg_20h);
0x00051408 and v0, a2, a0 | v0 = a2 & a0;
0x0005140c lw a2, 0x24(fp) | a2 = *(arg_24h);
0x00051410 and v1, a2, a1 | v1 = a2 & a1;
0x00051414 lw a0, 0xc(fp) | a0 = *(var_ch);
0x00051418 lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x0005141c lw a1, 4(a0) | a1 = *((a0 + 1));
0x00051420 lw a0, (a0) | a0 = *(a0);
0x00051424 move a2, a0 | a2 = a0;
| if (v0 == a2) {
0x00051428 bne v0, a2, 0x5143c |
0x0005142c nop |
0x00051430 move a0, a1 | a0 = a1;
| if (v1 == a0) {
0x00051434 beq v1, a0, 0x51448 | goto label_0;
| }
0x00051438 nop |
| }
0x0005143c lui v0, 0x5200 | v0 = 0x5200000e;
0x00051440 ori v0, v0, 0xe |
0x00051444 sw v0, 8(fp) | *(var_8h) = v0;
| label_0:
0x00051448 lw v0, 8(fp) | v0 = *(var_8h);
0x0005144c move sp, fp |
0x00051450 lw fp, 0x14(sp) | fp = *(var_14h);
0x00051454 addiu sp, sp, 0x18 |
0x00051458 jr ra | return v0;
0x0005145c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0xdf10 */
| #include <stdint.h>
|
; (fcn) sym.clientShutdownAggregate () | void clientShutdownAggregate () {
0x0000df10 addiu sp, sp, -0x30 |
0x0000df14 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0000df18 sw fp, 0x28(sp) | *(var_28h) = fp;
0x0000df1c move fp, sp | fp = sp;
0x0000df20 sw a0, 0x30(fp) | *(arg_30h) = a0;
0x0000df24 sw a1, 0x34(fp) | *(arg_34h) = a1;
0x0000df28 sw a2, 0x38(fp) | *(arg_38h) = a2;
0x0000df2c sw a3, 0x3c(fp) | *(arg_3ch) = a3;
0x0000df30 sw zero, 0x18(fp) | *(var_18h) = 0;
0x0000df34 lw v0, 0x30(fp) | v0 = *(arg_30h);
0x0000df38 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000df3c lw v0, 0x20(fp) | v0 = *(var_20h);
| if (v0 == 0) {
0x0000df40 bnez v0, 0xdf58 |
0x0000df44 nop |
0x0000df48 addiu v0, zero, 2 | v0 = 2;
0x0000df4c sw v0, 0x18(fp) | *(var_18h) = v0;
0x0000df50 b 0xe040 | goto label_0;
0x0000df54 nop |
| }
0x0000df58 sw zero, 0x1c(fp) | *(var_1ch) = 0;
0x0000df5c b 0xe028 | goto label_1;
0x0000df60 nop |
| do {
0x0000df64 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000df68 lw v1, 0x100(v0) | v1 = *(v0);
0x0000df6c lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0000df70 sll v0, v0, 5 | v0 <<= 5;
0x0000df74 addu v0, v1, v0 | v0 = v1 + v0;
0x0000df78 lw v0, 0x18(v0) | v0 = *((v0 + 6));
| if (v0 != 0) {
0x0000df7c beqz v0, 0xe01c |
0x0000df80 nop |
0x0000df84 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000df88 lw v1, 0x100(v0) | v1 = *(v0);
0x0000df8c lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0000df90 sll v0, v0, 5 | v0 <<= 5;
0x0000df94 addu v0, v1, v0 | v0 = v1 + v0;
0x0000df98 lw t0, 0x18(v0) | t0 = *((v0 + 6));
0x0000df9c lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000dfa0 lw v1, 0x100(v0) | v1 = *(v0);
0x0000dfa4 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0000dfa8 sll v0, v0, 5 | v0 <<= 5;
0x0000dfac addu v0, v1, v0 | v0 = v1 + v0;
0x0000dfb0 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0000dfb4 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000dfb8 move a0, v0 | a0 = v0;
0x0000dfbc move a1, v1 | a1 = v1;
0x0000dfc0 lw a2, 0x38(fp) | a2 = *(arg_38h);
0x0000dfc4 lw a3, 0x3c(fp) | a3 = *(arg_3ch);
0x0000dfc8 move t9, t0 | t9 = t0;
0x0000dfcc jalr t9 | t9 ();
0x0000dfd0 nop |
0x0000dfd4 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0000dfd8 lw v1, 0x18(fp) | v1 = *(var_18h);
0x0000dfdc lui v0, 0x1500 | v0 = 0x15000001;
0x0000dfe0 ori v0, v0, 1 |
| if (v1 == v0) {
0x0000dfe4 bne v1, v0, 0xdff8 |
0x0000dfe8 nop |
0x0000dfec sw zero, 0x18(fp) | *(var_18h) = 0;
0x0000dff0 b 0xe040 | goto label_0;
0x0000dff4 nop |
| }
0x0000dff8 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0000dffc sw v0, 0x24(fp) | *(var_24h) = v0;
0x0000e000 lw v0, 0x24(fp) | v0 = *(var_24h);
| if (v0 == 0) {
0x0000e004 beqz v0, 0xe01c | goto label_2;
| }
0x0000e008 nop |
0x0000e00c lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e010 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0000e014 b 0xe040 | goto label_0;
0x0000e018 nop |
| }
| label_2:
0x0000e01c lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0000e020 addiu v0, v0, 1 | v0++;
0x0000e024 sw v0, 0x1c(fp) | *(var_1ch) = v0;
| label_1:
0x0000e028 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000e02c lw v1, 0x104(v0) | v1 = *(v0);
0x0000e030 lw v0, 0x1c(fp) | v0 = *(var_1ch);
0x0000e034 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000e038 bnez v0, 0xdf64 |
| } while (v0 != 0);
0x0000e03c nop |
| label_0:
0x0000e040 lw v0, 0x18(fp) | v0 = *(var_18h);
0x0000e044 move sp, fp |
0x0000e048 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0000e04c lw fp, 0x28(sp) | fp = *(var_28h);
0x0000e050 addiu sp, sp, 0x30 |
0x0000e054 jr ra | return v0;
0x0000e058 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x129c0 */
| #include <stdint.h>
|
; (fcn) sym.createCurlApiCallbacks () | void createCurlApiCallbacks () {
0x000129c0 lui gp, 8 |
0x000129c4 addiu gp, gp, -0x18f0 |
0x000129c8 addu gp, gp, t9 | gp += t9;
0x000129cc addiu sp, sp, -0x78 |
0x000129d0 sw ra, 0x74(sp) | *(var_74h) = ra;
0x000129d4 sw fp, 0x70(sp) | *(var_70h) = fp;
0x000129d8 sw s5, 0x6c(sp) | *(var_6ch) = s5;
0x000129dc sw s4, 0x68(sp) | *(var_68h) = s4;
0x000129e0 sw s3, 0x64(sp) | *(var_64h) = s3;
0x000129e4 sw s2, 0x60(sp) | *(var_60h) = s2;
0x000129e8 sw s1, 0x5c(sp) | *(var_5ch) = s1;
0x000129ec sw s0, 0x58(sp) | *(var_58h) = s0;
0x000129f0 move fp, sp | fp = sp;
0x000129f4 sw gp, 0x20(sp) | *(var_20h) = gp;
0x000129f8 sw a0, 0x78(fp) | *(arg_78h) = a0;
0x000129fc sw a1, 0x7c(fp) | *(arg_7ch) = a1;
0x00012a00 sw a2, 0x80(fp) | *(arg_80h) = a2;
0x00012a04 sw zero, 0x28(fp) | *(var_28h) = 0;
0x00012a08 sw zero, 0x50(fp) | *(var_50h) = 0;
0x00012a0c lw v0, 0x78(fp) | v0 = *(arg_78h);
| if (v0 != 0) {
0x00012a10 beqz v0, 0x12a24 |
0x00012a14 nop |
0x00012a18 lw v0, 0xa0(fp) | v0 = *(arg_a0h);
| if (v0 != 0) {
0x00012a1c bnez v0, 0x12a34 | goto label_0;
| }
0x00012a20 nop |
| }
0x00012a24 addiu v0, zero, 1 | v0 = 1;
0x00012a28 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012a2c b 0x13370 | goto label_1;
0x00012a30 nop |
| label_0:
0x00012a34 lw v0, 0x94(fp) | v0 = *(arg_94h);
| if (v0 != 0) {
0x00012a38 beqz v0, 0x12a7c |
0x00012a3c nop |
0x00012a40 lw a0, 0x94(fp) | a0 = *(arg_94h);
0x00012a44 addiu a1, zero, 0x1001 | a1 = 0x1001;
0x00012a48 lw v0, -0x7484(gp) | v0 = sym.imp.strnlen;
0x00012a4c move t9, v0 | t9 = v0;
0x00012a50 jalr t9 | t9 ();
0x00012a54 nop |
0x00012a58 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012a5c slti v0, v0, 0x1001 | v0 = (v0 < 0x1001) ? 1 : 0;
| if (v0 != 0) {
0x00012a60 bnez v0, 0x12a7c | goto label_2;
| }
0x00012a64 nop |
0x00012a68 lui v0, 0x5200 | v0 = 0x52000080;
0x00012a6c ori v0, v0, 0x80 |
0x00012a70 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012a74 b 0x13370 | goto label_1;
0x00012a78 nop |
| }
| label_2:
0x00012a7c lw v0, 0x9c(fp) | v0 = *(arg_9ch);
| if (v0 != 0) {
0x00012a80 beqz v0, 0x12ac4 |
0x00012a84 nop |
0x00012a88 lw a0, 0x9c(fp) | a0 = *(arg_9ch);
0x00012a8c addiu a1, zero, 0x81 | a1 = 0x81;
0x00012a90 lw v0, -0x7484(gp) | v0 = sym.imp.strnlen;
0x00012a94 move t9, v0 | t9 = v0;
0x00012a98 jalr t9 | t9 ();
0x00012a9c nop |
0x00012aa0 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012aa4 slti v0, v0, 0x81 | v0 = (v0 < 0x81) ? 1 : 0;
| if (v0 != 0) {
0x00012aa8 bnez v0, 0x12ac4 | goto label_3;
| }
0x00012aac nop |
0x00012ab0 lui v0, 0x1500 | v0 = 0x15000014;
0x00012ab4 ori v0, v0, 0x14 |
0x00012ab8 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012abc b 0x13370 | goto label_1;
0x00012ac0 nop |
| }
| label_3:
0x00012ac4 lw v0, 0x98(fp) | v0 = *(arg_98h);
| if (v0 != 0) {
0x00012ac8 beqz v0, 0x12b0c |
0x00012acc nop |
0x00012ad0 lw a0, 0x98(fp) | a0 = *(arg_98h);
0x00012ad4 addiu a1, zero, 0x21 | a1 = 0x21;
0x00012ad8 lw v0, -0x7484(gp) | v0 = sym.imp.strnlen;
0x00012adc move t9, v0 | t9 = v0;
0x00012ae0 jalr t9 | t9 ();
0x00012ae4 nop |
0x00012ae8 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012aec slti v0, v0, 0x21 | v0 = (v0 < 0x21) ? 1 : 0;
| if (v0 != 0) {
0x00012af0 bnez v0, 0x12b0c | goto label_4;
| }
0x00012af4 nop |
0x00012af8 lui v0, 0x1500 | v0 = 0x15000013;
0x00012afc ori v0, v0, 0x13 |
0x00012b00 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012b04 b 0x13370 | goto label_1;
0x00012b08 nop |
| }
| label_4:
0x00012b0c lw v0, 0x8c(fp) | v0 = *(arg_8ch);
0x00012b10 sltiu v0, v0, 0xca | v0 = (v0 < 0xca) ? 1 : 0;
| if (v0 != 0) {
0x00012b14 beqz v0, 0x12b44 |
0x00012b18 nop |
0x00012b1c lw v1, 0x8c(fp) | v1 = *(arg_8ch);
0x00012b20 addiu v0, zero, 0xc9 | v0 = 0xc9;
| if (v1 != v0) {
0x00012b24 bne v1, v0, 0x12b58 | goto label_5;
| }
0x00012b28 nop |
0x00012b2c lw v1, 0x88(fp) | v1 = *(arg_88h);
0x00012b30 lui v0, 0x2a69 | v0 = 0x2a69c001;
0x00012b34 ori v0, v0, 0xc001 |
0x00012b38 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 != 0) {
0x00012b3c bnez v0, 0x12b58 | goto label_5;
| }
0x00012b40 nop |
| }
0x00012b44 lui v0, 0x1500 | v0 = 0x15000016;
0x00012b48 ori v0, v0, 0x16 |
0x00012b4c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012b50 b 0x13370 | goto label_1;
0x00012b54 nop |
| label_5:
0x00012b58 lw v0, 0x88(fp) | v0 = *(arg_88h);
0x00012b5c lw v1, 0x8c(fp) | v1 = *(arg_8ch);
0x00012b60 or v0, v0, v1 | v0 |= v1;
| if (v0 == 0) {
0x00012b64 bnez v0, 0x12b80 |
0x00012b68 nop |
0x00012b6c lui v0, 0x9682 | v0 = 0x9682f000;
0x00012b70 ori v0, v0, 0xf000 |
0x00012b74 addiu v1, zero, 5 | v1 = 5;
0x00012b78 sw v0, 0x88(fp) | *(arg_88h) = v0;
0x00012b7c sw v1, 0x8c(fp) | *(arg_8ch) = v1;
| }
0x00012b80 lw v0, -0x7620(gp) | v0 = *(gp);
0x00012b84 lw v0, (v0) | v0 = *(v0);
0x00012b88 addiu a0, zero, 1 | a0 = 1;
0x00012b8c addiu a1, zero, 0x39a8 | a1 = 0x39a8;
0x00012b90 move t9, v0 | t9 = v0;
0x00012b94 jalr t9 | t9 ();
0x00012b98 nop |
0x00012b9c lw gp, 0x20(fp) | gp = *(var_20h);
0x00012ba0 sw v0, 0x50(fp) | *(var_50h) = v0;
0x00012ba4 lw v0, 0x50(fp) | v0 = *(var_50h);
| if (v0 == 0) {
0x00012ba8 bnez v0, 0x12bc0 |
0x00012bac nop |
0x00012bb0 addiu v0, zero, 4 | v0 = 4;
0x00012bb4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012bb8 b 0x13370 | goto label_1;
0x00012bbc nop |
| }
0x00012bc0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012bc4 sw zero, (v0) | *(v0) = 0;
0x00012bc8 lw v1, 0x50(fp) | v1 = *(var_50h);
0x00012bcc lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012bd0 move s4, v0 | s4 = v0;
0x00012bd4 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x00012bd8 move s5, v0 | s5 = v0;
0x00012bdc sw s4, 8(v1) | *((v1 + 2)) = s4;
0x00012be0 sw s5, 0xc(v1) | *((v1 + 3)) = s5;
0x00012be4 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012be8 move a0, zero | a0 = 0;
0x00012bec move a1, zero | a1 = 0;
0x00012bf0 sw a0, 0x3970(v0) | *((v0 + 3676)) = a0;
0x00012bf4 sw a1, 0x3974(v0) | *((v0 + 3677)) = a1;
0x00012bf8 lw a0, 0x50(fp) | a0 = *(var_50h);
0x00012bfc lw v0, 0x88(fp) | v0 = *(arg_88h);
0x00012c00 lw v1, 0x8c(fp) | v1 = *(arg_8ch);
0x00012c04 sw v0, 0x3978(a0) | *((a0 + 3678)) = v0;
0x00012c08 sw v1, 0x397c(a0) | *(a0) = v1;
0x00012c0c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c10 lw v1, 0x80(fp) | v1 = *(arg_80h);
0x00012c14 sw v1, 0x3980(v0) | *((v0 + 3680)) = v1;
0x00012c18 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c1c move a0, zero | a0 = 0;
0x00012c20 move a1, zero | a1 = 0;
0x00012c24 sw a0, 0x3958(v0) | *((v0 + 3670)) = a0;
0x00012c28 sw a1, 0x395c(v0) | *((v0 + 3671)) = a1;
0x00012c2c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c30 move a0, zero | a0 = 0;
0x00012c34 move a1, zero | a1 = 0;
0x00012c38 sw a0, 0x3948(v0) | *((v0 + 3666)) = a0;
0x00012c3c sw a1, 0x394c(v0) | *((v0 + 3667)) = a1;
0x00012c40 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c44 move a0, zero | a0 = 0;
0x00012c48 move a1, zero | a1 = 0;
0x00012c4c sw a0, 0x3968(v0) | *(v0) = a0;
0x00012c50 sw a1, 0x396c(v0) | *((v0 + 3675)) = a1;
0x00012c54 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c58 move a0, zero | a0 = 0;
0x00012c5c move a1, zero | a1 = 0;
0x00012c60 sw a0, 0x3988(v0) | *((v0 + 3682)) = a0;
0x00012c64 sw a1, 0x398c(v0) | *(v0) = a1;
0x00012c68 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c6c lw v1, 0x78(fp) | v1 = *(arg_78h);
0x00012c70 sw v1, 0x3930(v0) | *((v0 + 3660)) = v1;
0x00012c74 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c78 lw v1, -0x7614(gp) | v1 = sym.createStreamCachingCurl;
0x00012c7c sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x00012c80 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c84 lw v1, -0x7c08(gp) | v1 = sym.describeStreamCachingCurl;
0x00012c88 sw v1, 0x14(v0) | *((v0 + 5)) = v1;
0x00012c8c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c90 lw v1, -0x7a74(gp) | v1 = sym.getStreamingEndpointCachingCurl;
0x00012c94 sw v1, 0x18(v0) | *((v0 + 6)) = v1;
0x00012c98 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012c9c lw v1, -0x7604(gp) | v1 = sym.tagResourceCachingCurl;
0x00012ca0 sw v1, 0x20(v0) | *((v0 + 8)) = v1;
0x00012ca4 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012ca8 lw v1, -0x7ddc(gp) | v1 = sym.createDeviceCurl;
0x00012cac sw v1, 0x24(v0) | *((v0 + 9)) = v1;
0x00012cb0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012cb4 lw v1, -0x7300(gp) | v1 = sym.putStreamCurl;
0x00012cb8 sw v1, 0x1c(v0) | *((v0 + 7)) = v1;
0x00012cbc lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012cc0 lw v1, -0x75fc(gp) | v1 = sym.freeApiCallbacksCurl;
0x00012cc4 sw v1, 0x28(v0) | *((v0 + 10)) = v1;
0x00012cc8 lw v0, 0x7c(fp) | v0 = *(arg_7ch);
| if (v0 != 0) {
0x00012ccc beqz v0, 0x12ce4 |
0x00012cd0 nop |
0x00012cd4 lw v0, 0x7c(fp) | v0 = *(arg_7ch);
0x00012cd8 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00012cdc bnez v0, 0x12d28 | goto label_6;
| }
0x00012ce0 nop |
| }
0x00012ce4 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012ce8 addiu v0, v0, 0x9c | v0 += 0x9c;
0x00012cec lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
0x00012cf0 lw a1, 0x3270(v1) | a1 = *((v1 + 3228));
| /* esilref: 'us-west-2' */
0x00012cf4 addiu a0, v1, 0x3270 | a0 = v1 + 0x3270;
0x00012cf8 lw a0, 4(a0) | a0 = *((a0 + 1));
0x00012cfc swl a1, 3(v0) | __asm ("swl a1, 3(v0)");
0x00012d00 swr a1, (v0) | __asm ("swr a1, (v0)");
0x00012d04 swl a0, 7(v0) | __asm ("swl a0, 7(v0)");
0x00012d08 swr a0, 4(v0) | __asm ("swr a0, 4(v0)");
| /* esilref: 'us-west-2' */
0x00012d0c addiu v1, v1, 0x3270 | v1 += 0x3270;
0x00012d10 lbu a0, 8(v1) | a0 = *((v1 + 8));
0x00012d14 sb a0, 8(v0) | *((v0 + 8)) = a0;
0x00012d18 lbu v1, 9(v1) | v1 = *((v1 + 9));
0x00012d1c sb v1, 9(v0) | *((v0 + 9)) = v1;
0x00012d20 b 0x12d58 | goto label_7;
0x00012d24 nop |
| label_6:
0x00012d28 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012d2c addiu v0, v0, 0x9c | v0 += 0x9c;
0x00012d30 move a0, v0 | a0 = v0;
0x00012d34 lw a1, 0x7c(fp) | a1 = *(arg_7ch);
0x00012d38 addiu a2, zero, 0x80 | a2 = 0x80;
0x00012d3c lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x00012d40 move t9, v0 | t9 = v0;
0x00012d44 jalr t9 | t9 ();
0x00012d48 nop |
0x00012d4c lw gp, 0x20(fp) | gp = *(var_20h);
0x00012d50 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012d54 sb zero, 0x11c(v0) | *(v0) = 0;
| label_7:
0x00012d58 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012d5c addiu v0, v0, 0x11d | v0 += 0x11d;
0x00012d60 lw a0, 0x98(fp) | a0 = *(arg_98h);
0x00012d64 lw a1, 0x9c(fp) | a1 = *(arg_9ch);
0x00012d68 addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x00012d6c move a3, v0 | a3 = v0;
0x00012d70 lw v0, -0x7948(gp) | v0 = sym.getUserAgentString;
0x00012d74 move t9, v0 | t9 = v0;
0x00012d78 jalr t9 | t9 ();
0x00012d7c nop |
0x00012d80 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012d84 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x00012d88 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012d8c sb zero, 0x21d(v0) | *((v0 + 541)) = 0;
0x00012d90 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 != 0) {
0x00012d94 beqz v0, 0x12dd8 |
0x00012d98 nop |
0x00012d9c lw v0, -0x7f44(gp) | v0 = *(gp);
0x00012da0 lw v0, (v0) | v0 = *(v0);
0x00012da4 lw v1, 0x2c(fp) | v1 = *(var_2ch);
0x00012da8 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00012dac addiu a0, zero, 4 | a0 = 4;
0x00012db0 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.CurlApiCallbacks */
0x00012db4 addiu a1, v1, 0x327c | a1 = v1 + 0x327c;
0x00012db8 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Failed_to_generate_user_agent_string_with_error_0x_08x. */
0x00012dbc addiu a2, v1, 0x3290 | a2 = v1 + 0x3290;
0x00012dc0 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.8919 */
0x00012dc4 addiu a3, v1, 0x3bfc | a3 = v1 + 0x3bfc;
0x00012dc8 move t9, v0 | t9 = v0;
0x00012dcc jalr t9 | t9 ();
0x00012dd0 nop |
0x00012dd4 lw gp, 0x20(fp) | gp = *(var_20h);
| }
0x00012dd8 lw v0, 0x90(fp) | v0 = *(arg_90h);
| if (v0 != 0) {
0x00012ddc beqz v0, 0x12df4 |
0x00012de0 nop |
0x00012de4 lw v0, 0x90(fp) | v0 = *(arg_90h);
0x00012de8 lb v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x00012dec bnez v0, 0x12e54 | goto label_8;
| }
0x00012df0 nop |
| }
0x00012df4 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012df8 addiu v0, v0, 0x21e | v0 += 0x21e;
0x00012dfc lw v1, 0x50(fp) | v1 = *(var_50h);
0x00012e00 addiu v1, v1, 0x9c | v1 += 0x9c;
0x00012e04 lw a0, -0x7fcc(gp) | a0 = *((gp - 8179));
| /* esilref: 'kinesisvideo' */
0x00012e08 addiu a0, a0, 0x32e8 | a0 += 0x32e8;
0x00012e0c sw a0, 0x10(sp) | *(var_10h) = a0;
0x00012e10 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00012e14 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str..amazonaws.com */
0x00012e18 addiu v1, v1, 0x32f8 | v1 += 0x32f8;
0x00012e1c sw v1, 0x18(sp) | *(var_18h) = v1;
0x00012e20 move a0, v0 | a0 = v0;
0x00012e24 addiu a1, zero, 0x2710 | a1 = 0x2710;
0x00012e28 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str._s_s._s_s */
0x00012e2c addiu a2, v0, 0x32d0 | a2 = v0 + aav.0x000032d0;
0x00012e30 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* esilref: 'https://' */
0x00012e34 addiu a3, v0, 0x32dc | a3 = v0 + 0x32dc;
0x00012e38 lw v0, -0x7b44(gp) | v0 = sym.imp.snprintf;
0x00012e3c move t9, v0 | t9 = v0;
0x00012e40 jalr t9 | t9 ();
0x00012e44 nop |
0x00012e48 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012e4c b 0x12e7c | goto label_9;
0x00012e50 nop |
| label_8:
0x00012e54 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012e58 addiu v0, v0, 0x21e | v0 += 0x21e;
0x00012e5c move a0, v0 | a0 = v0;
0x00012e60 lw a1, 0x90(fp) | a1 = *(arg_90h);
0x00012e64 addiu a2, zero, 0x2710 | a2 = 0x2710;
0x00012e68 lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x00012e6c move t9, v0 | t9 = v0;
0x00012e70 jalr t9 | t9 ();
0x00012e74 nop |
0x00012e78 lw gp, 0x20(fp) | gp = *(var_20h);
| label_9:
0x00012e7c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012e80 sb zero, 0x292e(v0) | *((v0 + 10542)) = 0;
0x00012e84 lw v0, 0x94(fp) | v0 = *(arg_94h);
| if (v0 != 0) {
0x00012e88 beqz v0, 0x12ec0 |
0x00012e8c nop |
0x00012e90 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012e94 addiu v0, v0, 0x292f | v0 += 0x292f;
0x00012e98 move a0, v0 | a0 = v0;
0x00012e9c lw a1, 0x94(fp) | a1 = *(arg_94h);
0x00012ea0 addiu a2, zero, 0x1000 | a2 = 0x1000;
0x00012ea4 lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x00012ea8 move t9, v0 | t9 = v0;
0x00012eac jalr t9 | t9 ();
0x00012eb0 nop |
0x00012eb4 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012eb8 b 0x12ec8 | goto label_10;
0x00012ebc nop |
| }
0x00012ec0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012ec4 sb zero, 0x292f(v0) | *((v0 + 10543)) = 0;
| label_10:
0x00012ec8 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012ecc addiu v0, v0, 0x3950 | v0 += 0x3950;
0x00012ed0 addiu a0, zero, 0x64 | a0 = 0x64;
0x00012ed4 addiu a1, zero, 2 | a1 = 2;
0x00012ed8 move a2, v0 | a2 = v0;
0x00012edc lw v0, -0x7440(gp) | v0 = sym.hashTableCreateWithParams;
0x00012ee0 move t9, v0 | t9 = v0;
0x00012ee4 jalr t9 | t9 ();
0x00012ee8 nop |
0x00012eec lw gp, 0x20(fp) | gp = *(var_20h);
0x00012ef0 sw v0, 0x30(fp) | *(var_30h) = v0;
0x00012ef4 lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 != 0) {
0x00012ef8 beqz v0, 0x12f10 |
0x00012efc nop |
0x00012f00 lw v0, 0x30(fp) | v0 = *(var_30h);
0x00012f04 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012f08 b 0x13370 | goto label_1;
0x00012f0c nop |
| }
0x00012f10 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012f14 addiu v0, v0, 0x3940 | v0 += aav.0x00003940;
0x00012f18 move a0, v0 | a0 = v0;
0x00012f1c lw v0, -0x79a0(gp) | v0 = sym.doubleListCreate;
0x00012f20 move t9, v0 | t9 = v0;
0x00012f24 jalr t9 | t9 ();
0x00012f28 nop |
0x00012f2c lw gp, 0x20(fp) | gp = *(var_20h);
0x00012f30 sw v0, 0x34(fp) | *(var_34h) = v0;
0x00012f34 lw v0, 0x34(fp) | v0 = *(var_34h);
| if (v0 != 0) {
0x00012f38 beqz v0, 0x12f50 |
0x00012f3c nop |
0x00012f40 lw v0, 0x34(fp) | v0 = *(var_34h);
0x00012f44 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012f48 b 0x13370 | goto label_1;
0x00012f4c nop |
| }
0x00012f50 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012f54 addiu v0, v0, 0x3960 | v0 += 0x3960;
0x00012f58 addiu a0, zero, 0x64 | a0 = 0x64;
0x00012f5c addiu a1, zero, 2 | a1 = 2;
0x00012f60 move a2, v0 | a2 = v0;
0x00012f64 lw v0, -0x7440(gp) | v0 = sym.hashTableCreateWithParams;
0x00012f68 move t9, v0 | t9 = v0;
0x00012f6c jalr t9 | t9 ();
0x00012f70 nop |
0x00012f74 lw gp, 0x20(fp) | gp = *(var_20h);
0x00012f78 sw v0, 0x38(fp) | *(var_38h) = v0;
0x00012f7c lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 != 0) {
0x00012f80 beqz v0, 0x12f98 |
0x00012f84 nop |
0x00012f88 lw v0, 0x38(fp) | v0 = *(var_38h);
0x00012f8c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012f90 b 0x13370 | goto label_1;
0x00012f94 nop |
| }
0x00012f98 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00012f9c addiu v0, v0, 0x3984 | v0 += 0x3984;
0x00012fa0 addiu a0, zero, 0x64 | a0 = 0x64;
0x00012fa4 addiu a1, zero, 2 | a1 = 2;
0x00012fa8 move a2, v0 | a2 = v0;
0x00012fac lw v0, -0x7440(gp) | v0 = sym.hashTableCreateWithParams;
0x00012fb0 move t9, v0 | t9 = v0;
0x00012fb4 jalr t9 | t9 ();
0x00012fb8 nop |
0x00012fbc lw gp, 0x20(fp) | gp = *(var_20h);
0x00012fc0 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00012fc4 lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 != 0) {
0x00012fc8 beqz v0, 0x12fe0 |
0x00012fcc nop |
0x00012fd0 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00012fd4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00012fd8 b 0x13370 | goto label_1;
0x00012fdc nop |
| }
0x00012fe0 lw s4, 0x50(fp) | s4 = *(var_50h);
0x00012fe4 lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00012fe8 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x00012fec lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00012ff0 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00012ff4 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00012ff8 move a0, v0 | a0 = v0;
0x00012ffc move a1, v1 | a1 = v1;
0x00013000 addiu a2, zero, 1 | a2 = 1;
0x00013004 move t9, a3 | t9 = a3;
0x00013008 jalr t9 | t9 ();
0x0001300c nop |
0x00013010 lw gp, 0x20(fp) | gp = *(var_20h);
0x00013014 sw v0, 0x3948(s4) | *((s4 + 3666)) = v0;
0x00013018 sw v1, 0x394c(s4) | *((s4 + 3667)) = v1;
0x0001301c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013020 lw a0, 0x3948(v0) | a0 = *((v0 + 3666));
0x00013024 lw a1, 0x394c(v0) | a1 = *((v0 + 3667));
0x00013028 move v0, a0 | v0 = a0;
0x0001302c or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00013030 bnez v0, 0x13048 |
0x00013034 nop |
0x00013038 addiu v0, zero, 0xd | v0 = 0xd;
0x0001303c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00013040 b 0x13370 | goto label_1;
0x00013044 nop |
| }
0x00013048 lw s4, 0x50(fp) | s4 = *(var_50h);
0x0001304c lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00013050 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x00013054 lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00013058 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0001305c lw v0, 8(v0) | v0 = *((v0 + 2));
0x00013060 move a0, v0 | a0 = v0;
0x00013064 move a1, v1 | a1 = v1;
0x00013068 addiu a2, zero, 1 | a2 = 1;
0x0001306c move t9, a3 | t9 = a3;
0x00013070 jalr t9 | t9 ();
0x00013074 nop |
0x00013078 lw gp, 0x20(fp) | gp = *(var_20h);
0x0001307c sw v0, 0x3958(s4) | *((s4 + 3670)) = v0;
0x00013080 sw v1, 0x395c(s4) | *((s4 + 3671)) = v1;
0x00013084 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013088 lw a0, 0x3958(v0) | a0 = *((v0 + 3670));
0x0001308c lw a1, 0x395c(v0) | a1 = *((v0 + 3671));
0x00013090 move v0, a0 | v0 = a0;
0x00013094 or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00013098 bnez v0, 0x130b0 |
0x0001309c nop |
0x000130a0 addiu v0, zero, 0xd | v0 = 0xd;
0x000130a4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x000130a8 b 0x13370 | goto label_1;
0x000130ac nop |
| }
0x000130b0 lw s4, 0x50(fp) | s4 = *(var_50h);
0x000130b4 lw v0, 0x78(fp) | v0 = *(arg_78h);
0x000130b8 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x000130bc lw v0, 0x78(fp) | v0 = *(arg_78h);
0x000130c0 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x000130c4 lw v0, 8(v0) | v0 = *((v0 + 2));
0x000130c8 move a0, v0 | a0 = v0;
0x000130cc move a1, v1 | a1 = v1;
0x000130d0 addiu a2, zero, 1 | a2 = 1;
0x000130d4 move t9, a3 | t9 = a3;
0x000130d8 jalr t9 | t9 ();
0x000130dc nop |
0x000130e0 lw gp, 0x20(fp) | gp = *(var_20h);
0x000130e4 sw v0, 0x3968(s4) | *(s4) = v0;
0x000130e8 sw v1, 0x396c(s4) | *((s4 + 3675)) = v1;
0x000130ec lw v0, 0x50(fp) | v0 = *(var_50h);
0x000130f0 lw a0, 0x3968(v0) | a0 = *(v0);
0x000130f4 lw a1, 0x396c(v0) | a1 = *((v0 + 3675));
0x000130f8 move v0, a0 | v0 = a0;
0x000130fc or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00013100 bnez v0, 0x13118 |
0x00013104 nop |
0x00013108 addiu v0, zero, 0xd | v0 = 0xd;
0x0001310c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00013110 b 0x13370 | goto label_1;
0x00013114 nop |
| }
0x00013118 lw s4, 0x50(fp) | s4 = *(var_50h);
0x0001311c lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00013120 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x00013124 lw v0, 0x78(fp) | v0 = *(arg_78h);
0x00013128 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0001312c lw v0, 8(v0) | v0 = *((v0 + 2));
0x00013130 move a0, v0 | a0 = v0;
0x00013134 move a1, v1 | a1 = v1;
0x00013138 addiu a2, zero, 1 | a2 = 1;
0x0001313c move t9, a3 | t9 = a3;
0x00013140 jalr t9 | t9 ();
0x00013144 nop |
0x00013148 lw gp, 0x20(fp) | gp = *(var_20h);
0x0001314c sw v0, 0x3988(s4) | *((s4 + 3682)) = v0;
0x00013150 sw v1, 0x398c(s4) | *(s4) = v1;
0x00013154 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013158 lw a0, 0x3988(v0) | a0 = *((v0 + 3682));
0x0001315c lw a1, 0x398c(v0) | a1 = *(v0);
0x00013160 move v0, a0 | v0 = a0;
0x00013164 or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00013168 bnez v0, 0x13180 |
0x0001316c nop |
0x00013170 addiu v0, zero, 0xd | v0 = 0xd;
0x00013174 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00013178 b 0x13370 | goto label_1;
0x0001317c nop |
| }
0x00013180 addiu a0, zero, 0xd | a0 = 0xd;
0x00013184 addiu a1, zero, 1 | a1 = 1;
0x00013188 lw v0, -0x7dec(gp) | v0 = sym.imp.signal;
0x0001318c move t9, v0 | t9 = v0;
0x00013190 jalr t9 | t9 ();
0x00013194 nop |
0x00013198 lw gp, 0x20(fp) | gp = *(var_20h);
0x0001319c lw v0, 0x50(fp) | v0 = *(var_50h);
0x000131a0 move a0, zero | a0 = 0;
0x000131a4 move a1, zero | a1 = 0;
0x000131a8 sw a0, 0x3990(v0) | *((v0 + 3684)) = a0;
0x000131ac sw a1, 0x3994(v0) | *((v0 + 3685)) = a1;
0x000131b0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000131b4 sw zero, 0x3998(v0) | *((v0 + 3686)) = 0;
0x000131b8 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000131bc sw zero, 0x399c(v0) | *((v0 + 3687)) = 0;
0x000131c0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000131c4 sw zero, 0x39a0(v0) | *((v0 + 3688)) = 0;
0x000131c8 addiu a0, zero, 3 | a0 = 3;
0x000131cc lw v0, -0x7a40(gp) | v0 = sym.imp.curl_global_init;
0x000131d0 move t9, v0 | t9 = v0;
0x000131d4 jalr t9 | t9 ();
0x000131d8 nop |
0x000131dc lw gp, 0x20(fp) | gp = *(var_20h);
| if (v0 != 0) {
0x000131e0 beqz v0, 0x131fc |
0x000131e4 nop |
0x000131e8 lui v0, 0x1500 | v0 = 0x1500000e;
0x000131ec ori v0, v0, 0xe |
0x000131f0 sw v0, 0x28(fp) | *(var_28h) = v0;
0x000131f4 b 0x13370 | goto label_1;
0x000131f8 nop |
| }
0x000131fc lw v0, -0x7b94(gp) | v0 = *(gp);
0x00013200 lw v0, (v0) | v0 = *(v0);
0x00013204 lw v1, 0x50(fp) | v1 = *(var_50h);
0x00013208 addiu v1, v1, 0x98 | v1 += 0x98;
0x0001320c move a0, v1 | a0 = v1;
0x00013210 move a1, zero | a1 = 0;
0x00013214 move t9, v0 | t9 = v0;
0x00013218 jalr t9 | t9 ();
0x0001321c nop |
0x00013220 lw gp, 0x20(fp) | gp = *(var_20h);
0x00013224 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013228 sw zero, 0x30(v0) | *((v0 + 12)) = 0;
0x0001322c lw v1, 0x50(fp) | v1 = *(var_50h);
0x00013230 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013234 move s2, v0 | s2 = v0;
0x00013238 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x0001323c move s3, v0 | s3 = v0;
0x00013240 sw s2, 0x38(v1) | *((v1 + 14)) = s2;
0x00013244 sw s3, 0x3c(v1) | *((v1 + 15)) = s3;
0x00013248 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0001324c lw v1, -0x79a4(gp) | v1 = sym.dataAvailableCurl;
0x00013250 sw v1, 0x60(v0) | *((v0 + 24)) = v1;
0x00013254 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013258 lw v1, -0x76f0(gp) | v1 = sym.streamClosedCurl;
0x0001325c sw v1, 0x68(v0) | *((v0 + 26)) = v1;
0x00013260 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013264 sw zero, 0x58(v0) | *((v0 + 22)) = 0;
0x00013268 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0001326c lw v1, -0x7914(gp) | v1 = sym.fragmentAckReceivedCurl;
0x00013270 sw v1, 0x5c(v0) | *((v0 + 23)) = v1;
0x00013274 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013278 lw v1, -0x7b74(gp) | v1 = sym.shutdownStreamCurl;
0x0001327c sw v1, 0x6c(v0) | *((v0 + 27)) = v1;
0x00013280 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013284 sw zero, 0x78(v0) | *((v0 + 30)) = 0;
0x00013288 lw v1, 0x50(fp) | v1 = *(var_50h);
0x0001328c lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013290 move s0, v0 | s0 = v0;
0x00013294 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x00013298 move s1, v0 | s1 = v0;
0x0001329c sw s0, 0x80(v1) | *((v1 + 32)) = s0;
0x000132a0 sw s1, 0x84(v1) | *((v1 + 33)) = s1;
0x000132a4 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000132a8 lw v1, -0x7a1c(gp) | v1 = sym.clientShutdownCurl;
0x000132ac sw v1, 0x90(v0) | *((v0 + 36)) = v1;
0x000132b0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000132b4 lw a0, 0x78(fp) | a0 = *(arg_78h);
0x000132b8 move a1, v0 | a1 = v0;
0x000132bc lw v0, -0x7ca4(gp) | v0 = sym.addApiCallbacks;
0x000132c0 move t9, v0 | t9 = v0;
0x000132c4 jalr t9 | t9 ();
0x000132c8 nop |
0x000132cc lw gp, 0x20(fp) | gp = *(var_20h);
0x000132d0 sw v0, 0x40(fp) | *(var_40h) = v0;
0x000132d4 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 != 0) {
0x000132d8 beqz v0, 0x132f0 |
0x000132dc nop |
0x000132e0 lw v0, 0x40(fp) | v0 = *(var_40h);
0x000132e4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x000132e8 b 0x13370 | goto label_1;
0x000132ec nop |
| }
0x000132f0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x000132f4 addiu v0, v0, 0x30 | v0 += 0x30;
0x000132f8 lw a0, 0x78(fp) | a0 = *(arg_78h);
0x000132fc move a1, v0 | a1 = v0;
0x00013300 lw v0, -0x75f4(gp) | v0 = sym.addStreamCallbacks;
0x00013304 move t9, v0 | t9 = v0;
0x00013308 jalr t9 | t9 ();
0x0001330c nop |
0x00013310 lw gp, 0x20(fp) | gp = *(var_20h);
0x00013314 sw v0, 0x44(fp) | *(var_44h) = v0;
0x00013318 lw v0, 0x44(fp) | v0 = *(var_44h);
| if (v0 != 0) {
0x0001331c beqz v0, 0x13334 |
0x00013320 nop |
0x00013324 lw v0, 0x44(fp) | v0 = *(var_44h);
0x00013328 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0001332c b 0x13370 | goto label_1;
0x00013330 nop |
| }
0x00013334 lw v0, 0x50(fp) | v0 = *(var_50h);
0x00013338 addiu v0, v0, 0x78 | v0 += 0x78;
0x0001333c lw a0, 0x78(fp) | a0 = *(arg_78h);
0x00013340 move a1, v0 | a1 = v0;
0x00013344 lw v0, -0x74d8(gp) | v0 = sym.addProducerCallbacks;
0x00013348 move t9, v0 | t9 = v0;
0x0001334c jalr t9 | t9 ();
0x00013350 nop |
0x00013354 lw gp, 0x20(fp) | gp = *(var_20h);
0x00013358 sw v0, 0x48(fp) | *(var_48h) = v0;
0x0001335c lw v0, 0x48(fp) | v0 = *(var_48h);
| if (v0 != 0) {
0x00013360 beqz v0, 0x13370 |
0x00013364 nop |
0x00013368 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0001336c sw v0, 0x28(fp) | *(var_28h) = v0;
| }
| label_1:
0x00013370 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00013374 sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x00013378 lw v0, 0x4c(fp) | v0 = *(var_4ch);
| if (v0 != 0) {
0x0001337c beqz v0, 0x133c0 |
0x00013380 nop |
0x00013384 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00013388 lw v0, (v0) | v0 = *(v0);
0x0001338c lw v1, 0x4c(fp) | v1 = *(var_4ch);
0x00013390 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00013394 addiu a0, zero, 5 | a0 = 5;
0x00013398 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.CurlApiCallbacks */
0x0001339c addiu a1, v1, 0x327c | a1 = v1 + 0x327c;
0x000133a0 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* esilref: '&s(): operation returned status code: 0x&x' */
0x000133a4 addiu a2, v1, 0x3308 | a2 = v1 + 0x3308;
0x000133a8 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.8919 */
0x000133ac addiu a3, v1, 0x3bfc | a3 = v1 + 0x3bfc;
0x000133b0 move t9, v0 | t9 = v0;
0x000133b4 jalr t9 | t9 ();
0x000133b8 nop |
0x000133bc lw gp, 0x20(fp) | gp = *(var_20h);
| }
0x000133c0 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 != 0) {
0x000133c4 beqz v0, 0x133ec |
0x000133c8 nop |
0x000133cc addiu v0, fp, 0x50 | v0 = fp + 0x50;
0x000133d0 move a0, v0 | a0 = v0;
0x000133d4 lw v0, -0x7524(gp) | v0 = sym.freeCurlApiCallbacks;
0x000133d8 move t9, v0 | t9 = v0;
0x000133dc jalr t9 | t9 ();
0x000133e0 nop |
0x000133e4 lw gp, 0x20(fp) | gp = *(var_20h);
0x000133e8 sw zero, 0x50(fp) | *(var_50h) = 0;
| }
0x000133ec lw v0, 0xa0(fp) | v0 = *(arg_a0h);
| if (v0 != 0) {
0x000133f0 beqz v0, 0x13404 |
0x000133f4 nop |
0x000133f8 lw v1, 0x50(fp) | v1 = *(var_50h);
0x000133fc lw v0, 0xa0(fp) | v0 = *(arg_a0h);
0x00013400 sw v1, (v0) | *(v0) = v1;
| }
0x00013404 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00013408 move sp, fp |
0x0001340c lw ra, 0x74(sp) | ra = *(var_74h);
0x00013410 lw fp, 0x70(sp) | fp = *(var_70h);
0x00013414 lw s5, 0x6c(sp) | s5 = *(var_6ch);
0x00013418 lw s4, 0x68(sp) | s4 = *(var_68h);
0x0001341c lw s3, 0x64(sp) | s3 = *(var_64h);
0x00013420 lw s2, 0x60(sp) | s2 = *(var_60h);
0x00013424 lw s1, 0x5c(sp) | s1 = *(var_5ch);
0x00013428 lw s0, 0x58(sp) | s0 = *(var_58h);
0x0001342c addiu sp, sp, 0x78 |
0x00013430 jr ra | return v0;
0x00013434 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x1fb50 */
| #include <stdint.h>
|
; (fcn) sym.createCurlRequest () | void createCurlRequest () {
0x0001fb50 lui gp, 7 |
0x0001fb54 addiu gp, gp, 0x1580 |
0x0001fb58 addu gp, gp, t9 | gp += t9;
0x0001fb5c addiu sp, sp, -0x50 |
0x0001fb60 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0001fb64 sw fp, 0x48(sp) | *(var_48h) = fp;
0x0001fb68 sw s0, 0x44(sp) | *(var_44h) = s0;
0x0001fb6c move fp, sp | fp = sp;
0x0001fb70 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001fb74 sw a0, 0x50(fp) | *(arg_50h) = a0;
0x0001fb78 sw a1, 0x54(fp) | *(arg_54h) = a1;
0x0001fb7c sw a2, 0x58(fp) | *(arg_58h) = a2;
0x0001fb80 sw zero, 0x18(fp) | *(var_18h) = 0;
0x0001fb84 sw zero, 0x34(fp) | *(var_34h) = 0;
0x0001fb88 addiu v0, zero, 0x5920 | v0 = 0x5920;
0x0001fb8c sw v0, 0x1c(fp) | *(var_1ch) = v0;
0x0001fb90 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0001fb94 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
| if (v0 != 0) {
0x0001fb98 beqz v0, 0x1fbc8 |
0x0001fb9c nop |
0x0001fba0 lw v0, 0x54(fp) | v0 = *(arg_54h);
| if (v0 == 0) {
0x0001fba4 beqz v0, 0x1fbc8 | goto label_0;
| }
0x0001fba8 nop |
0x0001fbac lw v0, 0x98(fp) | v0 = *(arg_98h);
| if (v0 == 0) {
0x0001fbb0 beqz v0, 0x1fbc8 | goto label_0;
| }
0x0001fbb4 nop |
0x0001fbb8 lw v0, 0x98(fp) | v0 = *(arg_98h);
0x0001fbbc lw v0, 0x3930(v0) | v0 = *((v0 + 3660));
| if (v0 != 0) {
0x0001fbc0 bnez v0, 0x1fbd8 | goto label_1;
| }
0x0001fbc4 nop |
| }
| label_0:
0x0001fbc8 addiu v0, zero, 1 | v0 = 1;
0x0001fbcc sw v0, 0x18(fp) | *(var_18h) = v0;
0x0001fbd0 b 0x1ffd8 | goto label_2;
0x0001fbd4 nop |
| label_1:
0x0001fbd8 lw v0, 0x98(fp) | v0 = *(arg_98h);
0x0001fbdc lw v0, 0x3930(v0) | v0 = *((v0 + 3660));
0x0001fbe0 sw v0, 0x24(fp) | *(var_24h) = v0;
0x0001fbe4 lw v0, 0x58(fp) | v0 = *(arg_58h);
| if (v0 != 0) {
0x0001fbe8 beqz v0, 0x1fc1c |
0x0001fbec nop |
0x0001fbf0 lw a0, 0x58(fp) | a0 = *(arg_58h);
0x0001fbf4 lw v0, -0x7dfc(gp) | v0 = sym.imp.strlen;
0x0001fbf8 move t9, v0 | t9 = v0;
0x0001fbfc jalr t9 | t9 ();
0x0001fc00 nop |
0x0001fc04 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fc08 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0001fc0c lw v1, 0x1c(fp) | v1 = *(var_1ch);
0x0001fc10 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0001fc14 addu v0, v1, v0 | v0 = v1 + v0;
0x0001fc18 sw v0, 0x1c(fp) | *(var_1ch) = v0;
| }
0x0001fc1c lw v0, -0x7620(gp) | v0 = *(gp);
0x0001fc20 lw v0, (v0) | v0 = *(v0);
0x0001fc24 addiu a0, zero, 1 | a0 = 1;
0x0001fc28 lw a1, 0x1c(fp) | a1 = *(var_1ch);
0x0001fc2c move t9, v0 | t9 = v0;
0x0001fc30 jalr t9 | t9 ();
0x0001fc34 nop |
0x0001fc38 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fc3c sw v0, 0x34(fp) | *(var_34h) = v0;
0x0001fc40 lw v0, 0x34(fp) | v0 = *(var_34h);
| if (v0 == 0) {
0x0001fc44 bnez v0, 0x1fc5c |
0x0001fc48 nop |
0x0001fc4c addiu v0, zero, 4 | v0 = 4;
0x0001fc50 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0001fc54 b 0x1ffd8 | goto label_2;
0x0001fc58 nop |
| }
0x0001fc5c lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fc60 lw v1, 0x94(fp) | v1 = *(arg_94h);
0x0001fc64 sw v1, 0x57e8(v0) | *((v0 + 5626)) = v1;
0x0001fc68 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fc6c lw v1, 0x50(fp) | v1 = *(arg_50h);
0x0001fc70 sw v1, 0xc(v0) | *((v0 + 3)) = v1;
0x0001fc74 lw a0, 0x34(fp) | a0 = *(var_34h);
0x0001fc78 lw v0, 0x60(fp) | v0 = *(arg_60h);
0x0001fc7c lw v1, 0x64(fp) | v1 = *(arg_64h);
0x0001fc80 sw v0, 0x58f8(a0) | *((a0 + 5694)) = v0;
0x0001fc84 sw v1, 0x58fc(a0) | *((a0 + 5695)) = v1;
0x0001fc88 lw a0, 0x34(fp) | a0 = *(var_34h);
0x0001fc8c lw v0, 0x80(fp) | v0 = *(arg_80h);
0x0001fc90 lw v1, 0x84(fp) | v1 = *(arg_84h);
0x0001fc94 sw v0, 0x57c0(a0) | *((a0 + 5616)) = v0;
0x0001fc98 sw v1, 0x57c4(a0) | *((a0 + 5617)) = v1;
0x0001fc9c lw a0, 0x34(fp) | a0 = *(var_34h);
0x0001fca0 lw v0, 0x78(fp) | v0 = *(arg_78h);
0x0001fca4 lw v1, 0x7c(fp) | v1 = *(arg_7ch);
0x0001fca8 sw v0, 0x57c8(a0) | *((a0 + 5618)) = v0;
0x0001fcac sw v1, 0x57cc(a0) | *((a0 + 5619)) = v1;
0x0001fcb0 lw a0, 0x34(fp) | a0 = *(var_34h);
0x0001fcb4 lw v0, 0x88(fp) | v0 = *(arg_88h);
0x0001fcb8 lw v1, 0x8c(fp) | v1 = *(arg_8ch);
0x0001fcbc sw v0, 0x57d0(a0) | *((a0 + 5620)) = v0;
0x0001fcc0 sw v1, 0x57d4(a0) | *((a0 + 5621)) = v1;
0x0001fcc4 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fcc8 lw v1, 0x98(fp) | v1 = *(arg_98h);
0x0001fccc sw v1, 0x5900(v0) | *((v0 + 5696)) = v1;
0x0001fcd0 lw v0, -0x7b94(gp) | v0 = *(gp);
0x0001fcd4 lw v0, (v0) | v0 = *(v0);
0x0001fcd8 lw v1, 0x34(fp) | v1 = *(var_34h);
0x0001fcdc addiu v1, v1, 8 | v1 += 8;
0x0001fce0 move a0, v1 | a0 = v1;
0x0001fce4 move a1, zero | a1 = 0;
0x0001fce8 move t9, v0 | t9 = v0;
0x0001fcec jalr t9 | t9 ();
0x0001fcf0 nop |
0x0001fcf4 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fcf8 lw v0, -0x7b94(gp) | v0 = *(gp);
0x0001fcfc lw v0, (v0) | v0 = *(v0);
0x0001fd00 lw v1, 0x34(fp) | v1 = *(var_34h);
0x0001fd04 move a0, v1 | a0 = v1;
0x0001fd08 move a1, zero | a1 = 0;
0x0001fd0c move t9, v0 | t9 = v0;
0x0001fd10 jalr t9 | t9 ();
0x0001fd14 nop |
0x0001fd18 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fd1c lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fd20 move a0, zero | a0 = 0;
0x0001fd24 move a1, zero | a1 = 0;
0x0001fd28 sw a0, 0x5910(v0) | *((v0 + 5700)) = a0;
0x0001fd2c sw a1, 0x5914(v0) | *((v0 + 5701)) = a1;
0x0001fd30 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fd34 lw v1, 0x20(fp) | v1 = *(var_20h);
0x0001fd38 sw v1, 0x14(v0) | *((v0 + 5)) = v1;
0x0001fd3c lw a0, 0x34(fp) | a0 = *(var_34h);
0x0001fd40 lw v0, 0x70(fp) | v0 = *(arg_70h);
0x0001fd44 lw v1, 0x74(fp) | v1 = *(arg_74h);
0x0001fd48 sw v0, 0x57b8(a0) | *((a0 + 5614)) = v0;
0x0001fd4c sw v1, 0x57bc(a0) | *((a0 + 5615)) = v1;
0x0001fd50 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fd54 addiu v0, v0, 0x5730 | v0 += 0x5730;
0x0001fd58 move a0, v0 | a0 = v0;
0x0001fd5c lw a1, 0x68(fp) | a1 = *(arg_68h);
0x0001fd60 addiu a2, zero, 0x80 | a2 = 0x80;
0x0001fd64 lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x0001fd68 move t9, v0 | t9 = v0;
0x0001fd6c jalr t9 | t9 ();
0x0001fd70 nop |
0x0001fd74 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fd78 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fd7c addiu v0, v0, 0x18 | v0 += 0x18;
0x0001fd80 move a0, v0 | a0 = v0;
0x0001fd84 lw a1, 0x54(fp) | a1 = *(arg_54h);
0x0001fd88 addiu a2, zero, 0x2710 | a2 = 0x2710;
0x0001fd8c lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x0001fd90 move t9, v0 | t9 = v0;
0x0001fd94 jalr t9 | t9 ();
0x0001fd98 nop |
0x0001fd9c lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fda0 lw v0, 0x90(fp) | v0 = *(arg_90h);
| if (v0 != 0) {
0x0001fda4 beqz v0, 0x1fdd4 |
0x0001fda8 nop |
0x0001fdac lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fdb0 addiu v0, v0, 0x2729 | v0 += 0x2729;
0x0001fdb4 move a0, v0 | a0 = v0;
0x0001fdb8 lw a1, 0x90(fp) | a1 = *(arg_90h);
0x0001fdbc addiu a2, zero, 0x1000 | a2 = 0x1000;
0x0001fdc0 lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x0001fdc4 move t9, v0 | t9 = v0;
0x0001fdc8 jalr t9 | t9 ();
0x0001fdcc nop |
0x0001fdd0 lw gp, 0x10(fp) | gp = *(var_10h);
| }
0x0001fdd4 lw v0, 0x58(fp) | v0 = *(arg_58h);
| if (v0 != 0) {
0x0001fdd8 beqz v0, 0x1fe28 |
0x0001fddc nop |
0x0001fde0 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fde4 lw v1, 0x34(fp) | v1 = *(var_34h);
0x0001fde8 addiu v1, v1, 0x5920 | v1 += 0x5920;
0x0001fdec sw v1, 0x10(v0) | *((v0 + 4)) = v1;
0x0001fdf0 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fdf4 sw zero, 0x58f4(v0) | *((v0 + 5693)) = 0;
0x0001fdf8 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fdfc lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x0001fe00 move a0, v0 | a0 = v0;
0x0001fe04 lw a1, 0x58(fp) | a1 = *(arg_58h);
0x0001fe08 lw a2, 0x20(fp) | a2 = *(var_20h);
0x0001fe0c lw v0, -0x760c(gp) | v0 = sym.imp.memcpy;
0x0001fe10 move t9, v0 | t9 = v0;
0x0001fe14 jalr t9 | t9 ();
0x0001fe18 nop |
0x0001fe1c lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fe20 b 0x1fe7c | goto label_3;
0x0001fe24 nop |
| }
0x0001fe28 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fe2c addiu v1, zero, 1 | v1 = 1;
0x0001fe30 sw v1, 0x58f4(v0) | *((v0 + 5693)) = v1;
0x0001fe34 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fe38 sw zero, 0x10(v0) | *((v0 + 4)) = 0;
0x0001fe3c lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fe40 lw v1, 0x98(fp) | v1 = *(arg_98h);
0x0001fe44 lw a0, 0x3970(v1) | a0 = *((v1 + 3676));
0x0001fe48 lw a1, 0x3974(v1) | a1 = *((v1 + 3677));
0x0001fe4c sw a0, 0x5918(v0) | *((v0 + 5702)) = a0;
0x0001fe50 sw a1, 0x591c(v0) | *((v0 + 5703)) = a1;
0x0001fe54 addiu a2, zero, 1 | a2 = 1;
0x0001fe58 move a3, zero | a3 = 0;
0x0001fe5c addu v0, a0, a2 | v0 = a0 + a2;
0x0001fe60 sltu t0, v0, a0 | t0 = (v0 < a0) ? 1 : 0;
0x0001fe64 addu v1, a1, a3 | v1 = a1 + a3;
0x0001fe68 addu a0, t0, v1 | a0 = t0 + v1;
0x0001fe6c move v1, a0 | v1 = a0;
0x0001fe70 lw a0, 0x98(fp) | a0 = *(arg_98h);
0x0001fe74 sw v0, 0x3970(a0) | *((a0 + 3676)) = v0;
0x0001fe78 sw v1, 0x3974(a0) | *((a0 + 3677)) = v1;
| label_3:
0x0001fe7c lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fe80 addiu v0, v0, 0x57ec | v0 += 0x57ec;
0x0001fe84 move a0, v0 | a0 = v0;
0x0001fe88 lw v0, -0x7708(gp) | v0 = sym.singleListCreate;
0x0001fe8c move t9, v0 | t9 = v0;
0x0001fe90 jalr t9 | t9 ();
0x0001fe94 nop |
0x0001fe98 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fe9c sw v0, 0x28(fp) | *(var_28h) = v0;
0x0001fea0 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 != 0) {
0x0001fea4 beqz v0, 0x1febc |
0x0001fea8 nop |
0x0001feac lw v0, 0x28(fp) | v0 = *(var_28h);
0x0001feb0 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0001feb4 b 0x1ffd8 | goto label_2;
0x0001feb8 nop |
| }
0x0001febc lw s0, 0x34(fp) | s0 = *(var_34h);
0x0001fec0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0001fec4 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x0001fec8 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0001fecc lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0001fed0 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0001fed4 move a0, v0 | a0 = v0;
0x0001fed8 move a1, v1 | a1 = v1;
0x0001fedc move a2, zero | a2 = 0;
0x0001fee0 move t9, a3 | t9 = a3;
0x0001fee4 jalr t9 | t9 ();
0x0001fee8 nop |
0x0001feec lw gp, 0x10(fp) | gp = *(var_10h);
0x0001fef0 sw v0, 0x5908(s0) | *((s0 + 5698)) = v0;
0x0001fef4 sw v1, 0x590c(s0) | *((s0 + 5699)) = v1;
0x0001fef8 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001fefc lw a0, 0x5908(v0) | a0 = *((v0 + 5698));
0x0001ff00 lw a1, 0x590c(v0) | a1 = *((v0 + 5699));
0x0001ff04 move v0, a0 | v0 = a0;
0x0001ff08 or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x0001ff0c bnez v0, 0x1ff24 |
0x0001ff10 nop |
0x0001ff14 addiu v0, zero, 0xd | v0 = 0xd;
0x0001ff18 sw v0, 0x18(fp) | *(var_18h) = v0;
0x0001ff1c b 0x1ffd8 | goto label_2;
0x0001ff20 nop |
| }
0x0001ff24 addiu v0, fp, 0x38 | v0 = fp + 0x38;
0x0001ff28 lw a0, 0x60(fp) | a0 = *(arg_60h);
0x0001ff2c lw a1, 0x64(fp) | a1 = *(arg_64h);
0x0001ff30 move a2, v0 | a2 = v0;
0x0001ff34 lw v0, -0x7a64(gp) | v0 = sym.kinesisVideoStreamGetStreamInfo;
0x0001ff38 move t9, v0 | t9 = v0;
0x0001ff3c jalr t9 | t9 ();
0x0001ff40 nop |
0x0001ff44 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001ff48 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x0001ff4c lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 != 0) {
0x0001ff50 beqz v0, 0x1ff68 |
0x0001ff54 nop |
0x0001ff58 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0001ff5c sw v0, 0x18(fp) | *(var_18h) = v0;
0x0001ff60 b 0x1ffd8 | goto label_2;
0x0001ff64 nop |
| }
0x0001ff68 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001ff6c addiu v1, v0, 0x57f0 | v1 = v0 + 0x57f0;
0x0001ff70 lw v0, 0x38(fp) | v0 = *(var_38h);
0x0001ff74 addiu v0, v0, 4 | v0 += 4;
0x0001ff78 move a0, v1 | a0 = v1;
0x0001ff7c move a1, v0 | a1 = v0;
0x0001ff80 addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x0001ff84 lw v0, -0x7c74(gp) | v0 = sym.imp.strncpy;
0x0001ff88 move t9, v0 | t9 = v0;
0x0001ff8c jalr t9 | t9 ();
0x0001ff90 nop |
0x0001ff94 lw gp, 0x10(fp) | gp = *(var_10h);
0x0001ff98 lw v1, 0x34(fp) | v1 = *(var_34h);
0x0001ff9c lw v0, 0x34(fp) | v0 = *(var_34h);
0x0001ffa0 addiu v0, v0, 0x5904 | v0 += 0x5904;
0x0001ffa4 move a0, v1 | a0 = v1;
0x0001ffa8 move a1, v0 | a1 = v0;
0x0001ffac lw v0, -0x758c(gp) | v0 = sym.createCurlResponse;
0x0001ffb0 move t9, v0 | t9 = v0;
0x0001ffb4 jalr t9 | t9 ();
0x0001ffb8 nop |
0x0001ffbc lw gp, 0x10(fp) | gp = *(var_10h);
0x0001ffc0 sw v0, 0x30(fp) | *(var_30h) = v0;
0x0001ffc4 lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 != 0) {
0x0001ffc8 beqz v0, 0x1ffd8 |
0x0001ffcc nop |
0x0001ffd0 lw v0, 0x30(fp) | v0 = *(var_30h);
0x0001ffd4 sw v0, 0x18(fp) | *(var_18h) = v0;
| }
| label_2:
0x0001ffd8 lw v0, 0x18(fp) | v0 = *(var_18h);
| if (v0 != 0) {
0x0001ffdc beqz v0, 0x20004 |
0x0001ffe0 nop |
0x0001ffe4 addiu v0, fp, 0x34 | v0 = fp + 0x34;
0x0001ffe8 move a0, v0 | a0 = v0;
0x0001ffec lw v0, -0x7858(gp) | v0 = sym.freeCurlRequest;
0x0001fff0 move t9, v0 | t9 = v0;
0x0001fff4 jalr t9 | t9 ();
0x0001fff8 nop |
0x0001fffc lw gp, 0x10(fp) | gp = *(var_10h);
0x00020000 sw zero, 0x34(fp) | *(var_34h) = 0;
| }
0x00020004 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
| if (v0 != 0) {
0x00020008 beqz v0, 0x2001c |
0x0002000c nop |
0x00020010 lw v1, 0x34(fp) | v1 = *(var_34h);
0x00020014 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x00020018 sw v1, (v0) | *(v0) = v1;
| }
0x0002001c lw v0, 0x18(fp) | v0 = *(var_18h);
0x00020020 move sp, fp |
0x00020024 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00020028 lw fp, 0x48(sp) | fp = *(var_48h);
0x0002002c lw s0, 0x44(sp) | s0 = *(var_44h);
0x00020030 addiu sp, sp, 0x50 |
0x00020034 jr ra | return v0;
0x00020038 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x205a0 */
| #include <stdint.h>
|
; (fcn) sym.createCurlResponse () | void createCurlResponse () {
0x000205a0 lui gp, 7 |
0x000205a4 addiu gp, gp, 0xb30 |
0x000205a8 addu gp, gp, t9 | gp += t9;
0x000205ac addiu sp, sp, -0x58 |
0x000205b0 sw ra, 0x54(sp) | *(var_54h) = ra;
0x000205b4 sw fp, 0x50(sp) | *(var_50h) = fp;
0x000205b8 sw s0, 0x4c(sp) | *(var_4ch) = s0;
0x000205bc move fp, sp | fp = sp;
0x000205c0 sw gp, 0x20(sp) | *(var_20h) = gp;
0x000205c4 sw a0, 0x58(fp) | *(arg_58h) = a0;
0x000205c8 sw a1, 0x5c(fp) | *(arg_5ch) = a1;
0x000205cc sw zero, 0x28(fp) | *(var_28h) = 0;
0x000205d0 sw zero, 0x44(fp) | *(var_44h) = 0;
0x000205d4 sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x000205d8 sw zero, 0x30(fp) | *(var_30h) = 0;
0x000205dc sw zero, 0x34(fp) | *(var_34h) = 0;
0x000205e0 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
| if (v0 != 0) {
0x000205e4 beqz v0, 0x2061c |
0x000205e8 nop |
0x000205ec lw v0, 0x58(fp) | v0 = *(arg_58h);
| if (v0 == 0) {
0x000205f0 beqz v0, 0x2061c | goto label_0;
| }
0x000205f4 nop |
0x000205f8 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x000205fc lw v0, 0x5900(v0) | v0 = *((v0 + 5696));
| if (v0 == 0) {
0x00020600 beqz v0, 0x2061c | goto label_0;
| }
0x00020604 nop |
0x00020608 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x0002060c lw v0, 0x5900(v0) | v0 = *((v0 + 5696));
0x00020610 lw v0, 0x3930(v0) | v0 = *((v0 + 3660));
| if (v0 != 0) {
0x00020614 bnez v0, 0x2062c | goto label_1;
| }
0x00020618 nop |
| }
| label_0:
0x0002061c addiu v0, zero, 1 | v0 = 1;
0x00020620 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00020624 b 0x208cc | goto label_2;
0x00020628 nop |
| label_1:
0x0002062c lw v0, 0x58(fp) | v0 = *(arg_58h);
0x00020630 lw a0, 0x58f8(v0) | a0 = *((v0 + 5694));
0x00020634 lw a1, 0x58fc(v0) | a1 = *((v0 + 5695));
0x00020638 move v0, a0 | v0 = a0;
0x0002063c or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00020640 bnez v0, 0x20658 |
0x00020644 nop |
0x00020648 addiu v0, zero, 2 | v0 = 2;
0x0002064c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00020650 b 0x208cc | goto label_2;
0x00020654 nop |
| }
0x00020658 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x0002065c lw v0, 0x5900(v0) | v0 = *((v0 + 5696));
0x00020660 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x00020664 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00020668 lw v0, 0x3930(v0) | v0 = *((v0 + 3660));
0x0002066c sw v0, 0x38(fp) | *(var_38h) = v0;
0x00020670 lw v0, -0x7620(gp) | v0 = *(gp);
0x00020674 lw v0, (v0) | v0 = *(v0);
0x00020678 addiu a0, zero, 1 | a0 = 1;
0x0002067c addiu a1, zero, 0x1148 | a1 = 0x1148;
0x00020680 move t9, v0 | t9 = v0;
0x00020684 jalr t9 | t9 ();
0x00020688 nop |
0x0002068c lw gp, 0x20(fp) | gp = *(var_20h);
0x00020690 sw v0, 0x44(fp) | *(var_44h) = v0;
0x00020694 lw v0, 0x44(fp) | v0 = *(var_44h);
| if (v0 == 0) {
0x00020698 bnez v0, 0x206b0 |
0x0002069c nop |
0x000206a0 addiu v0, zero, 4 | v0 = 4;
0x000206a4 sw v0, 0x28(fp) | *(var_28h) = v0;
0x000206a8 b 0x208cc | goto label_2;
0x000206ac nop |
| }
0x000206b0 lw v0, 0x44(fp) | v0 = *(var_44h);
0x000206b4 sw zero, 0x12c(v0) | *(v0) = 0;
0x000206b8 lw v0, 0x44(fp) | v0 = *(var_44h);
0x000206bc sw zero, 0x130(v0) | *(v0) = 0;
0x000206c0 lw v0, 0x44(fp) | v0 = *(var_44h);
0x000206c4 addiu v1, zero, 1 | v1 = 1;
0x000206c8 sw v1, 0x134(v0) | *(v0) = v1;
0x000206cc lw v0, 0x44(fp) | v0 = *(var_44h);
0x000206d0 sw zero, 0x138(v0) | *(v0) = 0;
0x000206d4 lw v0, 0x44(fp) | v0 = *(var_44h);
0x000206d8 sb zero, 0x13c(v0) | *(v0) = 0;
0x000206dc lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str.KVS_DEBUG_DUMP_DATA_FILE_DIR */
0x000206e0 addiu a0, v0, 0x3db0 | a0 = v0 + 0x3db0;
0x000206e4 lw v0, -0x7780(gp) | v0 = sym.imp.getenv;
0x000206e8 move t9, v0 | t9 = v0;
0x000206ec jalr t9 | t9 ();
0x000206f0 nop |
0x000206f4 lw gp, 0x20(fp) | gp = *(var_20h);
0x000206f8 sw v0, 0x30(fp) | *(var_30h) = v0;
0x000206fc lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 != 0) {
0x00020700 beqz v0, 0x207e8 |
0x00020704 nop |
0x00020708 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x0002070c lw v0, 0x58f4(v0) | v0 = *((v0 + 5693));
| if (v0 == 0) {
0x00020710 beqz v0, 0x207e8 | goto label_3;
| }
0x00020714 nop |
0x00020718 lw v0, 0x44(fp) | v0 = *(var_44h);
0x0002071c addiu a0, v0, 0x13c | a0 = v0 + aav.0x0000013c;
0x00020720 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x00020724 addiu a1, v0, 0x57f0 | a1 = v0 + 0x57f0;
0x00020728 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x0002072c lw v1, 0x591c(v0) | v1 = *((v0 + 5703));
0x00020730 lw v0, 0x5918(v0) | v0 = *((v0 + 5702));
0x00020734 sw a1, 0x10(sp) | *(var_10h) = a1;
0x00020738 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0002073c sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00020740 addiu a1, zero, 0x1001 | a1 = 0x1001;
0x00020744 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str._s__s__llu.mkv */
0x00020748 addiu a2, v0, 0x3dd0 | a2 = v0 + 0x3dd0;
0x0002074c lw a3, 0x30(fp) | a3 = *(var_30h);
0x00020750 lw v0, -0x7b44(gp) | v0 = sym.imp.snprintf;
0x00020754 move t9, v0 | t9 = v0;
0x00020758 jalr t9 | t9 ();
0x0002075c nop |
0x00020760 lw gp, 0x20(fp) | gp = *(var_20h);
0x00020764 sw v0, 0x34(fp) | *(var_34h) = v0;
0x00020768 lw v0, 0x34(fp) | v0 = *(var_34h);
0x0002076c sltiu v0, v0, 0x1001 | v0 = (v0 < 0x1001) ? 1 : 0;
| if (v0 == 0) {
0x00020770 bnez v0, 0x2078c |
0x00020774 nop |
0x00020778 lui v0, 0x4000 | v0 = 0x40000007;
0x0002077c ori v0, v0, 7 |
0x00020780 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00020784 b 0x208cc | goto label_2;
0x00020788 nop |
| }
0x0002078c lw v0, 0x44(fp) | v0 = *(var_44h);
0x00020790 addiu v1, zero, 1 | v1 = 1;
0x00020794 sw v1, 0x138(v0) | *(v0) = v1;
0x00020798 lw v0, 0x44(fp) | v0 = *(var_44h);
0x0002079c sb zero, 0x113c(v0) | *((v0 + 4412)) = 0;
0x000207a0 lw v0, 0x44(fp) | v0 = *(var_44h);
0x000207a4 addiu v0, v0, 0x13c | v0 += aav.0x0000013c;
0x000207a8 move a0, v0 | a0 = v0;
0x000207ac move a2, zero | a2 = 0;
0x000207b0 move a3, zero | a3 = 0;
0x000207b4 lw v0, -0x7744(gp) | v0 = sym.createFile;
0x000207b8 move t9, v0 | t9 = v0;
0x000207bc jalr t9 | t9 ();
0x000207c0 nop |
0x000207c4 lw gp, 0x20(fp) | gp = *(var_20h);
0x000207c8 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x000207cc lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 == 0) {
0x000207d0 beqz v0, 0x207e8 | goto label_3;
| }
0x000207d4 nop |
0x000207d8 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x000207dc sw v0, 0x28(fp) | *(var_28h) = v0;
0x000207e0 b 0x208cc | goto label_2;
0x000207e4 nop |
| }
| label_3:
0x000207e8 lw s0, 0x44(fp) | s0 = *(var_44h);
0x000207ec lw v0, 0x38(fp) | v0 = *(var_38h);
0x000207f0 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x000207f4 lw v0, 0x38(fp) | v0 = *(var_38h);
0x000207f8 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x000207fc lw v0, 8(v0) | v0 = *((v0 + 2));
0x00020800 move a0, v0 | a0 = v0;
0x00020804 move a1, v1 | a1 = v1;
0x00020808 addiu a2, zero, 1 | a2 = 1;
0x0002080c move t9, a3 | t9 = a3;
0x00020810 jalr t9 | t9 ();
0x00020814 nop |
0x00020818 lw gp, 0x20(fp) | gp = *(var_20h);
0x0002081c sw v0, 0x1140(s0) | *((s0 + 1104)) = v0;
0x00020820 sw v1, 0x1144(s0) | *((s0 + 1105)) = v1;
0x00020824 lw v0, 0x44(fp) | v0 = *(var_44h);
0x00020828 lw a0, 0x1140(v0) | a0 = *((v0 + 1104));
0x0002082c lw a1, 0x1144(v0) | a1 = *((v0 + 1105));
0x00020830 move v0, a0 | v0 = a0;
0x00020834 or v0, v0, a1 | v0 |= a1;
| if (v0 == 0) {
0x00020838 bnez v0, 0x20850 |
0x0002083c nop |
0x00020840 addiu v0, zero, 0xd | v0 = 0xd;
0x00020844 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00020848 b 0x208cc | goto label_2;
0x0002084c nop |
| }
0x00020850 lw v0, 0x44(fp) | v0 = *(var_44h);
0x00020854 lw v1, 0x58(fp) | v1 = *(arg_58h);
0x00020858 sw v1, (v0) | *(v0) = v1;
0x0002085c lw v0, 0x58(fp) | v0 = *(arg_58h);
0x00020860 addiu a0, v0, 8 | a0 = v0 + 8;
0x00020864 lw v0, 0x44(fp) | v0 = *(var_44h);
0x00020868 addiu v1, v0, 0xc | v1 = v0 + 0xc;
0x0002086c lw v0, 0x44(fp) | v0 = *(var_44h);
0x00020870 addiu v0, v0, 4 | v0 += 4;
0x00020874 lw a1, -0x7d64(gp) | a1 = sym.writeHeaderCallback;
0x00020878 sw a1, 0x10(sp) | *(var_10h) = a1;
0x0002087c lw a1, -0x76b8(gp) | a1 = sym.postReadCallback;
0x00020880 sw a1, 0x14(sp) | *(var_14h) = a1;
0x00020884 lw a1, -0x7e5c(gp) | a1 = sym.postWriteCallback;
0x00020888 sw a1, 0x18(sp) | *(var_18h) = a1;
0x0002088c lw a1, -0x7750(gp) | a1 = sym.postResponseWriteCallback;
0x00020890 sw a1, 0x1c(sp) | *(var_1ch) = a1;
0x00020894 move a1, v1 | a1 = v1;
0x00020898 move a2, v0 | a2 = v0;
0x0002089c lw a3, 0x58(fp) | a3 = *(arg_58h);
0x000208a0 lw v0, -0x7580(gp) | v0 = sym.initializeCurlSession;
0x000208a4 move t9, v0 | t9 = v0;
0x000208a8 jalr t9 | t9 ();
0x000208ac nop |
0x000208b0 lw gp, 0x20(fp) | gp = *(var_20h);
0x000208b4 sw v0, 0x40(fp) | *(var_40h) = v0;
0x000208b8 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 != 0) {
0x000208bc beqz v0, 0x208cc |
0x000208c0 nop |
0x000208c4 lw v0, 0x40(fp) | v0 = *(var_40h);
0x000208c8 sw v0, 0x28(fp) | *(var_28h) = v0;
| }
| label_2:
0x000208cc lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 != 0) {
0x000208d0 beqz v0, 0x208f8 |
0x000208d4 nop |
0x000208d8 addiu v0, fp, 0x44 | v0 = fp + 0x44;
0x000208dc move a0, v0 | a0 = v0;
0x000208e0 lw v0, -0x7924(gp) | v0 = sym.freeCurlResponse;
0x000208e4 move t9, v0 | t9 = v0;
0x000208e8 jalr t9 | t9 ();
0x000208ec nop |
0x000208f0 lw gp, 0x20(fp) | gp = *(var_20h);
0x000208f4 sw zero, 0x44(fp) | *(var_44h) = 0;
| }
0x000208f8 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
| if (v0 != 0) {
0x000208fc beqz v0, 0x20910 |
0x00020900 nop |
0x00020904 lw v1, 0x44(fp) | v1 = *(var_44h);
0x00020908 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
0x0002090c sw v1, (v0) | *(v0) = v1;
| }
0x00020910 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00020914 move sp, fp |
0x00020918 lw ra, 0x54(sp) | ra = *(var_54h);
0x0002091c lw fp, 0x50(sp) | fp = *(var_50h);
0x00020920 lw s0, 0x4c(sp) | s0 = *(var_4ch);
0x00020924 addiu sp, sp, 0x58 |
0x00020928 jr ra | return v0;
0x0002092c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0xd574 */
| #include <stdint.h>
|
; (fcn) sym.getDeviceCertificateAggregate () | void getDeviceCertificateAggregate () {
0x0000d574 addiu sp, sp, -0x38 |
0x0000d578 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000d57c sw fp, 0x30(sp) | *(var_30h) = fp;
0x0000d580 move fp, sp | fp = sp;
0x0000d584 sw a0, 0x38(fp) | *(arg_38h) = a0;
0x0000d588 sw a1, 0x3c(fp) | *(arg_3ch) = a1;
0x0000d58c sw a2, 0x40(fp) | *(arg_40h) = a2;
0x0000d590 sw a3, 0x44(fp) | *(arg_44h) = a3;
0x0000d594 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000d598 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x0000d59c sw v0, 0x28(fp) | *(var_28h) = v0;
0x0000d5a0 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 == 0) {
0x0000d5a4 bnez v0, 0xd5bc |
0x0000d5a8 nop |
0x0000d5ac addiu v0, zero, 2 | v0 = 2;
0x0000d5b0 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000d5b4 b 0xd6c4 | goto label_0;
0x0000d5b8 nop |
| }
0x0000d5bc sw zero, 0x24(fp) | *(var_24h) = 0;
0x0000d5c0 b 0xd6ac | goto label_1;
0x0000d5c4 nop |
| do {
0x0000d5c8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000d5cc lw v1, 0x110(v0) | v1 = *(v0);
0x0000d5d0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000d5d4 sll v0, v0, 3 | v0 <<= 3;
0x0000d5d8 sll a0, v0, 2 | a0 = v0 << 2;
0x0000d5dc addu v0, v0, a0 | v0 += a0;
0x0000d5e0 addu v0, v1, v0 | v0 = v1 + v0;
0x0000d5e4 lw v0, 0x14(v0) | v0 = *((v0 + 5));
| if (v0 != 0) {
0x0000d5e8 beqz v0, 0xd6a0 |
0x0000d5ec nop |
0x0000d5f0 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000d5f4 lw v1, 0x110(v0) | v1 = *(v0);
0x0000d5f8 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000d5fc sll v0, v0, 3 | v0 <<= 3;
0x0000d600 sll a0, v0, 2 | a0 = v0 << 2;
0x0000d604 addu v0, v0, a0 | v0 += a0;
0x0000d608 addu v0, v1, v0 | v0 = v1 + v0;
0x0000d60c lw t0, 0x14(v0) | t0 = *((v0 + 5));
0x0000d610 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000d614 lw v1, 0x110(v0) | v1 = *(v0);
0x0000d618 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000d61c sll v0, v0, 3 | v0 <<= 3;
0x0000d620 sll a0, v0, 2 | a0 = v0 << 2;
0x0000d624 addu v0, v0, a0 | v0 += a0;
0x0000d628 addu v0, v1, v0 | v0 = v1 + v0;
0x0000d62c lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0000d630 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000d634 lw a0, 0x48(fp) | a0 = *(arg_48h);
0x0000d638 sw a0, 0x10(sp) | *(var_10h) = a0;
0x0000d63c move a0, v0 | a0 = v0;
0x0000d640 move a1, v1 | a1 = v1;
0x0000d644 lw a2, 0x40(fp) | a2 = *(arg_40h);
0x0000d648 lw a3, 0x44(fp) | a3 = *(arg_44h);
0x0000d64c move t9, t0 | t9 = t0;
0x0000d650 jalr t9 | t9 ();
0x0000d654 nop |
0x0000d658 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000d65c lw v1, 0x20(fp) | v1 = *(var_20h);
0x0000d660 lui v0, 0x1500 | v0 = 0x15000001;
0x0000d664 ori v0, v0, 1 |
| if (v1 == v0) {
0x0000d668 bne v1, v0, 0xd67c |
0x0000d66c nop |
0x0000d670 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000d674 b 0xd6c4 | goto label_0;
0x0000d678 nop |
| }
0x0000d67c lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000d680 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x0000d684 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x0000d688 beqz v0, 0xd6a0 | goto label_2;
| }
0x0000d68c nop |
0x0000d690 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0000d694 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000d698 b 0xd6c4 | goto label_0;
0x0000d69c nop |
| }
| label_2:
0x0000d6a0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000d6a4 addiu v0, v0, 1 | v0++;
0x0000d6a8 sw v0, 0x24(fp) | *(var_24h) = v0;
| label_1:
0x0000d6ac lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000d6b0 lw v1, 0x114(v0) | v1 = *(v0);
0x0000d6b4 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000d6b8 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000d6bc bnez v0, 0xd5c8 |
| } while (v0 != 0);
0x0000d6c0 nop |
| label_0:
0x0000d6c4 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000d6c8 move sp, fp |
0x0000d6cc lw ra, 0x34(sp) | ra = *(var_34h);
0x0000d6d0 lw fp, 0x30(sp) | fp = *(var_30h);
0x0000d6d4 addiu sp, sp, 0x38 |
0x0000d6d8 jr ra | return v0;
0x0000d6dc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0xe34c */
| #include <stdint.h>
|
; (fcn) sym.getStreamingEndpointAggregate () | void getStreamingEndpointAggregate () {
0x0000e34c addiu sp, sp, -0x38 |
0x0000e350 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000e354 sw fp, 0x30(sp) | *(var_30h) = fp;
0x0000e358 move fp, sp | fp = sp;
0x0000e35c sw a0, 0x38(fp) | *(arg_38h) = a0;
0x0000e360 sw a1, 0x3c(fp) | *(arg_3ch) = a1;
0x0000e364 sw a2, 0x40(fp) | *(arg_40h) = a2;
0x0000e368 sw a3, 0x44(fp) | *(arg_44h) = a3;
0x0000e36c sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000e370 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x0000e374 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0000e378 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 == 0) {
0x0000e37c bnez v0, 0xe394 |
0x0000e380 nop |
0x0000e384 addiu v0, zero, 2 | v0 = 2;
0x0000e388 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000e38c b 0xe49c | goto label_0;
0x0000e390 nop |
| }
0x0000e394 sw zero, 0x24(fp) | *(var_24h) = 0;
0x0000e398 b 0xe484 | goto label_1;
0x0000e39c nop |
| do {
0x0000e3a0 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000e3a4 lw v1, 0x118(v0) | v1 = *(v0);
0x0000e3a8 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e3ac sll v0, v0, 4 | v0 <<= 4;
0x0000e3b0 sll a0, v0, 2 | a0 = v0 << 2;
0x0000e3b4 subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x0000e3b8 addu v0, v1, v0 | v0 = v1 + v0;
0x0000e3bc lw v0, 0x18(v0) | v0 = *((v0 + 6));
| if (v0 != 0) {
0x0000e3c0 beqz v0, 0xe478 |
0x0000e3c4 nop |
0x0000e3c8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000e3cc lw v1, 0x118(v0) | v1 = *(v0);
0x0000e3d0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e3d4 sll v0, v0, 4 | v0 <<= 4;
0x0000e3d8 sll a0, v0, 2 | a0 = v0 << 2;
0x0000e3dc subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x0000e3e0 addu v0, v1, v0 | v0 = v1 + v0;
0x0000e3e4 lw t0, 0x18(v0) | t0 = *((v0 + 6));
0x0000e3e8 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000e3ec lw v1, 0x118(v0) | v1 = *(v0);
0x0000e3f0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e3f4 sll v0, v0, 4 | v0 <<= 4;
0x0000e3f8 sll a0, v0, 2 | a0 = v0 << 2;
0x0000e3fc subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x0000e400 addu v0, v1, v0 | v0 = v1 + v0;
0x0000e404 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0000e408 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000e40c lw a0, 0x48(fp) | a0 = *(arg_48h);
0x0000e410 sw a0, 0x10(sp) | *(var_10h) = a0;
0x0000e414 move a0, v0 | a0 = v0;
0x0000e418 move a1, v1 | a1 = v1;
0x0000e41c lw a2, 0x40(fp) | a2 = *(arg_40h);
0x0000e420 lw a3, 0x44(fp) | a3 = *(arg_44h);
0x0000e424 move t9, t0 | t9 = t0;
0x0000e428 jalr t9 | t9 ();
0x0000e42c nop |
0x0000e430 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000e434 lw v1, 0x20(fp) | v1 = *(var_20h);
0x0000e438 lui v0, 0x1500 | v0 = 0x15000001;
0x0000e43c ori v0, v0, 1 |
| if (v1 == v0) {
0x0000e440 bne v1, v0, 0xe454 |
0x0000e444 nop |
0x0000e448 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000e44c b 0xe49c | goto label_0;
0x0000e450 nop |
| }
0x0000e454 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000e458 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x0000e45c lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x0000e460 beqz v0, 0xe478 | goto label_2;
| }
0x0000e464 nop |
0x0000e468 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0000e46c sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000e470 b 0xe49c | goto label_0;
0x0000e474 nop |
| }
| label_2:
0x0000e478 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e47c addiu v0, v0, 1 | v0++;
0x0000e480 sw v0, 0x24(fp) | *(var_24h) = v0;
| label_1:
0x0000e484 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000e488 lw v1, 0x11c(v0) | v1 = *(v0);
0x0000e48c lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000e490 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000e494 bnez v0, 0xe3a0 |
| } while (v0 != 0);
0x0000e498 nop |
| label_0:
0x0000e49c lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000e4a0 move sp, fp |
0x0000e4a4 lw ra, 0x34(sp) | ra = *(var_34h);
0x0000e4a8 lw fp, 0x30(sp) | fp = *(var_30h);
0x0000e4ac addiu sp, sp, 0x38 |
0x0000e4b0 jr ra | return v0;
0x0000e4b4 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x41ba0 */
| #include <stdint.h>
|
; (fcn) sym.heapInitialize () | void heapInitialize () {
0x00041ba0 lui gp, 5 |
0x00041ba4 addiu gp, gp, -0xad0 |
0x00041ba8 addu gp, gp, t9 | gp += t9;
0x00041bac addiu sp, sp, -0x50 |
0x00041bb0 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00041bb4 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00041bb8 move fp, sp | fp = sp;
0x00041bbc sw gp, 0x20(sp) | *(var_20h) = gp;
0x00041bc0 sw a0, 0x50(fp) | *(arg_50h) = a0;
0x00041bc4 sw a1, 0x54(fp) | *(arg_54h) = a1;
0x00041bc8 sw a2, 0x58(fp) | *(arg_58h) = a2;
0x00041bcc sw a3, 0x5c(fp) | *(arg_5ch) = a3;
0x00041bd0 sw zero, 0x28(fp) | *(var_28h) = 0;
0x00041bd4 sw zero, 0x40(fp) | *(var_40h) = 0;
0x00041bd8 sw zero, 0x44(fp) | *(var_44h) = 0;
0x00041bdc lw v0, 0x5c(fp) | v0 = *(arg_5ch);
0x00041be0 andi v0, v0, 3 | v0 &= 3;
0x00041be4 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x00041be8 lw v0, 0x60(fp) | v0 = *(arg_60h);
| if (v0 == 0) {
0x00041bec bnez v0, 0x41c04 |
0x00041bf0 nop |
0x00041bf4 addiu v0, zero, 1 | v0 = 1;
0x00041bf8 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041bfc b 0x41f18 | goto label_0;
0x00041c00 nop |
| }
0x00041c04 lw v0, 0x54(fp) | v0 = *(arg_54h);
| if (v0 == 0) {
0x00041c08 bnez v0, 0x41c40 |
0x00041c0c nop |
0x00041c10 lw v0, 0x54(fp) | v0 = *(arg_54h);
| if (v0 == 0) {
0x00041c14 bnez v0, 0x41c30 |
0x00041c18 nop |
0x00041c1c lw v1, 0x50(fp) | v1 = *(arg_50h);
0x00041c20 lui v0, 0x10 | v0 = 0x100000;
0x00041c24 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 == 0) {
0x00041c28 beqz v0, 0x41c40 | goto label_1;
| }
0x00041c2c nop |
| }
0x00041c30 addiu v0, zero, 2 | v0 = 2;
0x00041c34 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041c38 b 0x41f18 | goto label_0;
0x00041c3c nop |
| }
| label_1:
0x00041c40 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x00041c44 sltiu v0, v0, 0x65 | v0 = (v0 < 0x65) ? 1 : 0;
| if (v0 == 0) {
0x00041c48 bnez v0, 0x41c60 |
0x00041c4c nop |
0x00041c50 addiu v0, zero, 2 | v0 = 2;
0x00041c54 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041c58 b 0x41f18 | goto label_0;
0x00041c5c nop |
| }
0x00041c60 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 != 0) {
0x00041c64 beqz v0, 0x41c7c |
0x00041c68 nop |
0x00041c6c lw v1, 0x2c(fp) | v1 = *(var_2ch);
0x00041c70 addiu v0, zero, 3 | v0 = 3;
| if (v1 != v0) {
0x00041c74 bne v1, v0, 0x41c90 | goto label_2;
| }
0x00041c78 nop |
| }
0x00041c7c lui v0, 0x1000 | v0 = 0x10000001;
0x00041c80 ori v0, v0, 1 |
0x00041c84 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041c88 b 0x41f18 | goto label_0;
0x00041c8c nop |
| label_2:
0x00041c90 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041c94 lw t0, (v0) | t0 = *(v0);
0x00041c98 lw v0, 0x50(fp) | v0 = *(arg_50h);
0x00041c9c lw v1, 0x54(fp) | v1 = *(arg_54h);
0x00041ca0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00041ca4 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00041ca8 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x00041cac sw v0, 0x18(sp) | *(var_18h) = v0;
0x00041cb0 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
0x00041cb4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00041cb8 addiu a0, zero, 3 | a0 = 3;
0x00041cbc lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str.Heap */
0x00041cc0 addiu a1, v0, 0x6bb0 | a1 = v0 + 0x6bb0;
0x00041cc4 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str._s__:_Initializing_native_heap_with_limit_size__llu__spill_ratio__u___and_flags_0x_08x */
0x00041cc8 addiu a2, v0, 0x6bb8 | a2 = v0 + 0x6bb8;
0x00041ccc lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041cd0 addiu a3, v0, 0x6ce8 | a3 = v0 + 0x6ce8;
0x00041cd4 move t9, t0 | t9 = t0;
0x00041cd8 jalr t9 | t9 ();
0x00041cdc nop |
0x00041ce0 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041ce4 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
0x00041ce8 andi v0, v0, 2 | v0 &= 2;
| if (v0 != 0) {
0x00041cec beqz v0, 0x41d64 |
0x00041cf0 nop |
0x00041cf4 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041cf8 lw v0, (v0) | v0 = *(v0);
0x00041cfc addiu a0, zero, 3 | a0 = 3;
0x00041d00 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.Heap */
0x00041d04 addiu a1, v1, 0x6bb0 | a1 = v1 + 0x6bb0;
0x00041d08 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Creating_system_heap. */
0x00041d0c addiu a2, v1, 0x6c10 | a2 = v1 + 0x6c10;
0x00041d10 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041d14 addiu a3, v1, 0x6ce8 | a3 = v1 + 0x6ce8;
0x00041d18 move t9, v0 | t9 = v0;
0x00041d1c jalr t9 | t9 ();
0x00041d20 nop |
0x00041d24 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041d28 addiu v0, fp, 0x40 | v0 = fp + 0x40;
0x00041d2c move a0, v0 | a0 = v0;
0x00041d30 lw v0, -0x77dc(gp) | v0 = sym.sysHeapCreate;
0x00041d34 move t9, v0 | t9 = v0;
0x00041d38 jalr t9 | t9 ();
0x00041d3c nop |
0x00041d40 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041d44 sw v0, 0x30(fp) | *(var_30h) = v0;
0x00041d48 lw v0, 0x30(fp) | v0 = *(var_30h);
| if (v0 == 0) {
0x00041d4c beqz v0, 0x41dd4 | goto label_3;
| }
0x00041d50 nop |
0x00041d54 lw v0, 0x30(fp) | v0 = *(var_30h);
0x00041d58 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041d5c b 0x41f18 | goto label_0;
0x00041d60 nop |
| }
0x00041d64 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041d68 lw v0, (v0) | v0 = *(v0);
0x00041d6c addiu a0, zero, 3 | a0 = 3;
0x00041d70 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.Heap */
0x00041d74 addiu a1, v1, 0x6bb0 | a1 = v1 + 0x6bb0;
0x00041d78 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Creating_AIV_heap. */
0x00041d7c addiu a2, v1, 0x6c2c | a2 = v1 + 0x6c2c;
0x00041d80 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041d84 addiu a3, v1, 0x6ce8 | a3 = v1 + 0x6ce8;
0x00041d88 move t9, v0 | t9 = v0;
0x00041d8c jalr t9 | t9 ();
0x00041d90 nop |
0x00041d94 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041d98 addiu v0, fp, 0x40 | v0 = fp + 0x40;
0x00041d9c move a0, v0 | a0 = v0;
0x00041da0 lw v0, -0x75ac(gp) | v0 = sym.aivHeapCreate;
0x00041da4 move t9, v0 | t9 = v0;
0x00041da8 jalr t9 | t9 ();
0x00041dac nop |
0x00041db0 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041db4 sw v0, 0x34(fp) | *(var_34h) = v0;
0x00041db8 lw v0, 0x34(fp) | v0 = *(var_34h);
| if (v0 != 0) {
0x00041dbc beqz v0, 0x41dd4 |
0x00041dc0 nop |
0x00041dc4 lw v0, 0x34(fp) | v0 = *(var_34h);
0x00041dc8 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041dcc b 0x41f18 | goto label_0;
0x00041dd0 nop |
| }
| label_3:
0x00041dd4 lw v0, 0x5c(fp) | v0 = *(arg_5ch);
0x00041dd8 andi v0, v0, 4 | v0 &= 4;
| if (v0 != 0) {
0x00041ddc beqz v0, 0x41e74 |
0x00041de0 nop |
0x00041de4 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041de8 lw v0, (v0) | v0 = *(v0);
0x00041dec lw v1, 0x5c(fp) | v1 = *(arg_5ch);
0x00041df0 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00041df4 addiu a0, zero, 3 | a0 = 3;
0x00041df8 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.Heap */
0x00041dfc addiu a1, v1, 0x6bb0 | a1 = v1 + 0x6bb0;
0x00041e00 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Creating_hybrid_heap_with_flags:_0x_08x */
0x00041e04 addiu a2, v1, 0x6c48 | a2 = v1 + 0x6c48;
0x00041e08 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041e0c addiu a3, v1, 0x6ce8 | a3 = v1 + 0x6ce8;
0x00041e10 move t9, v0 | t9 = v0;
0x00041e14 jalr t9 | t9 ();
0x00041e18 nop |
0x00041e1c lw gp, 0x20(fp) | gp = *(var_20h);
0x00041e20 lw v1, 0x40(fp) | v1 = *(var_40h);
0x00041e24 addiu v0, fp, 0x44 | v0 = fp + 0x44;
0x00041e28 move a0, v1 | a0 = v1;
0x00041e2c lw a1, 0x58(fp) | a1 = *(arg_58h);
0x00041e30 lw a2, 0x5c(fp) | a2 = *(arg_5ch);
0x00041e34 move a3, v0 | a3 = v0;
0x00041e38 lw v0, -0x75c4(gp) | v0 = sym.hybridCreateHeap;
0x00041e3c move t9, v0 | t9 = v0;
0x00041e40 jalr t9 | t9 ();
0x00041e44 nop |
0x00041e48 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041e4c sw v0, 0x38(fp) | *(var_38h) = v0;
0x00041e50 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 != 0) {
0x00041e54 beqz v0, 0x41e6c |
0x00041e58 nop |
0x00041e5c lw v0, 0x38(fp) | v0 = *(var_38h);
0x00041e60 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041e64 b 0x41f18 | goto label_0;
0x00041e68 nop |
| }
0x00041e6c lw v0, 0x44(fp) | v0 = *(var_44h);
0x00041e70 sw v0, 0x40(fp) | *(var_40h) = v0;
| }
0x00041e74 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 == 0) {
0x00041e78 bnez v0, 0x41e90 |
0x00041e7c nop |
0x00041e80 addiu v0, zero, 0xc | v0 = 0xc;
0x00041e84 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041e88 b 0x41f18 | goto label_0;
0x00041e8c nop |
| }
0x00041e90 lw v0, 0x40(fp) | v0 = *(var_40h);
0x00041e94 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00041e98 lw v1, 0x40(fp) | v1 = *(var_40h);
0x00041e9c move a0, v1 | a0 = v1;
0x00041ea0 lw a2, 0x50(fp) | a2 = *(arg_50h);
0x00041ea4 lw a3, 0x54(fp) | a3 = *(arg_54h);
0x00041ea8 move t9, v0 | t9 = v0;
0x00041eac jalr t9 | t9 ();
0x00041eb0 nop |
0x00041eb4 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041eb8 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00041ebc lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 != 0) {
0x00041ec0 beqz v0, 0x41ed8 |
0x00041ec4 nop |
0x00041ec8 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00041ecc sw v0, 0x28(fp) | *(var_28h) = v0;
0x00041ed0 b 0x41f18 | goto label_0;
0x00041ed4 nop |
| }
0x00041ed8 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041edc lw v0, (v0) | v0 = *(v0);
0x00041ee0 addiu a0, zero, 3 | a0 = 3;
0x00041ee4 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.Heap */
0x00041ee8 addiu a1, v1, 0x6bb0 | a1 = v1 + 0x6bb0;
0x00041eec lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Heap_is_initialized_OK */
0x00041ef0 addiu a2, v1, 0x6c78 | a2 = v1 + 0x6c78;
0x00041ef4 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041ef8 addiu a3, v1, 0x6ce8 | a3 = v1 + 0x6ce8;
0x00041efc move t9, v0 | t9 = v0;
0x00041f00 jalr t9 | t9 ();
0x00041f04 nop |
0x00041f08 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041f0c lw v1, 0x40(fp) | v1 = *(var_40h);
0x00041f10 lw v0, 0x60(fp) | v0 = *(arg_60h);
0x00041f14 sw v1, (v0) | *(v0) = v1;
| label_0:
0x00041f18 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 != 0) {
0x00041f1c beqz v0, 0x41f74 |
0x00041f20 nop |
0x00041f24 lw v0, -0x7f44(gp) | v0 = *(gp);
0x00041f28 lw v0, (v0) | v0 = *(v0);
0x00041f2c addiu a0, zero, 5 | a0 = 5;
0x00041f30 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str.Heap */
0x00041f34 addiu a1, v1, 0x6bb0 | a1 = v1 + 0x6bb0;
0x00041f38 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* str._s__:_Failed_to_initialize_native_heap. */
0x00041f3c addiu a2, v1, 0x6c98 | a2 = v1 + 0x6c98;
0x00041f40 lw v1, -0x7fcc(gp) | v1 = *((gp - 8179));
| /* obj.__FUNCTION__.5484 */
0x00041f44 addiu a3, v1, 0x6ce8 | a3 = v1 + 0x6ce8;
0x00041f48 move t9, v0 | t9 = v0;
0x00041f4c jalr t9 | t9 ();
0x00041f50 nop |
0x00041f54 lw gp, 0x20(fp) | gp = *(var_20h);
0x00041f58 lw v0, 0x40(fp) | v0 = *(var_40h);
0x00041f5c move a0, v0 | a0 = v0;
0x00041f60 lw v0, -0x7d04(gp) | v0 = sym.heapRelease;
0x00041f64 move t9, v0 | t9 = v0;
0x00041f68 jalr t9 | t9 ();
0x00041f6c nop |
0x00041f70 lw gp, 0x20(fp) | gp = *(var_20h);
| }
0x00041f74 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00041f78 move sp, fp |
0x00041f7c lw ra, 0x4c(sp) | ra = *(var_4ch);
0x00041f80 lw fp, 0x48(sp) | fp = *(var_48h);
0x00041f84 addiu sp, sp, 0x50 |
0x00041f88 jr ra | return v0;
0x00041f8c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0x50ff0 */
| #include <stdint.h>
|
; (fcn) sym.stepStateMachine () | void stepStateMachine () {
0x00050ff0 lui gp, 4 |
0x00050ff4 addiu gp, gp, 0xe0 |
0x00050ff8 addu gp, gp, t9 | gp += t9;
0x00050ffc addiu sp, sp, -0x70 |
0x00051000 sw ra, 0x6c(sp) | *(var_6ch) = ra;
0x00051004 sw fp, 0x68(sp) | *(var_68h) = fp;
0x00051008 sw s1, 0x64(sp) | *(var_64h) = s1;
0x0005100c sw s0, 0x60(sp) | *(var_60h) = s0;
0x00051010 move fp, sp | fp = sp;
0x00051014 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00051018 sw a0, 0x70(fp) | *(arg_70h) = a0;
0x0005101c sw zero, 0x28(fp) | *(var_28h) = 0;
0x00051020 sw zero, 0x54(fp) | *(var_54h) = 0;
0x00051024 lw v0, 0x70(fp) | v0 = *(arg_70h);
0x00051028 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x0005102c lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x00051030 bnez v0, 0x51048 |
0x00051034 nop |
0x00051038 addiu v0, zero, 1 | v0 = 1;
0x0005103c sw v0, 0x28(fp) | *(var_28h) = v0;
0x00051040 b 0x51390 | goto label_0;
0x00051044 nop |
| }
0x00051048 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0005104c lw v1, 0x14(v0) | v1 = *((v0 + 5));
0x00051050 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00051054 sw v0, 0x30(fp) | *(var_30h) = v0;
0x00051058 sw v1, 0x34(fp) | *(var_34h) = v1;
0x0005105c lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051060 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00051064 lw v0, 0x10(v0) | v0 = *((v0 + 4));
| if (v0 == 0) {
0x00051068 bnez v0, 0x51080 |
0x0005106c nop |
0x00051070 addiu v0, zero, 1 | v0 = 1;
0x00051074 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00051078 b 0x51390 | goto label_0;
0x0005107c nop |
| }
0x00051080 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051084 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00051088 lw a3, 0x10(v0) | a3 = *((v0 + 4));
0x0005108c lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051090 lw v1, 0x14(v0) | v1 = *((v0 + 5));
0x00051094 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00051098 addiu a2, fp, 0x58 | a2 = fp + 0x58;
0x0005109c move a0, v0 | a0 = v0;
0x000510a0 move a1, v1 | a1 = v1;
0x000510a4 move t9, a3 | t9 = a3;
0x000510a8 jalr t9 | t9 ();
0x000510ac nop |
0x000510b0 lw gp, 0x20(fp) | gp = *(var_20h);
0x000510b4 sw v0, 0x38(fp) | *(var_38h) = v0;
0x000510b8 lw v0, 0x38(fp) | v0 = *(var_38h);
| if (v0 != 0) {
0x000510bc beqz v0, 0x510d4 |
0x000510c0 nop |
0x000510c4 lw v0, 0x38(fp) | v0 = *(var_38h);
0x000510c8 sw v0, 0x28(fp) | *(var_28h) = v0;
0x000510cc b 0x51390 | goto label_0;
0x000510d0 nop |
| }
0x000510d4 lw v0, 0x58(fp) | v0 = *(var_58h);
0x000510d8 lw v1, 0x5c(fp) | v1 = *(var_5ch);
0x000510dc addiu a0, fp, 0x54 | a0 = fp + 0x54;
0x000510e0 sw a0, 0x10(sp) | *(var_10h) = a0;
0x000510e4 lw a0, 0x70(fp) | a0 = *(arg_70h);
0x000510e8 move a2, v0 | a2 = v0;
0x000510ec move a3, v1 | a3 = v1;
0x000510f0 lw v0, -0x7618(gp) | v0 = sym.getStateMachineState;
0x000510f4 move t9, v0 | t9 = v0;
0x000510f8 jalr t9 | t9 ();
0x000510fc nop |
0x00051100 lw gp, 0x20(fp) | gp = *(var_20h);
0x00051104 sw v0, 0x3c(fp) | *(var_3ch) = v0;
0x00051108 lw v0, 0x3c(fp) | v0 = *(var_3ch);
| if (v0 != 0) {
0x0005110c beqz v0, 0x51124 |
0x00051110 nop |
0x00051114 lw v0, 0x3c(fp) | v0 = *(var_3ch);
0x00051118 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0005111c b 0x51390 | goto label_0;
0x00051120 nop |
| }
0x00051124 lw v0, 0x54(fp) | v0 = *(var_54h);
0x00051128 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0005112c lw v0, 8(v0) | v0 = *((v0 + 2));
0x00051130 lw a0, 0x2c(fp) | a0 = *(var_2ch);
0x00051134 move a2, v0 | a2 = v0;
0x00051138 move a3, v1 | a3 = v1;
0x0005113c lw v0, -0x7438(gp) | v0 = sym.acceptStateMachineState;
0x00051140 move t9, v0 | t9 = v0;
0x00051144 jalr t9 | t9 ();
0x00051148 nop |
0x0005114c lw gp, 0x20(fp) | gp = *(var_20h);
0x00051150 sw v0, 0x40(fp) | *(var_40h) = v0;
0x00051154 lw v0, 0x40(fp) | v0 = *(var_40h);
| if (v0 != 0) {
0x00051158 beqz v0, 0x51170 |
0x0005115c nop |
0x00051160 lw v0, 0x40(fp) | v0 = *(var_40h);
0x00051164 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00051168 b 0x51390 | goto label_0;
0x0005116c nop |
| }
0x00051170 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051174 lw a2, 4(v0) | a2 = *((v0 + 1));
0x00051178 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0005117c lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00051180 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00051184 move a0, v0 | a0 = v0;
0x00051188 move a1, v1 | a1 = v1;
0x0005118c move t9, a2 | t9 = a2;
0x00051190 jalr t9 | t9 ();
0x00051194 nop |
0x00051198 lw gp, 0x20(fp) | gp = *(var_20h);
0x0005119c sw v0, 0x48(fp) | *(var_48h) = v0;
0x000511a0 sw v1, 0x4c(fp) | *(var_4ch) = v1;
0x000511a4 lw v0, 0x54(fp) | v0 = *(var_54h);
0x000511a8 lw v1, 4(v0) | v1 = *((v0 + 1));
0x000511ac lw v0, (v0) | v0 = *(v0);
0x000511b0 lw a0, 0x2c(fp) | a0 = *(var_2ch);
0x000511b4 lw a0, 0x18(a0) | a0 = *((a0 + 6));
0x000511b8 lw a1, 4(a0) | a1 = *((a0 + 1));
0x000511bc lw a0, (a0) | a0 = *(a0);
0x000511c0 move a2, a0 | a2 = a0;
| if (v0 == a2) {
0x000511c4 bne v0, a2, 0x511d8 |
0x000511c8 nop |
0x000511cc move a0, a1 | a0 = a1;
| if (v1 == a0) {
0x000511d0 beq v1, a0, 0x51258 | goto label_1;
| }
0x000511d4 nop |
| }
0x000511d8 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x000511dc sw zero, 0x1c(v0) | *((v0 + 7)) = 0;
0x000511e0 lw a0, 0x2c(fp) | a0 = *(var_2ch);
0x000511e4 lw v0, 0x48(fp) | v0 = *(var_48h);
0x000511e8 lw v1, 0x4c(fp) | v1 = *(var_4ch);
0x000511ec sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x000511f0 sw v1, 0x24(a0) | *((a0 + 9)) = v1;
0x000511f4 lw v0, -0x7f44(gp) | v0 = *(gp);
0x000511f8 lw t0, (v0) | t0 = *(v0);
0x000511fc lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051200 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00051204 lw a0, (v0) | a0 = *(v0);
0x00051208 lw a1, 4(v0) | a1 = *((v0 + 1));
0x0005120c lw v0, 0x58(fp) | v0 = *(var_58h);
0x00051210 lw v1, 0x5c(fp) | v1 = *(var_5ch);
0x00051214 sw a0, 0x10(sp) | *(var_10h) = a0;
0x00051218 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0005121c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00051220 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00051224 addiu a0, zero, 2 | a0 = 2;
0x00051228 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str.State */
0x0005122c addiu a1, v0, 0x7660 | a1 = v0 + 0x7660;
0x00051230 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* str._s__:_State_Machine___Current_state:_0x_016llx__Next_state:_0x_016llx */
0x00051234 addiu a2, v0, 0x7668 | a2 = v0 + 0x7668;
0x00051238 lw v0, -0x7fcc(gp) | v0 = *((gp - 8179));
| /* obj.__FUNCTION__.5356 */
0x0005123c addiu a3, v0, 0x76b0 | a3 = v0 + 0x76b0;
0x00051240 move t9, t0 | t9 = t0;
0x00051244 jalr t9 | t9 ();
0x00051248 nop |
0x0005124c lw gp, 0x20(fp) | gp = *(var_20h);
0x00051250 b 0x5131c | goto label_2;
0x00051254 nop |
| label_1:
0x00051258 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0005125c lw v0, 0x1c(v0) | v0 = *((v0 + 7));
0x00051260 addiu v1, v0, 1 | v1 = v0 + 1;
0x00051264 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051268 sw v1, 0x1c(v0) | *((v0 + 7)) = v1;
0x0005126c lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051270 lw v0, 0x1c(v0) | v0 = *((v0 + 7));
0x00051274 andi v1, v0, 0x20 | v1 = v0 & 0x20;
0x00051278 move a0, zero | a0 = 0;
0x0005127c lui a1, 0xf | a1 = 0xf4240;
0x00051280 ori a1, a1, 0x4240 |
0x00051284 srl a2, a1, 1 | a2 = a1 >> 1;
0x00051288 addiu a1, zero, -1 | a1 = -1;
0x0005128c xor a1, v0, a1 | a1 = v0 ^ a1;
0x00051290 srlv a1, a2, a1 | a1 = a2 >> a1;
0x00051294 move a2, zero | a2 = 0;
0x00051298 sllv s1, a2, v0 | s1 = a2 << v0;
0x0005129c or s1, a1, s1 | s1 = a1 | s1;
0x000512a0 lui a1, 0xf | a1 = 0xf4240;
0x000512a4 ori a1, a1, 0x4240 |
0x000512a8 sllv s0, a1, v0 | s0 = a1 << v0;
| if (v1 == 0) {
0x000512ac movn s1, s0, v1 | s1 = s0;
| }
| if (v1 == 0) {
0x000512b0 movn s0, a0, v1 | s0 = a0;
| }
0x000512b4 lw a0, 0x48(fp) | a0 = *(var_48h);
0x000512b8 lw a1, 0x4c(fp) | a1 = *(var_4ch);
0x000512bc addu v0, s0, a0 | v0 = s0 + a0;
0x000512c0 sltu a2, v0, s0 | a2 = (v0 < s0) ? 1 : 0;
0x000512c4 addu v1, s1, a1 | v1 = s1 + a1;
0x000512c8 addu a0, a2, v1 | a0 = a2 + v1;
0x000512cc move v1, a0 | v1 = a0;
0x000512d0 lw a0, 0x2c(fp) | a0 = *(var_2ch);
0x000512d4 sw v0, 0x20(a0) | *((a0 + 8)) = v0;
0x000512d8 sw v1, 0x24(a0) | *((a0 + 9)) = v1;
0x000512dc lw v0, 0x54(fp) | v0 = *(var_54h);
0x000512e0 lw v0, 0x18(v0) | v0 = *((v0 + 6));
| if (v0 != 0) {
0x000512e4 beqz v0, 0x5131c |
0x000512e8 nop |
0x000512ec lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x000512f0 lw v1, 0x1c(v0) | v1 = *((v0 + 7));
0x000512f4 lw v0, 0x54(fp) | v0 = *(var_54h);
0x000512f8 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x000512fc sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
| if (v0 == 0) {
0x00051300 beqz v0, 0x5131c | goto label_2;
| }
0x00051304 nop |
0x00051308 lw v0, 0x54(fp) | v0 = *(var_54h);
0x0005130c lw v0, 0x1c(v0) | v0 = *((v0 + 7));
0x00051310 sw v0, 0x28(fp) | *(var_28h) = v0;
0x00051314 b 0x51390 | goto label_0;
0x00051318 nop |
| }
| label_2:
0x0005131c lw v1, 0x54(fp) | v1 = *(var_54h);
0x00051320 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051324 sw v1, 0x18(v0) | *((v0 + 6)) = v1;
0x00051328 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0005132c lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00051330 lw v0, 0x14(v0) | v0 = *((v0 + 5));
| if (v0 != 0) {
0x00051334 beqz v0, 0x51390 |
0x00051338 nop |
0x0005133c lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051340 lw v0, 0x18(v0) | v0 = *((v0 + 6));
0x00051344 lw t0, 0x14(v0) | t0 = *((v0 + 5));
0x00051348 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0005134c lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x00051350 lw a1, 0x14(v0) | a1 = *((v0 + 5));
0x00051354 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x00051358 lw v1, 0x24(v0) | v1 = *((v0 + 9));
0x0005135c lw v0, 0x20(v0) | v0 = *((v0 + 8));
0x00051360 move a2, v0 | a2 = v0;
0x00051364 move a3, v1 | a3 = v1;
0x00051368 move t9, t0 | t9 = t0;
0x0005136c jalr t9 | t9 ();
0x00051370 nop |
0x00051374 lw gp, 0x20(fp) | gp = *(var_20h);
0x00051378 sw v0, 0x50(fp) | *(var_50h) = v0;
0x0005137c lw v0, 0x50(fp) | v0 = *(var_50h);
| if (v0 == 0) {
0x00051380 beqz v0, 0x51390 | goto label_0;
| }
0x00051384 nop |
0x00051388 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0005138c sw v0, 0x28(fp) | *(var_28h) = v0;
| }
| label_0:
0x00051390 lw v0, 0x28(fp) | v0 = *(var_28h);
0x00051394 move sp, fp |
0x00051398 lw ra, 0x6c(sp) | ra = *(var_6ch);
0x0005139c lw fp, 0x68(sp) | fp = *(var_68h);
0x000513a0 lw s1, 0x64(sp) | s1 = *(var_64h);
0x000513a4 lw s0, 0x60(sp) | s0 = *(var_60h);
0x000513a8 addiu sp, sp, 0x70 |
0x000513ac jr ra | return v0;
0x000513b0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/13893632-15421440.squashfs_v4_le_extract/thirdlib/libcproducer.so @ 0xebfc */
| #include <stdint.h>
|
; (fcn) sym.streamLatencyPressureAggregate () | void streamLatencyPressureAggregate () {
0x0000ebfc addiu sp, sp, -0x38 |
0x0000ec00 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0000ec04 sw fp, 0x30(sp) | *(var_30h) = fp;
0x0000ec08 move fp, sp | fp = sp;
0x0000ec0c sw a0, 0x38(fp) | *(arg_38h) = a0;
0x0000ec10 sw a1, 0x3c(fp) | *(arg_3ch) = a1;
0x0000ec14 sw a2, 0x40(fp) | *(arg_40h) = a2;
0x0000ec18 sw a3, 0x44(fp) | *(arg_44h) = a3;
0x0000ec1c sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000ec20 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x0000ec24 sw v0, 0x28(fp) | *(var_28h) = v0;
0x0000ec28 lw v0, 0x28(fp) | v0 = *(var_28h);
| if (v0 == 0) {
0x0000ec2c bnez v0, 0xec44 |
0x0000ec30 nop |
0x0000ec34 addiu v0, zero, 2 | v0 = 2;
0x0000ec38 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000ec3c b 0xed54 | goto label_0;
0x0000ec40 nop |
| }
0x0000ec44 sw zero, 0x24(fp) | *(var_24h) = 0;
0x0000ec48 b 0xed3c | goto label_1;
0x0000ec4c nop |
| do {
0x0000ec50 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000ec54 lw v1, 0x108(v0) | v1 = *(v0);
0x0000ec58 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000ec5c sll v0, v0, 3 | v0 <<= 3;
0x0000ec60 sll a0, v0, 3 | a0 = v0 << 3;
0x0000ec64 addu v0, v0, a0 | v0 += a0;
0x0000ec68 addu v0, v1, v0 | v0 = v1 + v0;
0x0000ec6c lw v0, 0x18(v0) | v0 = *((v0 + 6));
| if (v0 != 0) {
0x0000ec70 beqz v0, 0xed30 |
0x0000ec74 nop |
0x0000ec78 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000ec7c lw v1, 0x108(v0) | v1 = *(v0);
0x0000ec80 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000ec84 sll v0, v0, 3 | v0 <<= 3;
0x0000ec88 sll a0, v0, 3 | a0 = v0 << 3;
0x0000ec8c addu v0, v0, a0 | v0 += a0;
0x0000ec90 addu v0, v1, v0 | v0 = v1 + v0;
0x0000ec94 lw t0, 0x18(v0) | t0 = *((v0 + 6));
0x0000ec98 lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000ec9c lw v1, 0x108(v0) | v1 = *(v0);
0x0000eca0 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000eca4 sll v0, v0, 3 | v0 <<= 3;
0x0000eca8 sll a0, v0, 3 | a0 = v0 << 3;
0x0000ecac addu v0, v0, a0 | v0 += a0;
0x0000ecb0 addu v0, v1, v0 | v0 = v1 + v0;
0x0000ecb4 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x0000ecb8 lw v0, 8(v0) | v0 = *((v0 + 2));
0x0000ecbc lw a0, 0x48(fp) | a0 = *(arg_48h);
0x0000ecc0 lw a1, 0x4c(fp) | a1 = *(arg_4ch);
0x0000ecc4 sw a0, 0x10(sp) | *(var_10h) = a0;
0x0000ecc8 sw a1, 0x14(sp) | *(var_14h) = a1;
0x0000eccc move a0, v0 | a0 = v0;
0x0000ecd0 move a1, v1 | a1 = v1;
0x0000ecd4 lw a2, 0x40(fp) | a2 = *(arg_40h);
0x0000ecd8 lw a3, 0x44(fp) | a3 = *(arg_44h);
0x0000ecdc move t9, t0 | t9 = t0;
0x0000ece0 jalr t9 | t9 ();
0x0000ece4 nop |
0x0000ece8 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000ecec lw v1, 0x20(fp) | v1 = *(var_20h);
0x0000ecf0 lui v0, 0x1500 | v0 = 0x15000001;
0x0000ecf4 ori v0, v0, 1 |
| if (v1 == v0) {
0x0000ecf8 bne v1, v0, 0xed0c |
0x0000ecfc nop |
0x0000ed00 sw zero, 0x20(fp) | *(var_20h) = 0;
0x0000ed04 b 0xed54 | goto label_0;
0x0000ed08 nop |
| }
0x0000ed0c lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000ed10 sw v0, 0x2c(fp) | *(var_2ch) = v0;
0x0000ed14 lw v0, 0x2c(fp) | v0 = *(var_2ch);
| if (v0 == 0) {
0x0000ed18 beqz v0, 0xed30 | goto label_2;
| }
0x0000ed1c nop |
0x0000ed20 lw v0, 0x2c(fp) | v0 = *(var_2ch);
0x0000ed24 sw v0, 0x20(fp) | *(var_20h) = v0;
0x0000ed28 b 0xed54 | goto label_0;
0x0000ed2c nop |
| }
| label_2:
0x0000ed30 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000ed34 addiu v0, v0, 1 | v0++;
0x0000ed38 sw v0, 0x24(fp) | *(var_24h) = v0;
| label_1:
0x0000ed3c lw v0, 0x28(fp) | v0 = *(var_28h);
0x0000ed40 lw v1, 0x10c(v0) | v1 = *(v0);
0x0000ed44 lw v0, 0x24(fp) | v0 = *(var_24h);
0x0000ed48 sltu v0, v0, v1 | v0 = (v0 < v1) ? 1 : 0;
0x0000ed4c bnez v0, 0xec50 |
| } while (v0 != 0);
0x0000ed50 nop |
| label_0:
0x0000ed54 lw v0, 0x20(fp) | v0 = *(var_20h);
0x0000ed58 move sp, fp |
0x0000ed5c lw ra, 0x34(sp) | ra = *(var_34h);
0x0000ed60 lw fp, 0x30(sp) | fp = *(var_30h);
0x0000ed64 addiu sp, sp, 0x38 |
0x0000ed68 jr ra | return v0;
0x0000ed6c nop |
| }
[*] Function fprintf used 1 times libcproducer.so