[*] Binary protection state of libcrypto.so.1.1
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libcrypto.so.1.1
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x83bc0 */
| #include <stdint.h>
|
; (fcn) fcn.00083bc0 () | void fcn_00083bc0 () {
0x00083bc0 lui gp, 0x14 |
0x00083bc4 addiu gp, gp, 0x3000 |
0x00083bc8 addu gp, gp, t9 | gp += t9;
0x00083bcc addiu sp, sp, -0x20 |
0x00083bd0 lw t9, -0x7534(gp) | t9 = *((gp - 7501));
0x00083bd4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00083bd8 sw ra, 0x1c(sp) | *(var_1ch) = ra;
0x00083bdc bal 0x83ab4 | sym_CMS_get0_content ();
0x00083be0 nop |
0x00083be4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00083be8 beqz v0, 0x83c44 | goto label_0;
| }
0x00083bec lw v0, (v0) | v0 = *(v0);
0x00083bf0 addiu v1, zero, 0x20 | v1 = 0x20;
| if (v0 != 0) {
0x00083bf4 bnez v0, 0x83c1c | goto label_1;
| }
0x00083bf8 lw t9, -0x74b0(gp) | t9 = *((gp - 7468));
| do {
0x00083bfc jalr t9 | t9 ();
0x00083c00 nop |
0x00083c04 lw gp, 0x10(sp) | gp = *(var_10h);
0x00083c08 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00083c0c move a0, v0 | a0 = v0;
0x00083c10 lw t9, -0x7f64(gp) | t9 = *((gp - 8153));
0x00083c14 addiu sp, sp, 0x20 |
0x00083c18 b 0x63d00 | void (*0x63d00)() ();
| label_1:
0x00083c1c lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00083c20 lw ra, 0x1c(sp) | ra = *(var_1ch);
| if (a0 != v1) {
0x00083c24 bne a0, v1, 0x83c30 | goto label_2;
| }
0x00083c28 lw t9, -0x7cc0(gp) | t9 = *((gp - 7984));
0x00083c2c b 0x83bfc |
| } while (1);
| label_2:
0x00083c30 lw a1, (v0) | a1 = *(v0);
0x00083c34 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00083c38 lw t9, -0x74ac(gp) | t9 = *((gp - 7467));
0x00083c3c addiu sp, sp, 0x20 |
0x00083c40 b 0x6a57c | void (*0x6a57c)() ();
| label_0:
0x00083c44 lw ra, 0x1c(sp) | ra = *(var_1ch);
0x00083c48 addiu sp, sp, 0x20 |
0x00083c4c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xa33dc */
| #include <stdint.h>
|
; (fcn) fcn.000a33dc () | void fcn_000a33dc () {
0x000a33dc lui gp, 0x12 |
0x000a33e0 addiu gp, gp, 0x37e4 |
0x000a33e4 addu gp, gp, t9 | gp += t9;
0x000a33e8 addiu sp, sp, -0x50 |
0x000a33ec lw v0, 8(a0) | v0 = *((a0 + 2));
0x000a33f0 sw gp, 0x20(sp) | *(var_20h) = gp;
0x000a33f4 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x000a33f8 sw fp, 0x48(sp) | *(var_48h) = fp;
0x000a33fc sw s7, 0x44(sp) | *(var_44h) = s7;
0x000a3400 sw s6, 0x40(sp) | *(var_40h) = s6;
0x000a3404 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x000a3408 sw s4, 0x38(sp) | *(var_38h) = s4;
0x000a340c sw s3, 0x34(sp) | *(var_34h) = s3;
0x000a3410 sw s2, 0x30(sp) | *(var_30h) = s2;
0x000a3414 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x000a3418 sw s0, 0x28(sp) | *(var_28h) = s0;
| if (v0 != 0) {
0x000a341c beqz v0, 0xa343c |
0x000a3420 nop |
0x000a3424 lw v0, 0xc(a0) | v0 = *((a0 + 3));
0x000a3428 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x000a342c beqz v0, 0xa343c | goto label_6;
| }
0x000a3430 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x000a3434 lw t9, -0x7ea8(gp) | t9 = *((gp - 8106));
| if (v0 != 0) {
0x000a3438 bnez v0, 0xa3498 | goto label_7;
| }
| }
| label_6:
0x000a343c lw a3, -0x7de8(gp) | a3 = *((gp - 8058));
0x000a3440 addiu v0, zero, 0xbd | v0 = 0xbd;
0x000a3444 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000a3448 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000a344c addiu a3, a3, 0x154 | a3 += aav.0x00000154;
0x000a3450 addiu a2, zero, 0x65 | a2 = 0x65;
0x000a3454 addiu a1, zero, 0x6b | a1 = 0x6b;
0x000a3458 addiu a0, zero, 0xa | a0 = 0xa;
0x000a345c move s0, zero | s0 = 0;
0x000a3460 jalr t9 | t9 ();
0x000a3464 lw ra, 0x4c(sp) | ra = *(var_4ch);
| label_0:
0x000a3468 move v0, s0 | v0 = s0;
0x000a346c lw fp, 0x48(sp) | fp = *(var_48h);
0x000a3470 lw s7, 0x44(sp) | s7 = *(var_44h);
0x000a3474 lw s6, 0x40(sp) | s6 = *(var_40h);
0x000a3478 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x000a347c lw s4, 0x38(sp) | s4 = *(var_38h);
0x000a3480 lw s3, 0x34(sp) | s3 = *(var_34h);
0x000a3484 lw s2, 0x30(sp) | s2 = *(var_30h);
0x000a3488 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x000a348c lw s0, 0x28(sp) | s0 = *(var_28h);
0x000a3490 addiu sp, sp, 0x50 |
0x000a3494 jr ra | return v0;
| label_7:
0x000a3498 move s4, a1 | s4 = a1;
0x000a349c move s7, a2 | s7 = a2;
0x000a34a0 move s5, a3 | s5 = a3;
0x000a34a4 jalr t9 | t9 ();
0x000a34a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a34ac lw t9, -0x7ea8(gp) | t9 = *((gp - 8106));
0x000a34b0 move s2, v0 | s2 = v0;
0x000a34b4 jalr t9 | t9 ();
0x000a34b8 move s3, v0 | s3 = v0;
0x000a34bc lw gp, 0x20(sp) | gp = *(var_20h);
| if (s2 != 0) {
0x000a34c0 beqz s2, 0xa34ec |
0x000a34c4 move s1, zero | s1 = 0;
| if (v0 == 0) {
0x000a34c8 beqz v0, 0xa3784 | goto label_8;
| }
0x000a34cc move s1, s4 | s1 = s4;
| if (s4 != 0) {
0x000a34d0 bnez s4, 0xa34f4 | goto label_9;
| }
0x000a34d4 lw t9, -0x7838(gp) | t9 = *((gp - 7694));
0x000a34d8 jalr t9 | t9 ();
0x000a34dc nop |
0x000a34e0 move s1, v0 | s1 = v0;
0x000a34e4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000a34e8 bnez v0, 0xa34f4 | goto label_9;
| }
| }
0x000a34ec move s1, zero | s1 = 0;
0x000a34f0 b 0xa3784 | goto label_8;
| label_9:
0x000a34f4 lw t9, -0x7f08(gp) | t9 = *((gp - 8130));
0x000a34f8 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000a34fc jalr t9 | t9 ();
0x000a3500 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3504 lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000a3508 lw t9, -0x6f50(gp) | t9 = *((gp - 7124));
0x000a350c move fp, v0 | fp = v0;
0x000a3510 jalr t9 | t9 ();
0x000a3514 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3518 addiu s6, v0, 2 | s6 = v0 + 2;
0x000a351c move a1, s6 | a1 = s6;
0x000a3520 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
0x000a3524 move a0, s2 | a0 = s2;
0x000a3528 jalr t9 | t9 ();
0x000a352c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a3530 beqz v0, 0xa3784 | goto label_8;
| }
0x000a3534 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
0x000a3538 move a1, s6 | a1 = s6;
0x000a353c move a0, s3 | a0 = s3;
0x000a3540 jalr t9 | t9 ();
0x000a3544 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a3548 beqz v0, 0xa3784 | goto label_8;
| }
| do {
0x000a354c lw v0, 0x60(sp) | v0 = *(arg_60h);
0x000a3550 lw a1, 0xc(s0) | a1 = *((s0 + 3));
| if (v0 == 0) {
0x000a3554 beqz v0, 0xa3750 | goto label_10;
| }
0x000a3558 lw v0, 0x64(sp) | v0 = *(arg_64h);
0x000a355c sw s1, 0x14(sp) | *(var_14h) = s1;
0x000a3560 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000a3564 lw t9, -0x6f4c(gp) | t9 = *(gp);
0x000a3568 lw a3, 0x60(sp) | a3 = *(arg_60h);
0x000a356c lw a2, 0x18(s0) | a2 = *((s0 + 6));
0x000a3570 move a0, s2 | a0 = s2;
0x000a3574 jalr t9 | t9 ();
0x000a3578 lw gp, 0x20(sp) | gp = *(var_20h);
| label_1:
0x000a357c lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
| if (v0 == 0) {
0x000a3580 beqz v0, 0xa3784 | goto label_8;
| }
0x000a3584 move a0, s2 | a0 = s2;
0x000a3588 jalr t9 | t9 ();
0x000a358c lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3590 bnez v0, 0xa354c |
| } while (v0 != 0);
0x000a3594 lw t9, -0x7870(gp) | t9 = *((gp - 7708));
0x000a3598 addiu a1, zero, 4 | a1 = 4;
0x000a359c move a0, s2 | a0 = s2;
0x000a35a0 jalr t9 | t9 ();
0x000a35a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a35a8 addiu a1, zero, 4 | a1 = 4;
0x000a35ac lw t9, -0x7870(gp) | t9 = *((gp - 7708));
0x000a35b0 move a0, s3 | a0 = s3;
0x000a35b4 jalr t9 | t9 ();
0x000a35b8 lw v0, 0x1c(s0) | v0 = *((s0 + 7));
0x000a35bc andi v0, v0, 1 | v0 &= 1;
0x000a35c0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a35c4 bnez v0, 0xa3764 |
| while (v0 != 0) {
0x000a35c8 lw t9, -0x7790(gp) | t9 = *((gp - 7652));
0x000a35cc lw a2, 0xc(s0) | a2 = *((s0 + 3));
0x000a35d0 move a1, s2 | a1 = s2;
0x000a35d4 move a0, s3 | a0 = s3;
0x000a35d8 jalr t9 | t9 ();
0x000a35dc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a35e0 beqz v0, 0xa3784 | goto label_8;
| }
0x000a35e4 lw t9, -0x7790(gp) | t9 = *((gp - 7652));
0x000a35e8 lw a2, 0xc(s0) | a2 = *((s0 + 3));
0x000a35ec move a1, s3 | a1 = s3;
0x000a35f0 move a0, s2 | a0 = s2;
0x000a35f4 jalr t9 | t9 ();
0x000a35f8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a35fc beqz v0, 0xa3784 | goto label_8;
| }
0x000a3600 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
0x000a3604 move a1, fp | a1 = fp;
0x000a3608 move a0, s3 | a0 = s3;
0x000a360c jalr t9 | t9 ();
0x000a3610 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3614 move a3, s6 | a3 = s6;
0x000a3618 move a1, s2 | a1 = s2;
0x000a361c lw t9, -0x6f48(gp) | t9 = *((gp - 7122));
0x000a3620 move a0, v0 | a0 = v0;
0x000a3624 move a2, s3 | a2 = s3;
0x000a3628 jalr t9 | t9 ();
0x000a362c lw v0, 0x2c(s0) | v0 = *((s0 + 11));
0x000a3630 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3634 lw a3, 8(s0) | a3 = *((s0 + 2));
0x000a3638 lw t9, 0x14(v0) | t9 = *((v0 + 5));
0x000a363c lw a1, 0x10(s0) | a1 = *((s0 + 4));
0x000a3640 lw v0, 0x20(s0) | v0 = *((s0 + 8));
| if (t9 == 0) {
0x000a3644 beqz t9, 0xa37b4 | goto label_11;
| }
0x000a3648 sw a3, 0x10(sp) | *(var_10h) = a3;
0x000a364c move a2, a1 | a2 = a1;
0x000a3650 sw v0, 0x18(sp) | *(var_18h) = v0;
0x000a3654 sw s1, 0x14(sp) | *(var_14h) = s1;
0x000a3658 move a3, s2 | a3 = s2;
0x000a365c move a1, s5 | a1 = s5;
0x000a3660 move a0, s0 | a0 = s0;
0x000a3664 jalr t9 | t9 ();
0x000a3668 lw gp, 0x20(sp) | gp = *(var_20h);
| label_3:
0x000a366c lw a3, -0x7de8(gp) | a3 = *((gp - 8058));
| if (v0 == 0) {
0x000a3670 beqz v0, 0xa3788 | goto label_12;
| }
0x000a3674 sw s1, 0x10(sp) | *(var_10h) = s1;
0x000a3678 lw t9, -0x77b8(gp) | t9 = *(gp);
0x000a367c lw a3, 0xc(s0) | a3 = *((s0 + 3));
0x000a3680 move a2, s5 | a2 = s5;
0x000a3684 move a1, s5 | a1 = s5;
0x000a3688 move a0, zero | a0 = 0;
0x000a368c jalr t9 | t9 ();
0x000a3690 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a3694 beqz v0, 0xa3784 | goto label_8;
| }
0x000a3698 lw t9, -0x7ea8(gp) | t9 = *((gp - 8106));
0x000a369c lw s6, 0xc(s0) | s6 = *((s0 + 3));
0x000a36a0 jalr t9 | t9 ();
0x000a36a4 move s0, v0 | s0 = v0;
0x000a36a8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a36ac beqz v0, 0xa3784 | goto label_8;
| }
0x000a36b0 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x000a36b4 move a0, s1 | a0 = s1;
0x000a36b8 jalr t9 | t9 ();
0x000a36bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000a36c0 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x000a36c4 move a0, s1 | a0 = s1;
0x000a36c8 jalr t9 | t9 ();
0x000a36cc move s5, v0 | s5 = v0;
0x000a36d0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x000a36d4 bnez v0, 0xa37d4 | goto label_13;
| }
| label_4:
0x000a36d8 lw t9, -0x7eb4(gp) | t9 = *((gp - 8109));
0x000a36dc move a0, s0 | a0 = s0;
0x000a36e0 jalr t9 | t9 ();
0x000a36e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a36e8 move s0, zero | s0 = 0;
0x000a36ec lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| label_5:
0x000a36f0 move a0, s1 | a0 = s1;
0x000a36f4 jalr t9 | t9 ();
0x000a36f8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == 0) {
0x000a36fc beqz s0, 0xa3784 | goto label_8;
| }
0x000a3700 lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
0x000a3704 lw a0, (s7) | a0 = *(s7);
0x000a3708 jalr t9 | t9 ();
0x000a370c lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3710 sw s0, (s7) | *(s7) = s0;
0x000a3714 addiu s0, zero, 1 | s0 = 1;
| label_2:
0x000a3718 lw t9, -0x7728(gp) | t9 = *((gp - 7626));
| if (s4 != s1) {
0x000a371c beq s4, s1, 0xa372c |
0x000a3720 move a0, s1 | a0 = s1;
0x000a3724 jalr t9 | t9 ();
0x000a3728 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x000a372c lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
0x000a3730 move a0, s2 | a0 = s2;
0x000a3734 jalr t9 | t9 ();
0x000a3738 lw gp, 0x20(sp) | gp = *(var_20h);
0x000a373c lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
0x000a3740 move a0, s3 | a0 = s3;
0x000a3744 jalr t9 | t9 ();
0x000a3748 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x000a374c b 0xa3468 | goto label_0;
| label_10:
0x000a3750 lw t9, -0x785c(gp) | t9 = *((gp - 7703));
0x000a3754 move a0, s2 | a0 = s2;
0x000a3758 jalr t9 | t9 ();
0x000a375c lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3760 b 0xa357c | goto label_1;
0x000a3764 lw t9, -0x703c(gp) | t9 = *((gp - 7183));
0x000a3768 lw a2, 8(s0) | a2 = *((s0 + 2));
0x000a376c lw a1, 0x34(s0) | a1 = *((s0 + 13));
0x000a3770 move a3, s1 | a3 = s1;
0x000a3774 addiu a0, s0, 0x20 | a0 = s0 + 0x20;
0x000a3778 jalr t9 | t9 ();
0x000a377c lw gp, 0x20(sp) | gp = *(var_20h);
0x000a3780 bnez v0, 0xa35c8 |
| }
| label_8:
0x000a3784 lw a3, -0x7de8(gp) | a3 = *((gp - 8058));
| label_12:
0x000a3788 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000a378c addiu v0, zero, 0x115 | v0 = 0x115;
0x000a3790 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000a3794 addiu a3, a3, 0x154 | a3 += aav.0x00000154;
0x000a3798 addiu a2, zero, 3 | a2 = 3;
0x000a379c addiu a1, zero, 0x6b | a1 = 0x6b;
0x000a37a0 addiu a0, zero, 0xa | a0 = 0xa;
0x000a37a4 jalr t9 | t9 ();
0x000a37a8 move s0, zero | s0 = 0;
0x000a37ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000a37b0 b 0xa3718 | goto label_2;
| label_11:
0x000a37b4 lw t9, -0x77b0(gp) | t9 = *((gp - 7660));
0x000a37b8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x000a37bc sw s1, 0x10(sp) | *(var_10h) = s1;
0x000a37c0 move a2, s2 | a2 = s2;
0x000a37c4 move a0, s5 | a0 = s5;
0x000a37c8 jalr t9 | t9 ();
0x000a37cc lw gp, 0x20(sp) | gp = *(var_20h);
0x000a37d0 b 0xa366c | goto label_3;
| label_13:
0x000a37d4 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x000a37d8 addiu a1, zero, 2 | a1 = 2;
0x000a37dc move a0, s0 | a0 = s0;
0x000a37e0 jalr t9 | t9 ();
0x000a37e4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a37e8 beqz v0, 0xa36d8 | goto label_4;
| }
0x000a37ec lw t9, -0x77a4(gp) | t9 = *((gp - 7657));
0x000a37f0 move a2, s0 | a2 = s0;
0x000a37f4 move a1, s6 | a1 = s6;
0x000a37f8 move a0, s5 | a0 = s5;
0x000a37fc jalr t9 | t9 ();
0x000a3800 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a3804 beqz v0, 0xa36d8 | goto label_4;
| }
0x000a3808 lw t9, -0x77b0(gp) | t9 = *((gp - 7660));
0x000a380c sw zero, 0x14(sp) | *(var_14h) = 0;
0x000a3810 sw s1, 0x10(sp) | *(var_10h) = s1;
0x000a3814 move a3, s6 | a3 = s6;
0x000a3818 move a2, s5 | a2 = s5;
0x000a381c move a1, s2 | a1 = s2;
0x000a3820 move a0, s0 | a0 = s0;
0x000a3824 jalr t9 | t9 ();
0x000a3828 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000a382c beqz v0, 0xa36d8 | goto label_4;
| }
0x000a3830 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
0x000a3834 b 0xa36f0 | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x134074 */
| #include <stdint.h>
|
; (fcn) fcn.00134074 () | void fcn_00134074 () {
0x00134074 lui gp, 9 |
0x00134078 addiu gp, gp, 0x2b4c |
0x0013407c addu gp, gp, t9 | gp += t9;
0x00134080 addiu sp, sp, -0x38 |
0x00134084 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00134088 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0013408c sw s2, 0x28(sp) | *(var_28h) = s2;
0x00134090 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00134094 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00134098 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0013409c sw s1, 0x24(sp) | *(var_24h) = s1;
0x001340a0 move s4, a1 | s4 = a1;
0x001340a4 move s2, a2 | s2 = a2;
0x001340a8 move s0, a3 | s0 = a3;
0x001340ac bnez a0, 0x1340f8 |
| while (a0 == 0) {
0x001340b0 lw t9, -0x7bfc(gp) | t9 = *((gp - 7935));
| label_1:
0x001340b4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x001340b8 jalr t9 | t9 ();
0x001340bc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s2) {
0x001340c0 bne v0, s2, 0x134118 |
0x001340c4 lw t9, -0x7c00(gp) | t9 = *((gp - 7936));
0x001340c8 lw a0, 4(s0) | a0 = *((s0 + 1));
0x001340cc jalr t9 | t9 ();
0x001340d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x001340d4 move a2, s2 | a2 = s2;
0x001340d8 move a1, v0 | a1 = v0;
0x001340dc lw t9, -0x5530(gp) | t9 = *((gp - 5452));
0x001340e0 move a0, s4 | a0 = s4;
0x001340e4 jalr t9 | t9 ();
0x001340e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x001340ec bnez v0, 0x134118 | goto label_0;
| }
0x001340f0 addiu v0, zero, 1 | v0 = 1;
0x001340f4 b 0x134140 | goto label_3;
0x001340f8 lw s3, (a3) | s3 = *(a3);
0x001340fc lw t9, -0x7d8c(gp) | t9 = *((gp - 8035));
0x00134100 move s1, a0 | s1 = a0;
0x00134104 lw a1, (s3) | a1 = *(s3);
0x00134108 lw a0, (a0) | a0 = *(a0);
0x0013410c jalr t9 | t9 ();
0x00134110 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00134114 beqz v0, 0x134160 | goto label_4;
| }
| }
| label_0:
0x00134118 lw a3, -0x7e98(gp) | a3 = *((gp - 8102));
0x0013411c addiu v0, zero, 0x283 | v0 = 0x283;
0x00134120 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00134124 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00134128 addiu a3, a3, 0x61d8 | a3 += 0x61d8;
0x0013412c addiu a2, zero, 0x67 | a2 = 0x67;
0x00134130 addiu a1, zero, 0x64 | a1 = 0x64;
0x00134134 addiu a0, zero, 0x2f | a0 = 0x2f;
0x00134138 jalr t9 | t9 ();
0x0013413c move v0, zero | v0 = 0;
| label_3:
0x00134140 lw ra, 0x34(sp) | ra = *(var_34h);
0x00134144 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00134148 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0013414c lw s2, 0x28(sp) | s2 = *(var_28h);
0x00134150 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00134154 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00134158 addiu sp, sp, 0x38 |
0x0013415c jr ra | return v0;
| label_4:
0x00134160 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00134164 lw t9, -0x7074(gp) | t9 = *(gp);
| if (a0 != 0) {
0x00134168 bnez a0, 0x134194 | goto label_5;
| }
0x0013416c lw a0, 4(s3) | a0 = *((s3 + 1));
| label_2:
0x00134170 lw t9, -0x7074(gp) | t9 = *(gp);
0x00134174 beqz a0, 0x1340b0 |
| }
0x00134178 jalr t9 | t9 ();
0x0013417c nop |
0x00134180 addiu v1, zero, 5 | v1 = 5;
0x00134184 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != v1) {
0x00134188 bne v0, v1, 0x134118 | goto label_0;
| }
0x0013418c lw t9, -0x7bfc(gp) | t9 = *((gp - 7935));
0x00134190 b 0x1340b4 | goto label_1;
| label_5:
0x00134194 jalr t9 | t9 ();
0x00134198 nop |
0x0013419c addiu v1, zero, 5 | v1 = 5;
0x001341a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != v1) {
0x001341a4 bne v0, v1, 0x134118 | goto label_0;
| }
0x001341a8 lw a0, 4(s3) | a0 = *((s3 + 1));
0x001341ac b 0x134170 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x158464 */
| #include <stdint.h>
|
; (fcn) fcn.00158464 () | void fcn_00158464 () {
0x00158464 lui gp, 7 |
0x00158468 addiu gp, gp, -0x18a4 |
0x0015846c addu gp, gp, t9 | gp += t9;
0x00158470 addiu sp, sp, -0x858 |
0x00158474 lw t9, -0x54d0(gp) | t9 = *((gp - 5428));
0x00158478 sw s5, 0x844(sp) | *(var_844h) = s5;
0x0015847c sw s3, 0x83c(sp) | *(var_83ch) = s3;
0x00158480 move s5, a1 | s5 = a1;
0x00158484 lw s3, 4(a0) | s3 = *((a0 + 1));
0x00158488 lw a1, -0x7e98(gp) | a1 = *((gp - 8102));
0x0015848c sw gp, 0x20(sp) | *(var_20h) = gp;
0x00158490 sw s4, 0x840(sp) | *(var_840h) = s4;
0x00158494 sw s1, 0x834(sp) | *(var_834h) = s1;
0x00158498 sw s0, 0x830(sp) | *(var_830h) = s0;
0x0015849c sw ra, 0x854(sp) | *(var_854h) = ra;
0x001584a0 sw fp, 0x850(sp) | *(var_850h) = fp;
0x001584a4 sw s7, 0x84c(sp) | *(var_84ch) = s7;
0x001584a8 sw s6, 0x848(sp) | *(var_848h) = s6;
0x001584ac sw s2, 0x838(sp) | *(var_838h) = s2;
0x001584b0 move s0, a0 | s0 = a0;
0x001584b4 addiu a1, a1, -0x4d38 | a1 += -0x4d38;
0x001584b8 move a0, s3 | a0 = s3;
0x001584bc move s4, a2 | s4 = a2;
0x001584c0 move s1, a3 | s1 = a3;
0x001584c4 jalr t9 | t9 ();
0x001584c8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x001584cc bnez v0, 0x1585b0 | goto label_8;
| }
0x001584d0 move s2, v0 | s2 = v0;
0x001584d4 lw v0, (s5) | v0 = *(s5);
0x001584d8 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
| if (v0 == 0) {
0x001584dc beqz v0, 0x158574 | goto label_9;
| }
0x001584e0 addiu v0, zero, 0x5e | v0 = 0x5e;
0x001584e4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x001584e8 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x001584ec addiu a2, zero, 0x9b | a2 = 0x9b;
| label_0:
0x001584f0 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x001584f4 addiu a1, zero, 0x96 | a1 = 0x96;
0x001584f8 addiu a0, zero, 0x22 | a0 = 0x22;
0x001584fc jalr t9 | t9 ();
0x00158500 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158504 lw v0, 8(s0) | v0 = *((s0 + 2));
0x00158508 lw a2, (s0) | a2 = *(s0);
0x0015850c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00158510 lw v0, -0x7e24(gp) | v0 = *((gp - 8073));
0x00158514 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x00158518 addiu v0, v0, -0x76e0 | v0 += -0x76e0;
0x0015851c sw v0, 0x14(sp) | *(var_14h) = v0;
0x00158520 lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x00158524 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00158528 lw t9, -0x7ec8(gp) | t9 = *((gp - 8114));
0x0015852c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158530 addiu a3, a3, -0x76f4 | a3 += -0x76f4;
0x00158534 addiu a1, a1, -0x76ec | a1 += -0x76ec;
0x00158538 addiu a0, zero, 6 | a0 = 6;
0x0015853c jalr t9 | t9 ();
| do {
| label_2:
0x00158540 lw ra, 0x854(sp) | ra = *(var_854h);
0x00158544 move v0, s2 | v0 = s2;
0x00158548 lw fp, 0x850(sp) | fp = *(var_850h);
0x0015854c lw s7, 0x84c(sp) | s7 = *(var_84ch);
0x00158550 lw s6, 0x848(sp) | s6 = *(var_848h);
0x00158554 lw s5, 0x844(sp) | s5 = *(var_844h);
0x00158558 lw s4, 0x840(sp) | s4 = *(var_840h);
0x0015855c lw s3, 0x83c(sp) | s3 = *(var_83ch);
0x00158560 lw s2, 0x838(sp) | s2 = *(var_838h);
0x00158564 lw s1, 0x834(sp) | s1 = *(var_834h);
0x00158568 lw s0, 0x830(sp) | s0 = *(var_830h);
0x0015856c addiu sp, sp, 0x858 |
0x00158570 jr ra | return v0;
| label_9:
0x00158574 lw t9, -0x7d10(gp) | t9 = *((gp - 8004));
0x00158578 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0015857c move a1, zero | a1 = 0;
0x00158580 jalr t9 | t9 ();
0x00158584 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158588 sw v0, (s5) | *(s5) = v0;
| if (v0 == 0) {
0x0015858c beqz v0, 0x158598 | goto label_10;
| }
| label_1:
0x00158590 addiu s2, zero, 1 | s2 = 1;
0x00158594 b 0x158540 |
| } while (1);
| label_10:
0x00158598 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x0015859c addiu v0, zero, 0x64 | v0 = 0x64;
0x001585a0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x001585a4 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x001585a8 addiu a2, zero, 0x6e | a2 = 0x6e;
0x001585ac b 0x1584f0 | goto label_0;
| label_8:
0x001585b0 lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x001585b4 lw t9, -0x54d0(gp) | t9 = *((gp - 5428));
0x001585b8 addiu a1, a1, -0x7718 | a1 += -aav.0x00007718;
0x001585bc move a0, s3 | a0 = s3;
0x001585c0 jalr t9 | t9 ();
0x001585c4 move s2, v0 | s2 = v0;
0x001585c8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x001585cc bnez v0, 0x158624 | goto label_11;
| }
0x001585d0 lw v0, (s4) | v0 = *(s4);
0x001585d4 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
| if (v0 != 0) {
0x001585d8 beqz v0, 0x1585f0 |
0x001585dc addiu v0, zero, 0x6b | v0 = 0x6b;
0x001585e0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x001585e4 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x001585e8 addiu a2, zero, 0x9d | a2 = 0x9d;
0x001585ec b 0x1584f0 | goto label_0;
| }
0x001585f0 lw t9, -0x5840(gp) | t9 = *(gp);
0x001585f4 move a1, s4 | a1 = s4;
0x001585f8 move a0, s0 | a0 = s0;
0x001585fc bal 0x15e11c | sym_X509V3_get_value_int ();
0x00158600 move s2, v0 | s2 = v0;
0x00158604 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00158608 bnez v0, 0x158590 | goto label_1;
| }
0x0015860c lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x00158610 addiu v0, zero, 0x71 | v0 = 0x71;
0x00158614 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158618 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x0015861c addiu a2, zero, 0x9c | a2 = 0x9c;
0x00158620 b 0x1584f0 | goto label_0;
| label_11:
0x00158624 lw a1, -0x7e98(gp) | a1 = *((gp - 8102));
0x00158628 lw t9, -0x54d0(gp) | t9 = *((gp - 5428));
0x0015862c addiu a1, a1, 0x7bcc | a1 += 0x7bcc;
0x00158630 move a0, s3 | a0 = s3;
0x00158634 jalr t9 | t9 ();
0x00158638 move s2, v0 | s2 = v0;
0x0015863c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00158640 bnez v0, 0x158590 | goto label_1;
| }
0x00158644 lw v0, (s1) | v0 = *(s1);
0x00158648 move s7, zero | s7 = 0;
| if (v0 != 0) {
0x0015864c bnez v0, 0x158680 | goto label_12;
| }
0x00158650 lw t9, -0x7c08(gp) | t9 = *((gp - 7938));
0x00158654 jalr t9 | t9 ();
0x00158658 nop |
0x0015865c sw v0, (s1) | *(s1) = v0;
0x00158660 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00158664 bnez v0, 0x158704 | goto label_13;
| }
0x00158668 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x0015866c addiu v0, zero, 0x7b | v0 = 0x7b;
0x00158670 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158674 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x00158678 addiu a2, zero, 0x41 | a2 = 0x41;
0x0015867c b 0x1584f0 | goto label_0;
| do {
| label_12:
0x00158680 lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x00158684 lw s3, 8(s0) | s3 = *((s0 + 2));
0x00158688 lw t9, -0x56b4(gp) | t9 = *((gp - 5549));
0x0015868c addiu a2, zero, 4 | a2 = 4;
0x00158690 addiu a1, a1, -0x6d74 | a1 += -0x6d74;
0x00158694 move a0, s3 | a0 = s3;
0x00158698 jalr t9 | t9 ();
0x0015869c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x001586a0 bnez v0, 0x1587f4 | goto label_14;
| }
0x001586a4 lw t9, -0x7d08(gp) | t9 = *((gp - 8002));
0x001586a8 addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x001586ac addiu a0, s3, 4 | a0 = s3 + 4;
0x001586b0 jalr t9 | t9 ();
0x001586b4 move s4, v0 | s4 = v0;
0x001586b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x001586bc bnez v0, 0x15870c | goto label_15;
| }
| label_3:
0x001586c0 lw v0, 8(s0) | v0 = *((s0 + 2));
0x001586c4 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x001586c8 sw v0, 0x18(sp) | *(var_18h) = v0;
0x001586cc lw v0, -0x7e24(gp) | v0 = *((gp - 8073));
0x001586d0 lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x001586d4 addiu v0, v0, -0x76e0 | v0 += -0x76e0;
0x001586d8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x001586dc lw v0, 4(s0) | v0 = *((s0 + 1));
0x001586e0 lw t9, -0x7ec8(gp) | t9 = *((gp - 8114));
0x001586e4 lw a2, (s0) | a2 = *(s0);
0x001586e8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x001586ec addiu a3, a3, -0x76f4 | a3 += -0x76f4;
0x001586f0 addiu a1, a1, -0x76ec | a1 += -0x76ec;
0x001586f4 addiu a0, zero, 6 | a0 = 6;
0x001586f8 jalr t9 | t9 ();
0x001586fc lw gp, 0x20(sp) | gp = *(var_20h);
0x00158700 b 0x15892c | goto label_16;
| label_13:
0x00158704 addiu s7, zero, 1 | s7 = 1;
0x00158708 b 0x158680 |
| } while (1);
| label_15:
0x0015870c lw v0, (s1) | v0 = *(s1);
0x00158710 lw v1, 0x28(sp) | v1 = *(var_28h);
0x00158714 lw s3, -0x7e24(gp) | s3 = *((gp - 8073));
0x00158718 lw a1, (v0) | a1 = *(v0);
0x0015871c lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00158720 addu a1, a1, v1 | a1 += v1;
0x00158724 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00158728 addiu a3, zero, 0x8b | a3 = 0x8b;
0x0015872c addiu a2, s3, -0x6d8c | a2 = s3 + -0x6d8c;
0x00158730 addiu a1, a1, 1 | a1++;
0x00158734 jalr t9 | t9 ();
0x00158738 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0015873c beqz v0, 0x1587a0 |
0x00158740 lw v1, (s1) | v1 = *(s1);
0x00158744 lw t9, -0x550c(gp) | t9 = *((gp - 5443));
0x00158748 lw a2, 0x28(sp) | a2 = *(var_28h);
0x0015874c lw a0, (v1) | a0 = *(v1);
0x00158750 sw v0, 8(v1) | *((v1 + 2)) = v0;
0x00158754 move a1, s4 | a1 = s4;
0x00158758 addu a0, v0, a0 | a0 = v0 + a0;
0x0015875c jalr t9 | t9 ();
0x00158760 lw v1, (s1) | v1 = *(s1);
0x00158764 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00158768 lw gp, 0x20(sp) | gp = *(var_20h);
0x0015876c lw v0, (v1) | v0 = *(v1);
0x00158770 addiu a2, zero, 0x9f | a2 = 0x9f;
0x00158774 addu v0, v0, a0 | v0 += a0;
0x00158778 sw v0, (v1) | *(v1) = v0;
0x0015877c lw v1, 8(v1) | v1 = *((v1 + 2));
0x00158780 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x00158784 addu v0, v1, v0 | v0 = v1 + v0;
0x00158788 addiu a1, s3, -0x6d8c | a1 = s3 + -0x6d8c;
0x0015878c sb zero, (v0) | *(v0) = 0;
0x00158790 move a0, s4 | a0 = s4;
0x00158794 jalr t9 | t9 ();
0x00158798 addiu s2, zero, 1 | s2 = 1;
0x0015879c b 0x158540 | goto label_2;
| }
0x001587a0 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x001587a4 addiu a2, zero, 0x93 | a2 = 0x93;
0x001587a8 addiu a1, s3, -0x6d8c | a1 = s3 + -0x6d8c;
0x001587ac move a0, s4 | a0 = s4;
0x001587b0 jalr t9 | t9 ();
0x001587b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x001587b8 lw v0, (s1) | v0 = *(s1);
0x001587bc addiu a2, zero, 0x98 | a2 = 0x98;
0x001587c0 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x001587c4 lw a0, 8(v0) | a0 = *((v0 + 2));
0x001587c8 addiu a1, s3, -0x6d8c | a1 = s3 + -0x6d8c;
0x001587cc jalr t9 | t9 ();
0x001587d0 lw v0, (s1) | v0 = *(s1);
0x001587d4 lw gp, 0x20(sp) | gp = *(var_20h);
0x001587d8 addiu a3, s3, -0x6d8c | a3 = s3 + -0x6d8c;
0x001587dc sw zero, 8(v0) | *((v0 + 2)) = 0;
0x001587e0 sw zero, (v0) | *(v0) = 0;
0x001587e4 addiu v0, zero, 0x9b | v0 = 0x9b;
0x001587e8 sw v0, 0x10(sp) | *(var_10h) = v0;
| label_6:
0x001587ec addiu a2, zero, 0x41 | a2 = 0x41;
0x001587f0 b 0x158848 | goto label_7;
| label_14:
0x001587f4 lw a1, -0x7e98(gp) | a1 = *((gp - 8102));
0x001587f8 lw t9, -0x56b4(gp) | t9 = *((gp - 5549));
0x001587fc addiu a2, zero, 5 | a2 = 5;
0x00158800 addiu a1, a1, 0x4be4 | a1 += 0x4be4;
0x00158804 move a0, s3 | a0 = s3;
0x00158808 jalr t9 | t9 ();
0x0015880c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00158810 bnez v0, 0x158a0c | goto label_17;
| }
0x00158814 lw a1, -0x7e98(gp) | a1 = *((gp - 8102));
0x00158818 lw t9, -0x72c0(gp) | t9 = *((gp - 7344));
0x0015881c addiu a1, a1, -0x7ee8 | a1 += -0x7ee8;
0x00158820 addiu a0, s3, 5 | a0 = s3 + 5;
0x00158824 jalr t9 | t9 ();
0x00158828 move s5, v0 | s5 = v0;
0x0015882c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00158830 bnez v0, 0x1589dc | goto label_18;
| }
0x00158834 addiu v0, zero, 0xa5 | v0 = 0xa5;
| label_5:
0x00158838 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x0015883c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158840 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x00158844 addiu a2, zero, 0x20 | a2 = 0x20;
| label_7:
0x00158848 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0015884c addiu a1, zero, 0x96 | a1 = 0x96;
0x00158850 addiu a0, zero, 0x22 | a0 = 0x22;
0x00158854 jalr t9 | t9 ();
0x00158858 lw gp, 0x20(sp) | gp = *(var_20h);
0x0015885c b 0x1586c0 | goto label_3;
| do {
0x00158860 lw v0, (s1) | v0 = *(s1);
0x00158864 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00158868 addiu a3, zero, 0xaf | a3 = 0xaf;
0x0015886c lw a1, (v0) | a1 = *(v0);
0x00158870 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00158874 addu a1, s3, a1 | a1 = s3 + a1;
0x00158878 move a2, fp | a2 = fp;
0x0015887c addiu a1, a1, 1 | a1++;
0x00158880 jalr t9 | t9 ();
0x00158884 move s4, v0 | s4 = v0;
0x00158888 lw gp, 0x20(sp) | gp = *(var_20h);
0x0015888c lw v0, (s1) | v0 = *(s1);
| if (s4 == 0) {
0x00158890 bnez s4, 0x158944 |
0x00158894 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x00158898 lw a0, 8(v0) | a0 = *((v0 + 2));
0x0015889c addiu a2, zero, 0xb2 | a2 = 0xb2;
0x001588a0 addiu a1, s6, -0x6d8c | a1 = s6 + -0x6d8c;
0x001588a4 jalr t9 | t9 ();
0x001588a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x001588ac lw v0, (s1) | v0 = *(s1);
0x001588b0 addiu a3, s6, -0x6d8c | a3 = s6 + -0x6d8c;
0x001588b4 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x001588b8 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x001588bc sw zero, (v0) | *(v0) = 0;
0x001588c0 addiu v0, zero, 0xb6 | v0 = 0xb6;
0x001588c4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x001588c8 addiu a2, zero, 0x41 | a2 = 0x41;
0x001588cc addiu a1, zero, 0x96 | a1 = 0x96;
0x001588d0 addiu a0, zero, 0x22 | a0 = 0x22;
0x001588d4 jalr t9 | t9 ();
0x001588d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x001588dc lw v0, 8(s0) | v0 = *((s0 + 2));
0x001588e0 lw a2, (s0) | a2 = *(s0);
0x001588e4 sw v0, 0x18(sp) | *(var_18h) = v0;
0x001588e8 lw v0, -0x7e24(gp) | v0 = *((gp - 8073));
0x001588ec lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x001588f0 addiu v0, v0, -0x76e0 | v0 += -0x76e0;
0x001588f4 lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x001588f8 sw v0, 0x14(sp) | *(var_14h) = v0;
0x001588fc lw v0, 4(s0) | v0 = *((s0 + 1));
0x00158900 lw t9, -0x7ec8(gp) | t9 = *((gp - 8114));
0x00158904 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158908 addiu a3, a3, -0x76f4 | a3 += -0x76f4;
0x0015890c addiu a1, a1, -0x76ec | a1 += -0x76ec;
0x00158910 addiu a0, zero, 6 | a0 = 6;
0x00158914 jalr t9 | t9 ();
0x00158918 lw gp, 0x20(sp) | gp = *(var_20h);
0x0015891c lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00158920 move a0, s5 | a0 = s5;
0x00158924 jalr t9 | t9 ();
0x00158928 lw gp, 0x20(sp) | gp = *(var_20h);
| label_16:
0x0015892c lw t9, -0x7d84(gp) | t9 = *((gp - 8033));
| if (s7 == 0) {
0x00158930 beqz s7, 0x158b00 | goto label_19;
| }
0x00158934 lw a0, (s1) | a0 = *(s1);
0x00158938 jalr t9 | t9 ();
0x0015893c sw zero, (s1) | *(s1) = 0;
0x00158940 b 0x158540 | goto label_2;
| }
0x00158944 lw a0, (v0) | a0 = *(v0);
0x00158948 lw t9, -0x550c(gp) | t9 = *((gp - 5443));
0x0015894c lw a1, 0x828(sp) | a1 = *(var_828h);
0x00158950 move a2, s3 | a2 = s3;
0x00158954 sw s4, 8(v0) | *((v0 + 2)) = s4;
0x00158958 addu a0, s4, a0 | a0 = s4 + a0;
0x0015895c jalr t9 | t9 ();
0x00158960 lw v1, (s1) | v1 = *(s1);
0x00158964 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158968 lw v0, (v1) | v0 = *(v1);
0x0015896c addu s3, s3, v0 | s3 += v0;
0x00158970 lw v0, 8(v1) | v0 = *((v1 + 2));
0x00158974 sw s3, (v1) | *(v1) = s3;
0x00158978 addu s3, v0, s3 | s3 = v0 + s3;
0x0015897c sb zero, (s3) | *(s3) = 0;
| label_4:
0x00158980 lw t9, -0x7f7c(gp) | t9 = *((gp - 8159));
0x00158984 lw a1, 0x828(sp) | a1 = *(var_828h);
0x00158988 addiu a2, zero, 0x800 | a2 = aav.0x00000800;
0x0015898c move a0, s5 | a0 = s5;
0x00158990 jalr t9 | t9 ();
0x00158994 move s3, v0 | s3 = v0;
0x00158998 lw gp, 0x20(sp) | gp = *(var_20h);
0x0015899c bgtz v0, 0x158860 |
| } while (v0 > 0);
0x001589a0 lw t9, -0x7940(gp) | t9 = *((gp - 7760));
| if (v0 != 0) {
0x001589a4 bnez v0, 0x1589c0 | goto label_20;
| }
0x001589a8 addiu a1, zero, 8 | a1 = 8;
0x001589ac move a0, s5 | a0 = s5;
0x001589b0 jalr t9 | t9 ();
0x001589b4 move s3, v0 | s3 = v0;
0x001589b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x001589bc bnez v0, 0x158980 | goto label_4;
| }
| label_20:
0x001589c0 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x001589c4 move a0, s5 | a0 = s5;
0x001589c8 jalr t9 | t9 ();
0x001589cc lw gp, 0x20(sp) | gp = *(var_20h);
| if (s3 != 0) {
0x001589d0 beqz s3, 0x1589f4 |
0x001589d4 addiu v0, zero, 0xc4 | v0 = 0xc4;
0x001589d8 b 0x158838 | goto label_5;
| label_18:
0x001589dc lw s6, -0x7e24(gp) | s6 = *((gp - 8073));
0x001589e0 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x001589e4 move s4, zero | s4 = 0;
0x001589e8 sw v0, 0x828(sp) | *(var_828h) = v0;
0x001589ec addiu fp, s6, -0x6d8c | fp = s6 + -0x6d8c;
0x001589f0 b 0x158980 | goto label_4;
| }
0x001589f4 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
| if (s4 != 0) {
0x001589f8 bnez s4, 0x158590 | goto label_1;
| }
0x001589fc addiu v0, zero, 0xe5 | v0 = 0xe5;
0x00158a00 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158a04 addiu a3, a3, -0x6d8c | a3 += -0x6d8c;
0x00158a08 b 0x1587ec | goto label_6;
| label_17:
0x00158a0c lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x00158a10 lw t9, -0x56b4(gp) | t9 = *((gp - 5549));
0x00158a14 addiu a2, zero, 5 | a2 = 5;
0x00158a18 addiu a1, a1, -0x6d6c | a1 += -0x6d6c;
0x00158a1c move a0, s3 | a0 = s3;
0x00158a20 jalr t9 | t9 ();
0x00158a24 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158a28 lw s4, -0x7e24(gp) | s4 = *((gp - 8073));
| if (v0 == 0) {
0x00158a2c bnez v0, 0x158aec |
0x00158a30 lw t9, -0x55cc(gp) | t9 = *((gp - 5491));
0x00158a34 addiu a0, s3, 5 | a0 = s3 + 5;
0x00158a38 jalr t9 | t9 ();
0x00158a3c lw v1, (s1) | v1 = *(s1);
0x00158a40 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158a44 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00158a48 lw a1, (v1) | a1 = *(v1);
0x00158a4c lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00158a50 addu a1, v0, a1 | a1 = v0 + a1;
0x00158a54 lw a0, 8(v1) | a0 = *((v1 + 2));
0x00158a58 addiu a3, zero, 0xcb | a3 = 0xcb;
0x00158a5c addiu a2, s4, -0x6d8c | a2 = s4 + -0x6d8c;
0x00158a60 addiu a1, a1, 1 | a1++;
0x00158a64 jalr t9 | t9 ();
0x00158a68 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158a6c lw v1, (s1) | v1 = *(s1);
| if (v0 != 0) {
0x00158a70 beqz v0, 0x158ab8 |
0x00158a74 lw a0, (v1) | a0 = *(v1);
0x00158a78 lw a1, 8(s0) | a1 = *((s0 + 2));
0x00158a7c lw t9, -0x550c(gp) | t9 = *((gp - 5443));
0x00158a80 lw a2, 0x28(sp) | a2 = *(var_28h);
0x00158a84 sw v0, 8(v1) | *((v1 + 2)) = v0;
0x00158a88 addu a0, v0, a0 | a0 = v0 + a0;
0x00158a8c addiu a1, a1, 5 | a1 += 5;
0x00158a90 jalr t9 | t9 ();
0x00158a94 lw v1, (s1) | v1 = *(s1);
0x00158a98 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00158a9c lw v0, (v1) | v0 = *(v1);
0x00158aa0 addu v0, v0, a0 | v0 += a0;
0x00158aa4 sw v0, (v1) | *(v1) = v0;
0x00158aa8 lw v1, 8(v1) | v1 = *((v1 + 2));
0x00158aac addu v0, v1, v0 | v0 = v1 + v0;
0x00158ab0 sb zero, (v0) | *(v0) = 0;
0x00158ab4 b 0x158590 | goto label_1;
| }
0x00158ab8 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x00158abc lw a0, 8(v1) | a0 = *((v1 + 2));
0x00158ac0 addiu a2, zero, 0xd7 | a2 = 0xd7;
0x00158ac4 addiu a1, s4, -0x6d8c | a1 = s4 + -0x6d8c;
0x00158ac8 jalr t9 | t9 ();
0x00158acc lw v0, (s1) | v0 = *(s1);
0x00158ad0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00158ad4 addiu a3, s4, -0x6d8c | a3 = s4 + -0x6d8c;
0x00158ad8 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00158adc sw zero, (v0) | *(v0) = 0;
0x00158ae0 addiu v0, zero, 0xda | v0 = 0xda;
0x00158ae4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158ae8 b 0x1587ec | goto label_6;
| }
0x00158aec addiu v0, zero, 0xe0 | v0 = 0xe0;
0x00158af0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00158af4 addiu a3, s4, -0x6d8c | a3 = s4 + -0x6d8c;
0x00158af8 addiu a2, zero, 0x98 | a2 = 0x98;
0x00158afc b 0x158848 | goto label_7;
| label_19:
0x00158b00 move s2, zero | s2 = 0;
0x00158b04 b 0x158540 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x640c4 */
| #include <stdint.h>
|
; (fcn) sym.BIO_method_type () | void BIO_method_type () {
0x000640c4 lw v0, (a0) | v0 = *(a0);
0x000640c8 lw v0, (v0) | v0 = *(v0);
0x000640cc jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x7b1b8 */
| #include <stdint.h>
|
; (fcn) sym.BN_add_word () | void BN_add_word () {
0x0007b1b8 lui gp, 0x15 |
0x0007b1bc addiu gp, gp, -0x45f8 |
0x0007b1c0 addu gp, gp, t9 | gp += t9;
0x0007b1c4 addiu sp, sp, -0x30 |
0x0007b1c8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0007b1cc sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0007b1d0 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0007b1d4 sw s2, 0x24(sp) | *(var_24h) = s2;
0x0007b1d8 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0007b1dc sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0007b1e0 lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
0x0007b1e4 bnez a1, 0x7b20c |
| while (v0 != s1) {
| label_1:
0x0007b1e8 addiu s3, zero, 1 | s3 = 1;
| label_0:
0x0007b1ec lw ra, 0x2c(sp) | ra = *(var_2ch);
| label_3:
0x0007b1f0 move v0, s3 | v0 = s3;
0x0007b1f4 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0007b1f8 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0007b1fc lw s1, 0x20(sp) | s1 = *(var_20h);
0x0007b200 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0007b204 addiu sp, sp, 0x30 |
0x0007b208 jr ra | return v0;
0x0007b20c move s0, a0 | s0 = a0;
0x0007b210 move s2, a1 | s2 = a1;
0x0007b214 bal 0x729f4 | sym_BN_is_zero ();
0x0007b218 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0007b21c beqz v0, 0x7b248 |
0x0007b220 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0007b224 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0007b228 lw s1, 0x20(sp) | s1 = *(var_20h);
0x0007b22c move a1, s2 | a1 = s2;
0x0007b230 move a0, s0 | a0 = s0;
0x0007b234 lw s2, 0x24(sp) | s2 = *(var_24h);
0x0007b238 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0007b23c lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0007b240 addiu sp, sp, 0x30 |
0x0007b244 b 0x73114 | void (*0x73114)() ();
| }
0x0007b248 lw s3, 0xc(s0) | s3 = *((s0 + 3));
0x0007b24c move s1, zero | s1 = 0;
| if (s3 != 0) {
0x0007b250 bnez s3, 0x7b2c8 | goto label_4;
| }
| label_2:
0x0007b254 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0007b258 slt v1, s1, v0 | v1 = (s1 < v0) ? 1 : 0;
| if (v1 != 0) {
0x0007b25c bnez v1, 0x7b29c | goto label_5;
| }
0x0007b260 nop |
0x0007b264 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
0x0007b268 bne v0, s1, 0x7b1e8 |
| }
0x0007b26c addiu a1, s1, 1 | a1 = s1 + 1;
0x0007b270 move a0, s0 | a0 = s0;
0x0007b274 bal 0x731bc | fcn_000731bc ();
0x0007b278 sll s1, s1, 2 | s1 <<= 2;
| if (v0 == 0) {
0x0007b27c beqz v0, 0x7b1ec | goto label_0;
| }
0x0007b280 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0007b284 addiu v0, v0, 1 | v0++;
0x0007b288 sw v0, 4(s0) | *((s0 + 1)) = v0;
0x0007b28c lw v0, (s0) | v0 = *(s0);
0x0007b290 addu s1, v0, s1 | s1 = v0 + s1;
0x0007b294 sw s2, (s1) | *(s1) = s2;
0x0007b298 b 0x7b1e8 | goto label_1;
| label_5:
0x0007b29c lw v1, (s0) | v1 = *(s0);
0x0007b2a0 sll v0, s1, 2 | v0 = s1 << 2;
0x0007b2a4 addu v1, v1, v0 | v1 += v0;
0x0007b2a8 addiu s1, s1, 1 | s1++;
0x0007b2ac lw v0, (v1) | v0 = *(v1);
0x0007b2b0 addu v0, s2, v0 | v0 = s2 + v0;
0x0007b2b4 sltu s2, v0, s2 | s2 = (v0 < s2) ? 1 : 0;
0x0007b2b8 sw v0, (v1) | *(v1) = v0;
| if (s2 == 0) {
0x0007b2bc beqz s2, 0x7b1e8 | goto label_1;
| }
0x0007b2c0 addiu s2, zero, 1 | s2 = 1;
0x0007b2c4 b 0x7b254 | goto label_2;
| label_4:
0x0007b2c8 lw t9, -0x7750(gp) | t9 = *((gp - 7636));
0x0007b2cc move a1, s2 | a1 = s2;
0x0007b2d0 move a0, s0 | a0 = s0;
0x0007b2d4 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x0007b2d8 bal 0x7b07c | sym_BN_sub_word ();
0x0007b2dc lw gp, 0x10(sp) | gp = *(var_10h);
0x0007b2e0 move a0, s0 | a0 = s0;
0x0007b2e4 lw t9, -0x7f0c(gp) | t9 = *((gp - 8131));
0x0007b2e8 move s3, v0 | s3 = v0;
0x0007b2ec bal 0x729f4 | sym_BN_is_zero ();
0x0007b2f0 lw ra, 0x2c(sp) | ra = *(var_2ch);
| if (v0 != 0) {
0x0007b2f4 bnez v0, 0x7b1f0 | goto label_3;
| }
0x0007b2f8 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0007b2fc sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0007b300 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x0007b304 b 0x7b1ec | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x79b08 */
| #include <stdint.h>
|
; (fcn) sym.BN_lshift1 () | void BN_lshift1 () {
0x00079b08 lui gp, 0x15 |
0x00079b0c addiu gp, gp, -0x2f48 |
0x00079b10 addu gp, gp, t9 | gp += t9;
0x00079b14 addiu sp, sp, -0x28 |
0x00079b18 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
0x00079b1c sw gp, 0x10(sp) | *(var_10h) = gp;
0x00079b20 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00079b24 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00079b28 sw ra, 0x24(sp) | *(var_24h) = ra;
0x00079b2c move s0, a0 | s0 = a0;
0x00079b30 move s1, a1 | s1 = a1;
| if (a0 == a1) {
0x00079b34 beq a0, a1, 0x79bb0 | goto label_3;
| }
0x00079b38 lw v0, 0xc(a1) | v0 = *((a1 + 3));
0x00079b3c lw a1, 4(a1) | a1 = *((a1 + 1));
0x00079b40 sw v0, 0xc(a0) | *((a0 + 3)) = v0;
0x00079b44 addiu a1, a1, 1 | a1++;
0x00079b48 bal 0x731bc | fcn_000731bc ();
0x00079b4c move v0, zero | v0 = 0;
0x00079b50 bnez v0, 0x79b68 |
| while (1) {
0x00079b54 lw ra, 0x24(sp) | ra = *(var_24h);
| label_1:
0x00079b58 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00079b5c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00079b60 addiu sp, sp, 0x28 |
0x00079b64 jr ra | return v1;
0x00079b68 lw v0, 4(s1) | v0 = *((s1 + 1));
0x00079b6c sw v0, 4(s0) | *((s0 + 1)) = v0;
| label_0:
0x00079b70 lw a2, (s1) | a2 = *(s1);
0x00079b74 lw v0, (s0) | v0 = *(s0);
0x00079b78 move a1, zero | a1 = 0;
0x00079b7c move v1, zero | v1 = 0;
| label_2:
0x00079b80 lw a0, 4(s1) | a0 = *((s1 + 1));
0x00079b84 slt a0, a1, a0 | a0 = (a1 < a0) ? 1 : 0;
| if (a0 != 0) {
0x00079b88 bnez a0, 0x79bcc | goto label_4;
| }
0x00079b8c nop |
0x00079b90 addiu v1, zero, 1 | v1 = 1;
| if (v1 != 0) {
0x00079b94 beqz v1, 0x79ba8 |
0x00079b98 sw v1, (v0) | *(v0) = v1;
0x00079b9c lw v0, 4(s0) | v0 = *((s0 + 1));
0x00079ba0 addiu v0, v0, 1 | v0++;
0x00079ba4 sw v0, 4(s0) | *((s0 + 1)) = v0;
| }
0x00079ba8 addiu v0, zero, 1 | v0 = 1;
0x00079bac b 0x79b54 |
| }
| label_3:
0x00079bb0 lw a1, 4(a0) | a1 = *((a0 + 1));
0x00079bb4 addiu a1, a1, 1 | a1++;
0x00079bb8 bal 0x731bc | fcn_000731bc ();
0x00079bbc move v0, zero | v0 = 0;
| if (v0 != 0) {
0x00079bc0 bnez v0, 0x79b70 | goto label_0;
| }
0x00079bc4 lw ra, 0x24(sp) | ra = *(var_24h);
0x00079bc8 b 0x79b58 | goto label_1;
| label_4:
0x00079bcc addiu a2, a2, 4 | a2 += 4;
0x00079bd0 lw a3, -4(a2) | a3 = *((a2 - 1));
0x00079bd4 addiu v0, v0, 4 | v0 += 4;
0x00079bd8 sll a0, a3, 1 | a0 = a3 << 1;
0x00079bdc or v1, a0, v1 | v1 = a0 | v1;
0x00079be0 sw v1, -4(v0) | *((v0 - 1)) = v1;
0x00079be4 addiu a1, a1, 1 | a1++;
0x00079be8 srl v1, a3, 0x1f | v1 = a3 >> 0x1f;
0x00079bec b 0x79b80 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x6efb4 */
| #include <stdint.h>
|
; (fcn) sym.BN_mod_exp_mont_consttime () | void BN_mod_exp_mont_consttime () {
0x0006efb4 lui gp, 0x15 |
0x0006efb8 addiu gp, gp, 0x7c0c |
0x0006efbc addu gp, gp, t9 | gp += t9;
0x0006efc0 addiu sp, sp, -0x88 |
0x0006efc4 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x0006efc8 sw fp, 0x80(sp) | *(var_80h) = fp;
0x0006efcc move fp, sp | fp = sp;
0x0006efd0 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x0006efd4 sw s6, 0x78(sp) | *(var_78h) = s6;
0x0006efd8 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0006efdc sw gp, 0x18(sp) | *(var_18h) = gp;
0x0006efe0 sw a0, 0x88(fp) | *(arg_88h) = a0;
0x0006efe4 sw ra, 0x84(sp) | *(var_84h) = ra;
0x0006efe8 sw s5, 0x74(sp) | *(var_74h) = s5;
0x0006efec sw s4, 0x70(sp) | *(var_70h) = s4;
0x0006eff0 sw s2, 0x68(sp) | *(var_68h) = s2;
0x0006eff4 sw s1, 0x64(sp) | *(var_64h) = s1;
0x0006eff8 sw s0, 0x60(sp) | *(var_60h) = s0;
0x0006effc sw a2, 0x90(fp) | *(arg_90h) = a2;
0x0006f000 move a0, a3 | a0 = a3;
0x0006f004 move s7, a1 | s7 = a1;
0x0006f008 move s6, a3 | s6 = a3;
0x0006f00c lw s3, 0x98(fp) | s3 = *(arg_98h);
0x0006f010 bal 0x72c5c | sym_BN_is_odd ();
0x0006f014 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f018 bnez v0, 0x6f04c |
0x0006f01c lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006f020 move s0, v0 | s0 = v0;
0x0006f024 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006f028 addiu v0, zero, 0x266 | v0 = 0x266;
0x0006f02c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006f030 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006f034 addiu a2, zero, 0x66 | a2 = 0x66;
0x0006f038 addiu a1, zero, 0x7c | a1 = 0x7c;
0x0006f03c addiu a0, zero, 3 | a0 = 3;
0x0006f040 jalr t9 | t9 ();
| label_12:
0x0006f044 b 0x6f08c | goto label_13;
0x0006f048 nop |
| }
0x0006f04c lw v0, 0x90(fp) | v0 = *(arg_90h);
0x0006f050 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0006f054 sll v0, v0, 5 | v0 <<= 5;
0x0006f058 sw v0, 0x48(fp) | *(var_48h) = v0;
| if (v0 != 0) {
0x0006f05c bnez v0, 0x6f0d8 | goto label_14;
| }
0x0006f060 lw t9, -0x77ec(gp) | t9 = *((gp - 7675));
0x0006f064 addiu a1, zero, 1 | a1 = 1;
0x0006f068 move a0, s6 | a0 = s6;
0x0006f06c bal 0x729bc | sym_BN_abs_is_word ();
0x0006f070 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f074 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
| if (v0 == 0) {
0x0006f078 beqz v0, 0x6f0c4 | goto label_15;
| }
0x0006f07c lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f080 move a1, zero | a1 = 0;
0x0006f084 addiu s0, zero, 1 | s0 = 1;
0x0006f088 bal 0x73114 | sym_BN_set_word ();
| do {
| label_13:
0x0006f08c move sp, fp |
0x0006f090 move v0, s0 | v0 = s0;
0x0006f094 lw ra, 0x84(sp) | ra = *(var_84h);
0x0006f098 lw fp, 0x80(sp) | fp = *(var_80h);
0x0006f09c lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x0006f0a0 lw s6, 0x78(sp) | s6 = *(var_78h);
0x0006f0a4 lw s5, 0x74(sp) | s5 = *(var_74h);
0x0006f0a8 lw s4, 0x70(sp) | s4 = *(var_70h);
0x0006f0ac lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x0006f0b0 lw s2, 0x68(sp) | s2 = *(var_68h);
0x0006f0b4 lw s1, 0x64(sp) | s1 = *(var_64h);
0x0006f0b8 lw s0, 0x60(sp) | s0 = *(var_60h);
0x0006f0bc addiu sp, sp, 0x88 |
0x0006f0c0 jr ra | return v0;
| label_15:
0x0006f0c4 lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f0c8 addiu a1, zero, 1 | a1 = 1;
0x0006f0cc bal 0x73114 | sym_BN_set_word ();
0x0006f0d0 move s0, v0 | s0 = v0;
0x0006f0d4 b 0x6f08c |
| } while (1);
| label_14:
0x0006f0d8 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x0006f0dc move a0, s3 | a0 = s3;
0x0006f0e0 lw s2, 4(s6) | s2 = *((s6 + 1));
0x0006f0e4 bal 0x6d9bc | sym_BN_CTX_start ();
0x0006f0e8 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f0ec lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f0f0 bnez v0, 0x6f158 | goto label_16;
| }
0x0006f0f4 lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
0x0006f0f8 bal 0x74a78 | sym_BN_MONT_CTX_new ();
0x0006f0fc nop |
0x0006f100 move s4, v0 | s4 = v0;
0x0006f104 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f108 beqz v0, 0x6f604 | goto label_17;
| }
0x0006f10c lw t9, -0x77d0(gp) | t9 = *((gp - 7668));
0x0006f110 move a2, s3 | a2 = s3;
0x0006f114 move a1, s6 | a1 = s6;
0x0006f118 move a0, v0 | a0 = v0;
0x0006f11c bal 0x74ba8 | sym_BN_MONT_CTX_set ();
0x0006f120 move s0, v0 | s0 = v0;
0x0006f124 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f128 beqz v0, 0x6f618 | goto label_18;
| }
| do {
0x0006f12c lw v0, 0xc(s7) | v0 = *((s7 + 3));
0x0006f130 lw t9, -0x7898(gp) | t9 = *((gp - 7718));
| if (v0 == 0) {
0x0006f134 beqz v0, 0x6f160 | goto label_19;
| }
| label_0:
0x0006f138 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f13c move a0, s3 | a0 = s3;
0x0006f140 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f144 move s0, v0 | s0 = v0;
0x0006f148 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f14c bnez v0, 0x6f40c | goto label_20;
| }
| label_1:
0x0006f150 sw zero, 0x54(fp) | *(var_54h) = 0;
0x0006f154 b 0x6f45c | goto label_21;
| label_16:
0x0006f158 lw s4, 0x9c(fp) | s4 = *(arg_9ch);
0x0006f15c b 0x6f12c |
| } while (1);
| label_19:
0x0006f160 move a1, s6 | a1 = s6;
0x0006f164 move a0, s7 | a0 = s7;
0x0006f168 bal 0x726f4 | sym_BN_ucmp ();
0x0006f16c lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 >= 0) {
0x0006f170 bgez v0, 0x6f138 | goto label_0;
| }
| label_2:
0x0006f174 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f178 slti v0, v0, 0x3aa | v0 = (v0 < 0x3aa) ? 1 : 0;
0x0006f17c addiu s0, zero, 6 | s0 = 6;
| if (v0 != 0) {
0x0006f180 beqz v0, 0x6f1bc |
0x0006f184 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f188 slti v0, v0, 0x133 | v0 = (v0 < 0x133) ? 1 : 0;
0x0006f18c addiu s0, zero, 5 | s0 = 5;
| if (v0 == 0) {
0x0006f190 beqz v0, 0x6f1bc | goto label_22;
| }
0x0006f194 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f198 slti v0, v0, 0x5a | v0 = (v0 < 0x5a) ? 1 : 0;
0x0006f19c addiu s0, zero, 4 | s0 = 4;
| if (v0 == 0) {
0x0006f1a0 beqz v0, 0x6f1bc | goto label_22;
| }
0x0006f1a4 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f1a8 addiu v1, zero, 1 | v1 = 1;
0x0006f1ac slti s0, v0, 0x17 | s0 = (v0 < 0x17) ? 1 : 0;
0x0006f1b0 addiu v0, zero, 3 | v0 = 3;
| if (s0 == 0) {
0x0006f1b4 movn v0, v1, s0 | v0 = v1;
| }
0x0006f1b8 move s0, v0 | s0 = v0;
| }
| label_22:
0x0006f1bc addiu v0, zero, 1 | v0 = 1;
0x0006f1c0 sllv v0, v0, s0 | v0 <<= s0;
0x0006f1c4 sw v0, 0x50(fp) | *(var_50h) = v0;
0x0006f1c8 sll v1, s2, 1 | v1 = s2 << 1;
0x0006f1cc lw a0, 0x50(fp) | a0 = *(var_50h);
0x0006f1d0 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 != 0) {
0x0006f1d4 movz a0, v1, v0 | a0 = v1;
| }
0x0006f1d8 sllv v1, s2, s0 | v1 = s2 << s0;
0x0006f1dc addu v0, a0, v1 | v0 = a0 + v1;
0x0006f1e0 sll v0, v0, 2 | v0 <<= 2;
0x0006f1e4 sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x0006f1e8 sw v0, 0x54(fp) | *(var_54h) = v0;
0x0006f1ec addiu a0, v0, 0x40 | a0 = v0 + 0x40;
0x0006f1f0 slti v0, v0, 0xc00 | v0 = (v0 < aav.0x00000c00) ? 1 : 0;
0x0006f1f4 sw v0, 0x58(fp) | *(var_58h) = v0;
| if (v0 == 0) {
0x0006f1f8 beqz v0, 0x6f43c | goto label_23;
| }
0x0006f1fc lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x0006f200 addiu v0, v0, 0x4e | v0 += 0x4e;
0x0006f204 srl v0, v0, 3 | v0 >>= 3;
0x0006f208 sll v0, v0, 3 | v0 <<= 3;
0x0006f20c subu sp, sp, v0 |
0x0006f210 addiu s5, sp, 0x18 | s5 = sp + 0x18;
| label_3:
0x0006f214 andi s1, s5, 0x3f | s1 = s5 & 0x3f;
0x0006f218 subu s1, s5, s1 | __asm ("subu s1, s5, s1");
0x0006f21c lw t9, -0x5604(gp) | t9 = *((gp - 5505));
0x0006f220 addiu s1, s1, 0x40 | s1 += 0x40;
0x0006f224 lw a2, 0x4c(fp) | a2 = *(var_4ch);
0x0006f228 move a0, s1 | a0 = s1;
0x0006f22c move a1, zero | a1 = 0;
0x0006f230 jalr t9 | t9 ();
0x0006f234 lw v0, 0x58(fp) | v0 = *(var_58h);
0x0006f238 sll a0, s2, 2 | a0 = s2 << 2;
| if (v0 == 0) {
0x0006f23c movn s5, zero, v0 | s5 = 0;
| }
0x0006f240 sllv v0, s2, s0 | v0 = s2 << s0;
0x0006f244 sll v0, v0, 2 | v0 <<= 2;
0x0006f248 addu v0, s1, v0 | v0 = s1 + v0;
0x0006f24c addu v1, v0, a0 | v1 = v0 + a0;
0x0006f250 sw v1, 0x20(fp) | *(var_20h) = v1;
0x0006f254 addiu v1, zero, 2 | v1 = 2;
0x0006f258 sw v1, 0x30(fp) | *(var_30h) = v1;
0x0006f25c sw v1, 0x44(fp) | *(var_44h) = v1;
0x0006f260 lw v1, (s6) | v1 = *(s6);
0x0006f264 sw zero, 0x24(fp) | *(var_24h) = 0;
0x0006f268 addu a0, v1, a0 | a0 = v1 + a0;
0x0006f26c sw zero, 0x38(fp) | *(var_38h) = 0;
0x0006f270 sw s2, 0x28(fp) | *(var_28h) = s2;
0x0006f274 sw s2, 0x3c(fp) | *(var_3ch) = s2;
0x0006f278 sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x0006f27c sw zero, 0x40(fp) | *(var_40h) = 0;
0x0006f280 lw a0, -4(a0) | a0 = *((a0 - 1));
0x0006f284 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f288 sw v0, 0x34(fp) | *(var_34h) = v0;
| if (a0 >= 0) {
0x0006f28c bgez a0, 0x6f488 | goto label_24;
| }
0x0006f290 lw a0, (v1) | a0 = *(v1);
0x0006f294 addiu v0, v0, 4 | v0 += 4;
0x0006f298 negu a0, a0 | __asm ("negu a0, a0");
0x0006f29c sw a0, -4(v0) | *((v0 - 1)) = a0;
0x0006f2a0 addiu v1, v1, 4 | v1 += 4;
0x0006f2a4 addiu a0, zero, 1 | a0 = 1;
| label_4:
0x0006f2a8 slt a1, a0, s2 | a1 = (a0 < s2) ? 1 : 0;
0x0006f2ac addiu a0, a0, 1 | a0++;
| if (a1 != 0) {
0x0006f2b0 bnez a1, 0x6f470 | goto label_25;
| }
0x0006f2b4 sw s2, 0x38(fp) | *(var_38h) = s2;
| label_5:
0x0006f2b8 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x0006f2bc lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006f2c0 move a3, s3 | a3 = s3;
0x0006f2c4 move a2, s4 | a2 = s4;
0x0006f2c8 move a1, s7 | a1 = s7;
0x0006f2cc sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x0006f2d0 move a0, v0 | a0 = v0;
0x0006f2d4 bal 0x749d4 | fcn_000749d4 ();
0x0006f2d8 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f2dc beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f2e0 lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f2e4 addiu s6, fp, 0x34 | s6 = fp + 0x34;
0x0006f2e8 addiu v0, v0, -0x1988 | v0 += -0x1988;
0x0006f2ec sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f2f0 move a3, zero | a3 = 0;
0x0006f2f4 move a2, s1 | a2 = s1;
0x0006f2f8 move a1, s2 | a1 = s2;
0x0006f2fc move a0, s6 | a0 = s6;
0x0006f300 move t9, v0 | t9 = v0;
0x0006f304 sw v0, 0x58(fp) | *(var_58h) = v0;
0x0006f308 bal 0x6e678 | fcn_0006e678 ();
0x0006f30c lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f310 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f314 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x0006f318 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f31c sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f320 addiu a3, zero, 1 | a3 = 1;
0x0006f324 move a2, s1 | a2 = s1;
0x0006f328 move a1, s2 | a1 = s2;
0x0006f32c jalr t9 | t9 ();
0x0006f330 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f334 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f338 addiu v0, zero, 1 | v0 = 1;
0x0006f33c lw a2, 0x4c(fp) | a2 = *(var_4ch);
| if (s0 != v0) {
0x0006f340 bne s0, v0, 0x6f4c0 | goto label_26;
| }
| label_8:
0x0006f344 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f348 lw a0, 0x90(fp) | a0 = *(arg_90h);
0x0006f34c addiu s7, v0, -1 | s7 = v0 + -1;
0x0006f350 div zero, s7, s0 | __asm ("div zero, s7, s0");
0x0006f354 teq s0, zero, 7 | __asm ("teq s0, zero, 7");
0x0006f358 mfhi s7 | __asm ("mfhi s7");
0x0006f35c addiu s7, s7, 1 | s7++;
0x0006f360 subu v0, v0, s7 | __asm ("subu v0, v0, s7");
0x0006f364 move a1, v0 | a1 = v0;
0x0006f368 sw v0, 0x48(fp) | *(var_48h) = v0;
0x0006f36c lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f370 addiu v0, v0, -0x1a00 | v0 += -0x1a00;
0x0006f374 move t9, v0 | t9 = v0;
0x0006f378 sw v0, 0x58(fp) | *(var_58h) = v0;
0x0006f37c bal 0x6e600 | fcn_0006e600 ();
0x0006f380 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f384 addiu a3, zero, 1 | a3 = 1;
0x0006f388 sllv a3, a3, s7 | a3 <<= s7;
0x0006f38c addiu a3, a3, -1 | a3 += -1;
0x0006f390 and a3, a3, v0 | a3 &= v0;
0x0006f394 lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f398 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f39c addiu v0, v0, -0x1934 | v0 += -0x1934;
0x0006f3a0 move a2, s1 | a2 = s1;
0x0006f3a4 move a1, s2 | a1 = s2;
0x0006f3a8 move a0, s6 | a0 = s6;
0x0006f3ac move t9, v0 | t9 = v0;
0x0006f3b0 sw v0, 0x5c(fp) | *(var_5ch) = v0;
0x0006f3b4 bal 0x6e6cc | fcn_0006e6cc ();
0x0006f3b8 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f3bc beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f3c0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0006f3c4 addiu v0, v0, -1 | v0 += -1;
0x0006f3c8 sw v0, 0x50(fp) | *(var_50h) = v0;
| label_11:
0x0006f3cc lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f3d0 move s7, zero | s7 = 0;
| if (v0 > 0) {
0x0006f3d4 bgtz v0, 0x6f564 | goto label_27;
| }
0x0006f3d8 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
0x0006f3dc lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f3e0 move a3, s3 | a3 = s3;
0x0006f3e4 move a2, s4 | a2 = s4;
0x0006f3e8 move a1, s6 | a1 = s6;
0x0006f3ec bal 0x7497c | sym_BN_from_montgomery ();
0x0006f3f0 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f3f4 sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
| label_6:
0x0006f3f8 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f3fc lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
| if (v0 != 0) {
0x0006f400 bnez v0, 0x6f638 | goto label_28;
| }
0x0006f404 b 0x6f628 | goto label_29;
0x0006f408 nop |
| label_20:
0x0006f40c lw t9, -0x77e0(gp) | t9 = *((gp - 7672));
0x0006f410 move a3, s3 | a3 = s3;
0x0006f414 move a2, s6 | a2 = s6;
0x0006f418 move a1, s7 | a1 = s7;
0x0006f41c move a0, v0 | a0 = v0;
0x0006f420 bal 0x739a8 | sym_BN_nnmod ();
0x0006f424 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f428 beqz v0, 0x6f150 | goto label_1;
| }
0x0006f42c move s7, s0 | s7 = s0;
0x0006f430 b 0x6f174 | goto label_2;
| label_23:
0x0006f43c lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0006f440 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x0006f444 addiu a2, zero, 0x2d3 | a2 = 0x2d3;
0x0006f448 addiu a1, a1, 0x7638 | a1 += 0x7638;
0x0006f44c jalr t9 | t9 ();
0x0006f450 move s5, v0 | s5 = v0;
0x0006f454 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f458 bnez v0, 0x6f214 | goto label_3;
| }
| label_21:
0x0006f45c lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f460 move s1, zero | s1 = 0;
| if (v0 == 0) {
0x0006f464 beqz v0, 0x6f60c | goto label_30;
| }
0x0006f468 move s0, zero | s0 = 0;
0x0006f46c b 0x6f668 | goto label_31;
| label_25:
0x0006f470 lw a1, (v1) | a1 = *(v1);
0x0006f474 nor a1, zero, a1 | __asm ("nor a1, zero, a1");
0x0006f478 sw a1, (v0) | *(v0) = a1;
0x0006f47c addiu v1, v1, 4 | v1 += 4;
0x0006f480 addiu v0, v0, 4 | v0 += 4;
0x0006f484 b 0x6f2a8 | goto label_4;
| label_24:
0x0006f488 lw t9, -0x77c4(gp) | t9 = *((gp - 7665));
0x0006f48c bal 0x72468 | sym_BN_value_one ();
0x0006f490 nop |
0x0006f494 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f498 move a3, s3 | a3 = s3;
0x0006f49c move a2, s4 | a2 = s4;
0x0006f4a0 lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006f4a4 move a1, v0 | a1 = v0;
0x0006f4a8 addiu a0, fp, 0x34 | a0 = fp + 0x34;
0x0006f4ac bal 0x749d4 | fcn_000749d4 ();
0x0006f4b0 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f4b4 bnez v0, 0x6f2b8 | goto label_5;
| }
| do {
| label_7:
0x0006f4b8 move s0, zero | s0 = 0;
0x0006f4bc b 0x6f3f8 | goto label_6;
| label_26:
0x0006f4c0 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f4c4 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f4c8 move a3, s4 | a3 = s4;
0x0006f4cc move a1, a2 | a1 = a2;
0x0006f4d0 move a0, s6 | a0 = s6;
0x0006f4d4 bal 0x7469c | fcn_0007469c ();
0x0006f4d8 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f4dc beqz v0, 0x6f4b8 |
| } while (v0 == 0);
0x0006f4e0 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f4e4 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f4e8 addiu a3, zero, 2 | a3 = 2;
0x0006f4ec move a2, s1 | a2 = s1;
0x0006f4f0 move a1, s2 | a1 = s2;
0x0006f4f4 move a0, s6 | a0 = s6;
0x0006f4f8 jalr t9 | t9 ();
0x0006f4fc lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f500 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f504 addiu s7, zero, 3 | s7 = 3;
| label_9:
0x0006f508 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0006f50c slt v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x0006f510 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (v0 == 0) {
0x0006f514 beqz v0, 0x6f344 | goto label_8;
| }
0x0006f518 lw a1, 0x4c(fp) | a1 = *(var_4ch);
0x0006f51c sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f520 move a3, s4 | a3 = s4;
0x0006f524 move a2, s6 | a2 = s6;
0x0006f528 move a0, s6 | a0 = s6;
0x0006f52c bal 0x7469c | fcn_0007469c ();
0x0006f530 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f534 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f538 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f53c sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f540 move a3, s7 | a3 = s7;
0x0006f544 move a2, s1 | a2 = s1;
0x0006f548 move a1, s2 | a1 = s2;
0x0006f54c move a0, s6 | a0 = s6;
0x0006f550 jalr t9 | t9 ();
0x0006f554 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f558 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f55c addiu s7, s7, 1 | s7++;
0x0006f560 b 0x6f508 | goto label_9;
| label_27:
0x0006f564 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| label_10:
0x0006f568 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f56c move a3, s4 | a3 = s4;
0x0006f570 move a2, s6 | a2 = s6;
0x0006f574 move a1, s6 | a1 = s6;
0x0006f578 move a0, s6 | a0 = s6;
0x0006f57c bal 0x7469c | fcn_0007469c ();
0x0006f580 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f584 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f588 addiu s7, s7, 1 | s7++;
0x0006f58c lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (s0 != s7) {
0x0006f590 bne s0, s7, 0x6f568 | goto label_10;
| }
0x0006f594 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f598 lw a0, 0x90(fp) | a0 = *(arg_90h);
0x0006f59c subu v0, v0, s0 | __asm ("subu v0, v0, s0");
0x0006f5a0 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f5a4 move a1, v0 | a1 = v0;
0x0006f5a8 sw v0, 0x48(fp) | *(var_48h) = v0;
0x0006f5ac jalr t9 | t9 ();
0x0006f5b0 lw v1, 0x50(fp) | v1 = *(var_50h);
0x0006f5b4 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x0006f5b8 lw t9, 0x5c(fp) | t9 = *(var_5ch);
0x0006f5bc sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f5c0 and a3, v1, v0 | a3 = v1 & v0;
0x0006f5c4 move a2, s1 | a2 = s1;
0x0006f5c8 move a1, s2 | a1 = s2;
0x0006f5cc jalr t9 | t9 ();
0x0006f5d0 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f5d4 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f5d8 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f5dc lw a2, 0x4c(fp) | a2 = *(var_4ch);
0x0006f5e0 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f5e4 move a3, s4 | a3 = s4;
0x0006f5e8 move a1, s6 | a1 = s6;
0x0006f5ec move a0, s6 | a0 = s6;
0x0006f5f0 bal 0x7469c | fcn_0007469c ();
0x0006f5f4 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f5f8 bnez v0, 0x6f3cc | goto label_11;
| }
0x0006f5fc move s0, zero | s0 = 0;
0x0006f600 b 0x6f3f8 | goto label_6;
| label_17:
0x0006f604 move s1, zero | s1 = 0;
0x0006f608 sw zero, 0x54(fp) | *(var_54h) = 0;
| label_30:
0x0006f60c move s5, zero | s5 = 0;
0x0006f610 move s0, zero | s0 = 0;
0x0006f614 b 0x6f624 | goto label_32;
| label_18:
0x0006f618 sw zero, 0x54(fp) | *(var_54h) = 0;
0x0006f61c move s1, zero | s1 = 0;
0x0006f620 move s5, zero | s5 = 0;
| label_32:
0x0006f624 lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
| label_29:
0x0006f628 move a0, s4 | a0 = s4;
0x0006f62c bal 0x74b0c | sym_BN_MONT_CTX_free ();
0x0006f630 lw gp, 0x18(fp) | gp = *(var_18h);
| if (s1 != 0) {
0x0006f634 beqz s1, 0x6f668 |
| label_28:
0x0006f638 lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x0006f63c lw a1, 0x54(fp) | a1 = *(var_54h);
0x0006f640 move a0, s1 | a0 = s1;
0x0006f644 jalr t9 | t9 ();
0x0006f648 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f64c addiu a2, zero, 0x463 | a2 = 0x463;
0x0006f650 move a0, s5 | a0 = s5;
0x0006f654 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0006f658 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x0006f65c addiu a1, a1, 0x7638 | a1 += 0x7638;
0x0006f660 jalr t9 | t9 ();
0x0006f664 lw gp, 0x18(fp) | gp = *(var_18h);
| }
| label_31:
0x0006f668 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
0x0006f66c move a0, s3 | a0 = s3;
0x0006f670 bal 0x6db34 | sym_BN_CTX_end ();
0x0006f674 b 0x6f044 | goto label_12;
0x0006f678 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x6f67c */
| #include <stdint.h>
|
; (fcn) sym.BN_mod_exp_mont () | void BN_mod_exp_mont () {
0x0006f67c lui gp, 0x15 |
0x0006f680 addiu gp, gp, 0x7544 |
0x0006f684 addu gp, gp, t9 | gp += t9;
0x0006f688 addiu sp, sp, -0xe0 |
0x0006f68c lw t9, -0x7874(gp) | t9 = *(gp);
0x0006f690 lw v0, 0xf4(sp) | v0 = *(arg_f4h);
0x0006f694 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0006f698 sw fp, 0xd8(sp) | *(var_d8h) = fp;
0x0006f69c sw s6, 0xd0(sp) | *(var_d0h) = s6;
0x0006f6a0 sw s5, 0xcc(sp) | *(var_cch) = s5;
0x0006f6a4 sw s0, 0xb8(sp) | *(var_b8h) = s0;
0x0006f6a8 sw a0, 0xa0(sp) | *(var_a0h) = a0;
0x0006f6ac sw ra, 0xdc(sp) | *(var_dch) = ra;
0x0006f6b0 sw s7, 0xd4(sp) | *(var_d4h) = s7;
0x0006f6b4 sw s4, 0xc8(sp) | *(var_c8h) = s4;
0x0006f6b8 sw s3, 0xc4(sp) | *(var_c4h) = s3;
0x0006f6bc sw s2, 0xc0(sp) | *(var_c0h) = s2;
0x0006f6c0 sw s1, 0xbc(sp) | *(var_bch) = s1;
0x0006f6c4 move s6, a1 | s6 = a1;
0x0006f6c8 sw v0, 0xa4(sp) | *(var_a4h) = v0;
0x0006f6cc addiu a1, zero, 4 | a1 = 4;
0x0006f6d0 move a0, a2 | a0 = a2;
0x0006f6d4 move fp, a2 | fp = a2;
0x0006f6d8 move s5, a3 | s5 = a3;
0x0006f6dc lw s0, 0xf0(sp) | s0 = *(arg_f0h);
0x0006f6e0 bal 0x72dc8 | sym_BN_get_flags ();
0x0006f6e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f6e8 beqz v0, 0x6f73c |
| while (v0 != 0) {
| label_0:
0x0006f6ec lw v0, 0xa4(sp) | v0 = *(var_a4h);
0x0006f6f0 sw s0, 0xf0(sp) | *(arg_f0h) = s0;
0x0006f6f4 lw a0, 0xa0(sp) | a0 = *(var_a0h);
0x0006f6f8 lw ra, 0xdc(sp) | ra = *(var_dch);
0x0006f6fc lw s7, 0xd4(sp) | s7 = *(var_d4h);
0x0006f700 lw s4, 0xc8(sp) | s4 = *(var_c8h);
0x0006f704 lw s3, 0xc4(sp) | s3 = *(var_c4h);
0x0006f708 lw s2, 0xc0(sp) | s2 = *(var_c0h);
0x0006f70c lw s1, 0xbc(sp) | s1 = *(var_bch);
0x0006f710 lw s0, 0xb8(sp) | s0 = *(var_b8h);
0x0006f714 move a3, s5 | a3 = s5;
0x0006f718 move a2, fp | a2 = fp;
0x0006f71c lw s5, 0xcc(sp) | s5 = *(var_cch);
0x0006f720 lw fp, 0xd8(sp) | fp = *(var_d8h);
0x0006f724 move a1, s6 | a1 = s6;
0x0006f728 lw t9, -0x77c0(gp) | t9 = *((gp - 7664));
0x0006f72c lw s6, 0xd0(sp) | s6 = *(var_d0h);
0x0006f730 sw v0, 0xf4(sp) | *(arg_f4h) = v0;
0x0006f734 addiu sp, sp, 0xe0 |
0x0006f738 b 0x6efb4 | void (*0x6efb4)() ();
0x0006f73c lw t9, -0x7874(gp) | t9 = *(gp);
0x0006f740 addiu a1, zero, 4 | a1 = 4;
0x0006f744 move a0, s6 | a0 = s6;
0x0006f748 bal 0x72dc8 | sym_BN_get_flags ();
0x0006f74c lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f750 bnez v0, 0x6f6ec |
| }
0x0006f754 lw t9, -0x7874(gp) | t9 = *(gp);
0x0006f758 addiu a1, zero, 4 | a1 = 4;
0x0006f75c move a0, s5 | a0 = s5;
0x0006f760 bal 0x72dc8 | sym_BN_get_flags ();
0x0006f764 move s4, v0 | s4 = v0;
0x0006f768 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f76c bnez v0, 0x6f6ec | goto label_0;
| }
0x0006f770 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x0006f774 move a0, s5 | a0 = s5;
0x0006f778 bal 0x72c5c | sym_BN_is_odd ();
0x0006f77c move s1, v0 | s1 = v0;
0x0006f780 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f784 bnez v0, 0x6f7e0 | goto label_14;
| }
0x0006f788 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006f78c addiu v0, zero, 0x13e | v0 = 0x13e;
0x0006f790 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006f794 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006f798 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006f79c addiu a2, zero, 0x66 | a2 = 0x66;
0x0006f7a0 addiu a1, zero, 0x6d | a1 = 0x6d;
0x0006f7a4 addiu a0, zero, 3 | a0 = 3;
0x0006f7a8 jalr t9 | t9 ();
| do {
| label_7:
0x0006f7ac lw ra, 0xdc(sp) | ra = *(var_dch);
0x0006f7b0 move v0, s1 | v0 = s1;
0x0006f7b4 lw fp, 0xd8(sp) | fp = *(var_d8h);
0x0006f7b8 lw s7, 0xd4(sp) | s7 = *(var_d4h);
0x0006f7bc lw s6, 0xd0(sp) | s6 = *(var_d0h);
0x0006f7c0 lw s5, 0xcc(sp) | s5 = *(var_cch);
0x0006f7c4 lw s4, 0xc8(sp) | s4 = *(var_c8h);
0x0006f7c8 lw s3, 0xc4(sp) | s3 = *(var_c4h);
0x0006f7cc lw s2, 0xc0(sp) | s2 = *(var_c0h);
0x0006f7d0 lw s1, 0xbc(sp) | s1 = *(var_bch);
0x0006f7d4 lw s0, 0xb8(sp) | s0 = *(var_b8h);
0x0006f7d8 addiu sp, sp, 0xe0 |
0x0006f7dc jr ra | return v0;
| label_14:
0x0006f7e0 lw t9, -0x7f08(gp) | t9 = *((gp - 8130));
0x0006f7e4 move a0, fp | a0 = fp;
0x0006f7e8 bal 0x72a00 | sym_BN_num_bits ();
0x0006f7ec move s1, v0 | s1 = v0;
0x0006f7f0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f7f4 bnez v0, 0x6f860 | goto label_15;
| }
0x0006f7f8 lw t9, -0x77ec(gp) | t9 = *((gp - 7675));
0x0006f7fc addiu a1, zero, 1 | a1 = 1;
0x0006f800 move a0, s5 | a0 = s5;
0x0006f804 bal 0x729bc | sym_BN_abs_is_word ();
0x0006f808 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f80c lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
| if (v0 == 0) {
0x0006f810 beqz v0, 0x6f828 | goto label_16;
| }
0x0006f814 lw a0, 0xa0(sp) | a0 = *(var_a0h);
0x0006f818 move a1, zero | a1 = 0;
0x0006f81c bal 0x73114 | sym_BN_set_word ();
0x0006f820 addiu s1, zero, 1 | s1 = 1;
0x0006f824 b 0x6f7ac |
| } while (1);
| label_16:
0x0006f828 lw a0, 0xa0(sp) | a0 = *(var_a0h);
0x0006f82c lw ra, 0xdc(sp) | ra = *(var_dch);
0x0006f830 lw fp, 0xd8(sp) | fp = *(var_d8h);
0x0006f834 lw s7, 0xd4(sp) | s7 = *(var_d4h);
0x0006f838 lw s6, 0xd0(sp) | s6 = *(var_d0h);
0x0006f83c lw s5, 0xcc(sp) | s5 = *(var_cch);
0x0006f840 lw s4, 0xc8(sp) | s4 = *(var_c8h);
0x0006f844 lw s3, 0xc4(sp) | s3 = *(var_c4h);
0x0006f848 lw s2, 0xc0(sp) | s2 = *(var_c0h);
0x0006f84c lw s1, 0xbc(sp) | s1 = *(var_bch);
0x0006f850 lw s0, 0xb8(sp) | s0 = *(var_b8h);
0x0006f854 addiu a1, zero, 1 | a1 = 1;
0x0006f858 addiu sp, sp, 0xe0 |
0x0006f85c b 0x73114 | void (*0x73114)() ();
| label_15:
0x0006f860 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x0006f864 move a0, s0 | a0 = s0;
0x0006f868 bal 0x6d9bc | sym_BN_CTX_start ();
0x0006f86c lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f870 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f874 move a0, s0 | a0 = s0;
0x0006f878 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f87c lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f880 move a0, s0 | a0 = s0;
0x0006f884 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f888 sw v0, 0xac(sp) | *(var_ach) = v0;
0x0006f88c bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f890 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f894 move a0, s0 | a0 = s0;
0x0006f898 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f89c move s3, v0 | s3 = v0;
0x0006f8a0 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f8a4 move s7, v0 | s7 = v0;
0x0006f8a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f8ac sw v0, 0x20(sp) | *(var_20h) = v0;
| if (v0 == 0) {
0x0006f8b0 beqz v0, 0x6fc7c | goto label_17;
| }
0x0006f8b4 lw v0, 0xa4(sp) | v0 = *(var_a4h);
0x0006f8b8 lw s2, 0xa4(sp) | s2 = *(var_a4h);
| if (v0 == 0) {
0x0006f8bc bnez v0, 0x6f8f4 |
0x0006f8c0 lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
0x0006f8c4 bal 0x74a78 | sym_BN_MONT_CTX_new ();
0x0006f8c8 nop |
0x0006f8cc move s2, v0 | s2 = v0;
0x0006f8d0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f8d4 beqz v0, 0x6fb7c | goto label_18;
| }
0x0006f8d8 lw t9, -0x77d0(gp) | t9 = *((gp - 7668));
0x0006f8dc move a2, s0 | a2 = s0;
0x0006f8e0 move a1, s5 | a1 = s5;
0x0006f8e4 move a0, v0 | a0 = v0;
0x0006f8e8 bal 0x74ba8 | sym_BN_MONT_CTX_set ();
0x0006f8ec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f8f0 beqz v0, 0x6fb7c | goto label_18;
| }
| }
0x0006f8f4 lw v0, 0xc(s6) | v0 = *((s6 + 3));
0x0006f8f8 lw t9, -0x7898(gp) | t9 = *((gp - 7718));
| if (v0 == 0) {
0x0006f8fc beqz v0, 0x6faa8 | goto label_19;
| }
| label_1:
0x0006f900 lw t9, -0x77e0(gp) | t9 = *((gp - 7672));
0x0006f904 move a3, s0 | a3 = s0;
0x0006f908 move a2, s5 | a2 = s5;
0x0006f90c move a1, s6 | a1 = s6;
0x0006f910 move a0, s7 | a0 = s7;
0x0006f914 bal 0x739a8 | sym_BN_nnmod ();
0x0006f918 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f91c beqz v0, 0x6fb20 | goto label_8;
| }
0x0006f920 move s6, s7 | s6 = s7;
0x0006f924 lw t9, -0x7854(gp) | t9 = *((gp - 7701));
| label_2:
0x0006f928 move a3, s0 | a3 = s0;
0x0006f92c move a2, s2 | a2 = s2;
0x0006f930 move a1, s6 | a1 = s6;
0x0006f934 move a0, s7 | a0 = s7;
0x0006f938 bal 0x749d4 | fcn_000749d4 ();
0x0006f93c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f940 beqz v0, 0x6fb20 | goto label_8;
| }
0x0006f944 slti v0, s1, 0x2a0 | v0 = (s1 < aav.0x000002a0) ? 1 : 0;
0x0006f948 slti v0, s1, 0xf0 | v0 = (s1 < 0xf0) ? 1 : 0;
| if (v0 == 0) {
0x0006f94c beqz v0, 0x6fac4 | goto label_20;
| }
0x0006f950 slti v0, s1, 0x50 | v0 = (s1 < 0x50) ? 1 : 0;
| if (v0 == 0) {
0x0006f954 beqz v0, 0x6facc | goto label_21;
| }
0x0006f958 slti v0, s1, 0x18 | v0 = (s1 < 0x18) ? 1 : 0;
| if (v0 == 0) {
0x0006f95c beqz v0, 0x6fad4 | goto label_22;
| }
0x0006f960 addiu s6, zero, 1 | s6 = 1;
| if (v0 != 0) {
0x0006f964 bnez v0, 0x6fa04 | goto label_23;
| }
0x0006f968 addiu s6, zero, 3 | s6 = 3;
| label_3:
0x0006f96c lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f970 lw a0, 0xac(sp) | a0 = *(var_ach);
0x0006f974 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f978 move a3, s2 | a3 = s2;
0x0006f97c move a2, s7 | a2 = s7;
0x0006f980 move a1, s7 | a1 = s7;
0x0006f984 bal 0x7469c | fcn_0007469c ();
0x0006f988 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f98c beqz v0, 0x6fb20 | goto label_8;
| }
0x0006f990 addiu v0, s6, -1 | v0 = s6 + -1;
0x0006f994 addiu v1, zero, 1 | v1 = 1;
0x0006f998 sllv v0, v1, v0 | v0 = v1 << v0;
0x0006f99c sw v0, 0xb0(sp) | *(var_b0h) = v0;
0x0006f9a0 addiu v0, zero, 1 | v0 = 1;
0x0006f9a4 addiu s7, sp, 0x20 | s7 = sp + 0x20;
0x0006f9a8 sw v0, 0xa8(sp) | *(var_a8h) = v0;
| do {
0x0006f9ac lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f9b0 move a0, s0 | a0 = s0;
0x0006f9b4 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f9b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006f9bc sw v0, 4(s7) | *(var_4h) = v0;
| if (v0 == 0) {
0x0006f9c0 beqz v0, 0x6fb70 | goto label_13;
| }
0x0006f9c4 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f9c8 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f9cc lw a2, 0xac(sp) | a2 = *(var_ach);
0x0006f9d0 lw a1, (s7) | a1 = *(s7);
0x0006f9d4 move a3, s2 | a3 = s2;
0x0006f9d8 move a0, v0 | a0 = v0;
0x0006f9dc bal 0x7469c | fcn_0007469c ();
0x0006f9e0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f9e4 beqz v0, 0x6fb20 | goto label_8;
| }
0x0006f9e8 lw v0, 0xa8(sp) | v0 = *(var_a8h);
0x0006f9ec addiu v0, v0, 1 | v0++;
0x0006f9f0 sw v0, 0xa8(sp) | *(var_a8h) = v0;
0x0006f9f4 lw v1, 0xa8(sp) | v1 = *(var_a8h);
0x0006f9f8 lw v0, 0xb0(sp) | v0 = *(var_b0h);
0x0006f9fc addiu s7, s7, 4 | s7 += 4;
0x0006fa00 bne v0, v1, 0x6f9ac |
| } while (v0 != v1);
| label_23:
0x0006fa04 lw s7, 4(s5) | s7 = *((s5 + 1));
0x0006fa08 lw v0, (s5) | v0 = *(s5);
0x0006fa0c sll v1, s7, 2 | v1 = s7 << 2;
0x0006fa10 addu v0, v0, v1 | v0 += v1;
0x0006fa14 lw v0, -4(v0) | v0 = *((v0 - 1));
0x0006fa18 lw t9, -0x77c4(gp) | t9 = *((gp - 7665));
| if (v0 >= 0) {
0x0006fa1c bgez v0, 0x6faf4 | goto label_24;
| }
0x0006fa20 lw t9, -0x78a8(gp) | t9 = *((gp - 7722));
0x0006fa24 move a1, s7 | a1 = s7;
0x0006fa28 move a0, s3 | a0 = s3;
0x0006fa2c bal 0x731bc | fcn_000731bc ();
0x0006fa30 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fa34 beqz v0, 0x6fb70 | goto label_13;
| }
0x0006fa38 lw v1, (s5) | v1 = *(s5);
0x0006fa3c lw v0, (s3) | v0 = *(s3);
0x0006fa40 addiu v1, v1, 4 | v1 += 4;
0x0006fa44 lw a0, -4(v1) | a0 = *((v1 - 1));
0x0006fa48 addiu v0, v0, 4 | v0 += 4;
0x0006fa4c negu a0, a0 | __asm ("negu a0, a0");
0x0006fa50 sw a0, -4(v0) | *(var_10h) = a0;
0x0006fa54 addiu a0, zero, 1 | a0 = 1;
| label_4:
0x0006fa58 slt a1, a0, s7 | a1 = (a0 < s7) ? 1 : 0;
0x0006fa5c addiu a0, a0, 1 | a0++;
| if (a1 != 0) {
0x0006fa60 bnez a1, 0x6fadc | goto label_25;
| }
0x0006fa64 sw s7, 4(s3) | *((s3 + 1)) = s7;
| label_5:
0x0006fa68 addiu v0, sp, 0x20 | v0 = sp + 0x20;
0x0006fa6c addiu s1, s1, -1 | s1 += -1;
0x0006fa70 addiu s4, zero, 1 | s4 = 1;
0x0006fa74 sw v0, 0xac(sp) | *(var_ach) = v0;
| do {
0x0006fa78 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
| label_11:
0x0006fa7c move a1, s1 | a1 = s1;
0x0006fa80 move a0, fp | a0 = fp;
0x0006fa84 bal 0x72814 | sym_BN_is_bit_set ();
0x0006fa88 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fa8c bnez v0, 0x6fc68 | goto label_26;
| }
0x0006fa90 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (s4 == 0) {
0x0006fa94 beqz s4, 0x6fb28 | goto label_27;
| }
| label_6:
0x0006fa98 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| if (s1 == 0) {
0x0006fa9c beqz s1, 0x6fb54 | goto label_28;
| }
0x0006faa0 addiu s1, s1, -1 | s1 += -1;
0x0006faa4 b 0x6fa78 |
| } while (1);
| label_19:
0x0006faa8 move a1, s5 | a1 = s5;
0x0006faac move a0, s6 | a0 = s6;
0x0006fab0 bal 0x726f4 | sym_BN_ucmp ();
0x0006fab4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x0006fab8 bgez v0, 0x6f900 | goto label_1;
| }
0x0006fabc lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006fac0 b 0x6f928 | goto label_2;
| label_20:
0x0006fac4 addiu s6, zero, 6 | s6 = 6;
0x0006fac8 b 0x6f96c | goto label_3;
| label_21:
0x0006facc addiu s6, zero, 5 | s6 = 5;
0x0006fad0 b 0x6f96c | goto label_3;
| label_22:
0x0006fad4 addiu s6, zero, 4 | s6 = 4;
0x0006fad8 b 0x6f96c | goto label_3;
| label_25:
0x0006fadc lw a1, (v1) | a1 = *(v1);
0x0006fae0 nor a1, zero, a1 | __asm ("nor a1, zero, a1");
0x0006fae4 sw a1, (v0) | *(v0) = a1;
0x0006fae8 addiu v1, v1, 4 | v1 += 4;
0x0006faec addiu v0, v0, 4 | v0 += 4;
0x0006faf0 b 0x6fa58 | goto label_4;
| label_24:
0x0006faf4 bal 0x72468 | sym_BN_value_one ();
0x0006faf8 nop |
0x0006fafc lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fb00 move a3, s0 | a3 = s0;
0x0006fb04 move a2, s2 | a2 = s2;
0x0006fb08 lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006fb0c move a1, v0 | a1 = v0;
0x0006fb10 move a0, s3 | a0 = s3;
0x0006fb14 bal 0x749d4 | fcn_000749d4 ();
0x0006fb18 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fb1c bnez v0, 0x6fa68 | goto label_5;
| }
| label_8:
0x0006fb20 move s4, zero | s4 = 0;
0x0006fb24 b 0x6fb70 | goto label_13;
| label_27:
0x0006fb28 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006fb2c move a3, s2 | a3 = s2;
0x0006fb30 move a2, s3 | a2 = s3;
0x0006fb34 move a1, s3 | a1 = s3;
0x0006fb38 move a0, s3 | a0 = s3;
0x0006fb3c bal 0x7469c | fcn_0007469c ();
0x0006fb40 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fb44 bnez v0, 0x6fa98 | goto label_6;
| }
0x0006fb48 move s4, zero | s4 = 0;
0x0006fb4c b 0x6fb70 | goto label_13;
| label_10:
0x0006fb50 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| label_28:
0x0006fb54 lw a0, 0xa0(sp) | a0 = *(var_a0h);
0x0006fb58 move a3, s0 | a3 = s0;
0x0006fb5c move a2, s2 | a2 = s2;
0x0006fb60 move a1, s3 | a1 = s3;
0x0006fb64 bal 0x7497c | sym_BN_from_montgomery ();
0x0006fb68 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fb6c sltu s4, zero, v0 | s4 = (0 < v0) ? 1 : 0;
| label_13:
0x0006fb70 lw v0, 0xa4(sp) | v0 = *(var_a4h);
0x0006fb74 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| if (v0 == 0) {
0x0006fb78 bnez v0, 0x6fb90 |
| label_18:
0x0006fb7c lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
0x0006fb80 move a0, s2 | a0 = s2;
0x0006fb84 bal 0x74b0c | sym_BN_MONT_CTX_free ();
0x0006fb88 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fb8c lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| }
0x0006fb90 move a0, s0 | a0 = s0;
0x0006fb94 bal 0x6db34 | sym_BN_CTX_end ();
0x0006fb98 move s1, s4 | s1 = s4;
0x0006fb9c b 0x6f7ac | goto label_7;
| do {
0x0006fba0 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
| if (a1 < 0) {
0x0006fba4 bltz a1, 0x6fbdc | goto label_29;
| }
0x0006fba8 move a0, fp | a0 = fp;
0x0006fbac bal 0x72814 | sym_BN_is_bit_set ();
0x0006fbb0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fbb4 beqz v0, 0x6fbd0 |
0x0006fbb8 lw v0, 0xa8(sp) | v0 = *(var_a8h);
0x0006fbbc subu s7, s5, s7 | __asm ("subu s7, s5, s7");
0x0006fbc0 sllv s7, v0, s7 | s7 = v0 << s7;
0x0006fbc4 ori v0, s7, 1 | v0 = s7 | 1;
0x0006fbc8 sw v0, 0xa8(sp) | *(var_a8h) = v0;
0x0006fbcc move s7, s5 | s7 = s5;
| }
0x0006fbd0 addiu s5, s5, 1 | s5++;
| label_12:
0x0006fbd4 subu a1, s1, s5 | __asm ("subu a1, s1, s5");
0x0006fbd8 bne s5, s6, 0x6fba0 |
| } while (s5 != s6);
| label_29:
0x0006fbdc lw v0, 0xa8(sp) | v0 = *(var_a8h);
| if (s4 != 0) {
0x0006fbe0 bnez s4, 0x6fc1c | goto label_30;
| }
0x0006fbe4 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| label_9:
0x0006fbe8 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006fbec move a3, s2 | a3 = s2;
0x0006fbf0 move a2, s3 | a2 = s3;
0x0006fbf4 move a1, s3 | a1 = s3;
0x0006fbf8 move a0, s3 | a0 = s3;
0x0006fbfc bal 0x7469c | fcn_0007469c ();
0x0006fc00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fc04 beqz v0, 0x6fb20 | goto label_8;
| }
0x0006fc08 addiu s4, s4, 1 | s4++;
0x0006fc0c slt v0, s7, s4 | v0 = (s7 < s4) ? 1 : 0;
0x0006fc10 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (v0 == 0) {
0x0006fc14 beqz v0, 0x6fbe8 | goto label_9;
| }
0x0006fc18 lw v0, 0xa8(sp) | v0 = *(var_a8h);
| label_30:
0x0006fc1c lw v1, 0xac(sp) | v1 = *(var_ach);
0x0006fc20 sra v0, v0, 1 | v0 >>= 1;
0x0006fc24 sll v0, v0, 2 | v0 <<= 2;
0x0006fc28 addu v0, v1, v0 | v0 = v1 + v0;
0x0006fc2c lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006fc30 lw a2, (v0) | a2 = *(v0);
0x0006fc34 move a3, s2 | a3 = s2;
0x0006fc38 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006fc3c move a1, s3 | a1 = s3;
0x0006fc40 move a0, s3 | a0 = s3;
0x0006fc44 bal 0x7469c | fcn_0007469c ();
0x0006fc48 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fc4c beqz v0, 0x6fb20 | goto label_8;
| }
0x0006fc50 addiu s7, s7, 1 | s7++;
0x0006fc54 subu s1, s1, s7 | __asm ("subu s1, s1, s7");
0x0006fc58 move s4, zero | s4 = 0;
| if (s1 < 0) {
0x0006fc5c bltz s1, 0x6fb50 | goto label_10;
| }
0x0006fc60 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
0x0006fc64 b 0x6fa7c | goto label_11;
| label_26:
0x0006fc68 addiu v0, zero, 1 | v0 = 1;
0x0006fc6c move s7, zero | s7 = 0;
0x0006fc70 sw v0, 0xa8(sp) | *(var_a8h) = v0;
0x0006fc74 addiu s5, zero, 1 | s5 = 1;
0x0006fc78 b 0x6fbd4 | goto label_12;
| label_17:
0x0006fc7c move s2, zero | s2 = 0;
0x0006fc80 b 0x6fb70 | goto label_13;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x6fc84 */
| #include <stdint.h>
|
; (fcn) sym.BN_mod_exp_mont_word () | void BN_mod_exp_mont_word () {
0x0006fc84 lui gp, 0x15 |
0x0006fc88 addiu gp, gp, 0x6f3c |
0x0006fc8c addu gp, gp, t9 | gp += t9;
0x0006fc90 addiu sp, sp, -0x58 |
0x0006fc94 lw t9, -0x7874(gp) | t9 = *(gp);
0x0006fc98 lw v0, 0x6c(sp) | v0 = *(arg_6ch);
0x0006fc9c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0006fca0 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x0006fca4 sw s5, 0x44(sp) | *(var_44h) = s5;
0x0006fca8 sw s2, 0x38(sp) | *(var_38h) = s2;
0x0006fcac sw a0, 0x24(sp) | *(var_24h) = a0;
0x0006fcb0 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0006fcb4 sw fp, 0x50(sp) | *(var_50h) = fp;
0x0006fcb8 sw s6, 0x48(sp) | *(var_48h) = s6;
0x0006fcbc sw s4, 0x40(sp) | *(var_40h) = s4;
0x0006fcc0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x0006fcc4 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0006fcc8 sw s0, 0x30(sp) | *(var_30h) = s0;
0x0006fccc move s5, a1 | s5 = a1;
0x0006fcd0 sw a2, 0x28(sp) | *(var_28h) = a2;
0x0006fcd4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0006fcd8 addiu a1, zero, 4 | a1 = 4;
0x0006fcdc move a0, a2 | a0 = a2;
0x0006fce0 move s7, a3 | s7 = a3;
0x0006fce4 lw s2, 0x68(sp) | s2 = *(arg_68h);
0x0006fce8 bal 0x72dc8 | sym_BN_get_flags ();
0x0006fcec lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fcf0 beqz v0, 0x6fd50 |
| while (v0 != 0) {
0x0006fcf4 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006fcf8 addiu v0, zero, 0x486 | v0 = 0x486;
0x0006fcfc lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006fd00 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006fd04 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006fd08 addiu a2, zero, 0x42 | a2 = 0x42;
0x0006fd0c addiu a1, zero, 0x75 | a1 = 0x75;
0x0006fd10 addiu a0, zero, 3 | a0 = 3;
0x0006fd14 move s0, zero | s0 = 0;
0x0006fd18 jalr t9 | t9 ();
| label_1:
0x0006fd1c lw ra, 0x54(sp) | ra = *(var_54h);
| label_0:
0x0006fd20 move v0, s0 | v0 = s0;
0x0006fd24 lw fp, 0x50(sp) | fp = *(var_50h);
0x0006fd28 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x0006fd2c lw s6, 0x48(sp) | s6 = *(var_48h);
0x0006fd30 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0006fd34 lw s4, 0x40(sp) | s4 = *(var_40h);
0x0006fd38 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x0006fd3c lw s2, 0x38(sp) | s2 = *(var_38h);
0x0006fd40 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0006fd44 lw s0, 0x30(sp) | s0 = *(var_30h);
0x0006fd48 addiu sp, sp, 0x58 |
0x0006fd4c jr ra | return v0;
0x0006fd50 lw t9, -0x7874(gp) | t9 = *(gp);
0x0006fd54 addiu a1, zero, 4 | a1 = 4;
0x0006fd58 move a0, s7 | a0 = s7;
0x0006fd5c bal 0x72dc8 | sym_BN_get_flags ();
0x0006fd60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fd64 bnez v0, 0x6fcf4 |
| }
0x0006fd68 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x0006fd6c move a0, s7 | a0 = s7;
0x0006fd70 bal 0x72c5c | sym_BN_is_odd ();
0x0006fd74 move s0, v0 | s0 = v0;
0x0006fd78 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fd7c bnez v0, 0x6fdac |
0x0006fd80 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006fd84 addiu v0, zero, 0x48e | v0 = 0x48e;
0x0006fd88 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006fd8c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006fd90 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006fd94 addiu a2, zero, 0x66 | a2 = 0x66;
0x0006fd98 addiu a1, zero, 0x75 | a1 = 0x75;
0x0006fd9c addiu a0, zero, 3 | a0 = 3;
0x0006fda0 jalr t9 | t9 ();
| label_7:
0x0006fda4 lw ra, 0x54(sp) | ra = *(var_54h);
0x0006fda8 b 0x6fd20 | goto label_0;
| }
0x0006fdac lw v1, 4(s7) | v1 = *((s7 + 1));
0x0006fdb0 addiu v0, zero, 1 | v0 = 1;
0x0006fdb4 lw t9, -0x7f08(gp) | t9 = *((gp - 8130));
| if (v1 == v0) {
0x0006fdb8 bne v1, v0, 0x6fdd0 |
0x0006fdbc lw v0, (s7) | v0 = *(s7);
0x0006fdc0 lw v0, (v0) | v0 = *(v0);
0x0006fdc4 divu zero, s5, v0 | __asm ("divu zero, s5, v0");
0x0006fdc8 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0006fdcc mfhi s5 | __asm ("mfhi s5");
| }
0x0006fdd0 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0006fdd4 bal 0x72a00 | sym_BN_num_bits ();
0x0006fdd8 move s3, v0 | s3 = v0;
0x0006fddc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fde0 bnez v0, 0x6fe50 | goto label_9;
| }
0x0006fde4 lw t9, -0x77ec(gp) | t9 = *((gp - 7675));
0x0006fde8 addiu a1, zero, 1 | a1 = 1;
0x0006fdec move a0, s7 | a0 = s7;
0x0006fdf0 bal 0x729bc | sym_BN_abs_is_word ();
0x0006fdf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fdf8 beqz v0, 0x6fe14 |
| while (s5 == 0) {
0x0006fdfc lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006fe00 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006fe04 move a1, zero | a1 = 0;
0x0006fe08 bal 0x73114 | sym_BN_set_word ();
0x0006fe0c addiu s0, zero, 1 | s0 = 1;
0x0006fe10 b 0x6fd1c | goto label_1;
0x0006fe14 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006fe18 lw ra, 0x54(sp) | ra = *(var_54h);
0x0006fe1c lw fp, 0x50(sp) | fp = *(var_50h);
0x0006fe20 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x0006fe24 lw s6, 0x48(sp) | s6 = *(var_48h);
0x0006fe28 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0006fe2c lw s4, 0x40(sp) | s4 = *(var_40h);
0x0006fe30 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x0006fe34 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0006fe38 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0006fe3c lw s0, 0x30(sp) | s0 = *(var_30h);
0x0006fe40 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006fe44 addiu a1, zero, 1 | a1 = 1;
0x0006fe48 addiu sp, sp, 0x58 |
0x0006fe4c b 0x73114 | void (*0x73114)() ();
| label_9:
0x0006fe50 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x0006fe54 beqz s5, 0x6fdfc |
| }
0x0006fe58 move a0, s2 | a0 = s2;
0x0006fe5c bal 0x6d9bc | sym_BN_CTX_start ();
0x0006fe60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fe64 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006fe68 move a0, s2 | a0 = s2;
0x0006fe6c bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006fe70 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fe74 move a0, s2 | a0 = s2;
0x0006fe78 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006fe7c move s1, v0 | s1 = v0;
0x0006fe80 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006fe84 move s6, v0 | s6 = v0;
0x0006fe88 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fe8c beqz v0, 0x701cc | goto label_10;
| }
0x0006fe90 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0006fe94 lw s4, 0x2c(sp) | s4 = *(var_2ch);
| if (v0 == 0) {
0x0006fe98 bnez v0, 0x6fed4 |
0x0006fe9c lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
0x0006fea0 bal 0x74a78 | sym_BN_MONT_CTX_new ();
0x0006fea4 nop |
0x0006fea8 move s4, v0 | s4 = v0;
0x0006feac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006feb0 beqz v0, 0x701d8 | goto label_11;
| }
0x0006feb4 lw t9, -0x77d0(gp) | t9 = *((gp - 7668));
0x0006feb8 move a2, s2 | a2 = s2;
0x0006febc move a1, s7 | a1 = s7;
0x0006fec0 move a0, v0 | a0 = v0;
0x0006fec4 bal 0x74ba8 | sym_BN_MONT_CTX_set ();
0x0006fec8 move s0, v0 | s0 = v0;
0x0006fecc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fed0 beqz v0, 0x701a8 | goto label_8;
| }
| }
0x0006fed4 addiu v0, s3, -2 | v0 = s3 + -2;
0x0006fed8 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0006fedc move a1, s5 | a1 = s5;
0x0006fee0 addiu fp, zero, 1 | fp = 1;
| label_3:
0x0006fee4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0006fee8 mul s3, a1, a1 | __asm ("mul s3, a1, a1");
| if (v0 < 0) {
0x0006feec bgez v0, 0x6ff60 |
0x0006fef0 addiu v0, zero, 1 | v0 = 1;
| if (a1 == v0) {
0x0006fef4 beq a1, v0, 0x7017c | goto label_12;
| }
0x0006fef8 nop |
0x0006fefc move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0006ff00 beqz fp, 0x70134 | goto label_13;
| }
0x0006ff04 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006ff08 bal 0x73114 | sym_BN_set_word ();
0x0006ff0c nop |
0x0006ff10 move s0, v0 | s0 = v0;
0x0006ff14 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff18 beqz v0, 0x7019c | goto label_14;
| }
0x0006ff1c lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0006ff20 move a3, s2 | a3 = s2;
0x0006ff24 move a2, s4 | a2 = s4;
0x0006ff28 move a1, s1 | a1 = s1;
0x0006ff2c move a0, s1 | a0 = s1;
0x0006ff30 bal 0x72c90 | sym_BN_to_montgomery ();
0x0006ff34 move s0, v0 | s0 = v0;
0x0006ff38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff3c beqz v0, 0x7019c | goto label_14;
| }
| label_5:
0x0006ff40 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| label_6:
0x0006ff44 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006ff48 move a3, s2 | a3 = s2;
0x0006ff4c move a2, s4 | a2 = s4;
0x0006ff50 move a1, s1 | a1 = s1;
0x0006ff54 bal 0x7497c | sym_BN_from_montgomery ();
0x0006ff58 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006ff5c b 0x70198 | goto label_15;
| }
0x0006ff60 divu zero, s3, a1 | __asm ("divu zero, s3, a1");
0x0006ff64 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0006ff68 mflo v0 | __asm ("mflo v0");
| if (a1 == v0) {
0x0006ff6c beq a1, v0, 0x7003c | goto label_16;
| }
0x0006ff70 nop |
0x0006ff74 move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0006ff78 beqz fp, 0x6ffec | goto label_17;
| }
0x0006ff7c lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006ff80 bal 0x73114 | sym_BN_set_word ();
0x0006ff84 nop |
0x0006ff88 move s0, v0 | s0 = v0;
0x0006ff8c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff90 beqz v0, 0x7019c | goto label_14;
| }
0x0006ff94 lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0006ff98 move a3, s2 | a3 = s2;
0x0006ff9c move a2, s4 | a2 = s4;
0x0006ffa0 move a1, s1 | a1 = s1;
0x0006ffa4 move a0, s1 | a0 = s1;
0x0006ffa8 bal 0x72c90 | sym_BN_to_montgomery ();
0x0006ffac move s0, v0 | s0 = v0;
0x0006ffb0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ffb4 beqz v0, 0x7019c | goto label_14;
| }
| do {
0x0006ffb8 addiu s3, zero, 1 | s3 = 1;
0x0006ffbc lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| label_2:
0x0006ffc0 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0006ffc4 move a3, s4 | a3 = s4;
0x0006ffc8 move a2, s1 | a2 = s1;
0x0006ffcc move a1, s1 | a1 = s1;
0x0006ffd0 move a0, s1 | a0 = s1;
0x0006ffd4 bal 0x74848 | sym_BN_mod_mul_montgomery ();
0x0006ffd8 move s0, v0 | s0 = v0;
0x0006ffdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ffe0 beqz v0, 0x7019c | goto label_14;
| }
0x0006ffe4 move fp, zero | fp = 0;
0x0006ffe8 b 0x70044 | goto label_18;
| label_17:
0x0006ffec lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x0006fff0 bal 0x7b308 | sym_BN_mul_word ();
0x0006fff4 nop |
0x0006fff8 move s0, v0 | s0 = v0;
0x0006fffc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070000 beqz v0, 0x7019c | goto label_14;
| }
0x00070004 lw t9, -0x77b8(gp) | t9 = *(gp);
0x00070008 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0007000c move a3, s7 | a3 = s7;
0x00070010 move a2, s1 | a2 = s1;
0x00070014 move a1, s6 | a1 = s6;
0x00070018 move a0, zero | a0 = 0;
0x0007001c bal 0x6e460 | sym_BN_div ();
0x00070020 move s0, v0 | s0 = v0;
0x00070024 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070028 beqz v0, 0x7019c | goto label_14;
| }
0x0007002c move v0, s1 | v0 = s1;
0x00070030 move s1, s6 | s1 = s6;
0x00070034 move s6, v0 | s6 = v0;
0x00070038 b 0x6ffb8 |
| } while (1);
| label_16:
0x0007003c lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| if (fp == 0) {
0x00070040 beqz fp, 0x6ffc0 | goto label_2;
| }
| label_18:
0x00070044 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
0x00070048 lw a1, 0x20(sp) | a1 = *(var_20h);
0x0007004c lw a0, 0x28(sp) | a0 = *(var_28h);
0x00070050 bal 0x72814 | sym_BN_is_bit_set ();
0x00070054 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070058 beqz v0, 0x700c4 | goto label_4;
| }
0x0007005c mul v0, s5, s3 | __asm ("mul v0, s5, s3");
0x00070060 divu zero, v0, s5 | __asm ("divu zero, v0, s5");
0x00070064 teq s5, zero, 7 | __asm ("teq s5, zero, 7");
0x00070068 mflo v1 | __asm ("mflo v1");
| if (v1 == s3) {
0x0007006c beq v1, s3, 0x7012c | goto label_19;
| }
0x00070070 nop |
0x00070074 move a1, s3 | a1 = s3;
0x00070078 move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0007007c beqz fp, 0x700d8 | goto label_20;
| }
0x00070080 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x00070084 bal 0x73114 | sym_BN_set_word ();
0x00070088 nop |
0x0007008c move s0, v0 | s0 = v0;
0x00070090 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070094 beqz v0, 0x7019c | goto label_14;
| }
0x00070098 lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0007009c move a3, s2 | a3 = s2;
0x000700a0 move a2, s4 | a2 = s4;
0x000700a4 move a1, s1 | a1 = s1;
0x000700a8 move a0, s1 | a0 = s1;
0x000700ac bal 0x72c90 | sym_BN_to_montgomery ();
0x000700b0 move s0, v0 | s0 = v0;
0x000700b4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000700b8 beqz v0, 0x7019c | goto label_14;
| }
0x000700bc move s3, s5 | s3 = s5;
0x000700c0 move fp, zero | fp = 0;
| do {
| label_4:
0x000700c4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x000700c8 move a1, s3 | a1 = s3;
0x000700cc addiu v0, v0, -1 | v0 += -1;
0x000700d0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000700d4 b 0x6fee4 | goto label_3;
| label_20:
0x000700d8 lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x000700dc bal 0x7b308 | sym_BN_mul_word ();
0x000700e0 nop |
0x000700e4 move s0, v0 | s0 = v0;
0x000700e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000700ec beqz v0, 0x7019c | goto label_14;
| }
0x000700f0 lw t9, -0x77b8(gp) | t9 = *(gp);
0x000700f4 sw s2, 0x10(sp) | *(var_10h) = s2;
0x000700f8 move a3, s7 | a3 = s7;
0x000700fc move a2, s1 | a2 = s1;
0x00070100 move a1, s6 | a1 = s6;
0x00070104 move a0, zero | a0 = 0;
0x00070108 bal 0x6e460 | sym_BN_div ();
0x0007010c move s0, v0 | s0 = v0;
0x00070110 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070114 beqz v0, 0x7019c | goto label_14;
| }
0x00070118 move v0, s1 | v0 = s1;
0x0007011c move s3, s5 | s3 = s5;
0x00070120 move s1, s6 | s1 = s6;
0x00070124 move s6, v0 | s6 = v0;
0x00070128 b 0x700c4 |
| } while (1);
| label_19:
0x0007012c move s3, v0 | s3 = v0;
0x00070130 b 0x700c4 | goto label_4;
| label_13:
0x00070134 lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x00070138 bal 0x7b308 | sym_BN_mul_word ();
0x0007013c nop |
0x00070140 move s0, v0 | s0 = v0;
0x00070144 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070148 beqz v0, 0x7019c | goto label_14;
| }
0x0007014c lw t9, -0x77b8(gp) | t9 = *(gp);
0x00070150 sw s2, 0x10(sp) | *(var_10h) = s2;
0x00070154 move a3, s7 | a3 = s7;
0x00070158 move a2, s1 | a2 = s1;
0x0007015c move a1, s6 | a1 = s6;
0x00070160 move a0, zero | a0 = 0;
0x00070164 bal 0x6e460 | sym_BN_div ();
0x00070168 move s0, v0 | s0 = v0;
0x0007016c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070170 beqz v0, 0x7019c | goto label_14;
| }
0x00070174 move s1, s6 | s1 = s6;
0x00070178 b 0x6ff40 | goto label_5;
| label_12:
0x0007017c lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| if (fp == 0) {
0x00070180 beqz fp, 0x6ff44 | goto label_6;
| }
0x00070184 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x00070188 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0007018c addiu a1, zero, 1 | a1 = 1;
0x00070190 bal 0x73114 | sym_BN_set_word ();
0x00070194 lw gp, 0x18(sp) | gp = *(var_18h);
| label_15:
0x00070198 sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
| do {
| label_14:
0x0007019c lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000701a0 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| if (v0 == 0) {
0x000701a4 bnez v0, 0x701bc |
| label_8:
0x000701a8 lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
0x000701ac move a0, s4 | a0 = s4;
0x000701b0 bal 0x74b0c | sym_BN_MONT_CTX_free ();
0x000701b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000701b8 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| }
0x000701bc move a0, s2 | a0 = s2;
0x000701c0 bal 0x6db34 | sym_BN_CTX_end ();
0x000701c4 b 0x6fda4 | goto label_7;
0x000701c8 nop |
| label_10:
0x000701cc move s0, zero | s0 = 0;
0x000701d0 move s4, zero | s4 = 0;
0x000701d4 b 0x7019c |
| } while (1);
| label_11:
0x000701d8 move s0, zero | s0 = 0;
0x000701dc b 0x701a8 | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x6efb4 */
| #include <stdint.h>
|
; (fcn) sym.BN_mod_exp_mont_consttime () | void BN_mod_exp_mont_consttime () {
0x0006efb4 lui gp, 0x15 |
0x0006efb8 addiu gp, gp, 0x7c0c |
0x0006efbc addu gp, gp, t9 | gp += t9;
0x0006efc0 addiu sp, sp, -0x88 |
0x0006efc4 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x0006efc8 sw fp, 0x80(sp) | *(var_80h) = fp;
0x0006efcc move fp, sp | fp = sp;
0x0006efd0 sw s7, 0x7c(sp) | *(var_7ch) = s7;
0x0006efd4 sw s6, 0x78(sp) | *(var_78h) = s6;
0x0006efd8 sw s3, 0x6c(sp) | *(var_6ch) = s3;
0x0006efdc sw gp, 0x18(sp) | *(var_18h) = gp;
0x0006efe0 sw a0, 0x88(fp) | *(arg_88h) = a0;
0x0006efe4 sw ra, 0x84(sp) | *(var_84h) = ra;
0x0006efe8 sw s5, 0x74(sp) | *(var_74h) = s5;
0x0006efec sw s4, 0x70(sp) | *(var_70h) = s4;
0x0006eff0 sw s2, 0x68(sp) | *(var_68h) = s2;
0x0006eff4 sw s1, 0x64(sp) | *(var_64h) = s1;
0x0006eff8 sw s0, 0x60(sp) | *(var_60h) = s0;
0x0006effc sw a2, 0x90(fp) | *(arg_90h) = a2;
0x0006f000 move a0, a3 | a0 = a3;
0x0006f004 move s7, a1 | s7 = a1;
0x0006f008 move s6, a3 | s6 = a3;
0x0006f00c lw s3, 0x98(fp) | s3 = *(arg_98h);
0x0006f010 bal 0x72c5c | sym_BN_is_odd ();
0x0006f014 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f018 bnez v0, 0x6f04c |
0x0006f01c lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006f020 move s0, v0 | s0 = v0;
0x0006f024 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006f028 addiu v0, zero, 0x266 | v0 = 0x266;
0x0006f02c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006f030 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006f034 addiu a2, zero, 0x66 | a2 = 0x66;
0x0006f038 addiu a1, zero, 0x7c | a1 = 0x7c;
0x0006f03c addiu a0, zero, 3 | a0 = 3;
0x0006f040 jalr t9 | t9 ();
| label_12:
0x0006f044 b 0x6f08c | goto label_13;
0x0006f048 nop |
| }
0x0006f04c lw v0, 0x90(fp) | v0 = *(arg_90h);
0x0006f050 lw v0, 4(v0) | v0 = *((v0 + 1));
0x0006f054 sll v0, v0, 5 | v0 <<= 5;
0x0006f058 sw v0, 0x48(fp) | *(var_48h) = v0;
| if (v0 != 0) {
0x0006f05c bnez v0, 0x6f0d8 | goto label_14;
| }
0x0006f060 lw t9, -0x77ec(gp) | t9 = *((gp - 7675));
0x0006f064 addiu a1, zero, 1 | a1 = 1;
0x0006f068 move a0, s6 | a0 = s6;
0x0006f06c bal 0x729bc | sym_BN_abs_is_word ();
0x0006f070 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f074 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
| if (v0 == 0) {
0x0006f078 beqz v0, 0x6f0c4 | goto label_15;
| }
0x0006f07c lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f080 move a1, zero | a1 = 0;
0x0006f084 addiu s0, zero, 1 | s0 = 1;
0x0006f088 bal 0x73114 | sym_BN_set_word ();
| do {
| label_13:
0x0006f08c move sp, fp |
0x0006f090 move v0, s0 | v0 = s0;
0x0006f094 lw ra, 0x84(sp) | ra = *(var_84h);
0x0006f098 lw fp, 0x80(sp) | fp = *(var_80h);
0x0006f09c lw s7, 0x7c(sp) | s7 = *(var_7ch);
0x0006f0a0 lw s6, 0x78(sp) | s6 = *(var_78h);
0x0006f0a4 lw s5, 0x74(sp) | s5 = *(var_74h);
0x0006f0a8 lw s4, 0x70(sp) | s4 = *(var_70h);
0x0006f0ac lw s3, 0x6c(sp) | s3 = *(var_6ch);
0x0006f0b0 lw s2, 0x68(sp) | s2 = *(var_68h);
0x0006f0b4 lw s1, 0x64(sp) | s1 = *(var_64h);
0x0006f0b8 lw s0, 0x60(sp) | s0 = *(var_60h);
0x0006f0bc addiu sp, sp, 0x88 |
0x0006f0c0 jr ra | return v0;
| label_15:
0x0006f0c4 lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f0c8 addiu a1, zero, 1 | a1 = 1;
0x0006f0cc bal 0x73114 | sym_BN_set_word ();
0x0006f0d0 move s0, v0 | s0 = v0;
0x0006f0d4 b 0x6f08c |
| } while (1);
| label_14:
0x0006f0d8 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x0006f0dc move a0, s3 | a0 = s3;
0x0006f0e0 lw s2, 4(s6) | s2 = *((s6 + 1));
0x0006f0e4 bal 0x6d9bc | sym_BN_CTX_start ();
0x0006f0e8 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f0ec lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f0f0 bnez v0, 0x6f158 | goto label_16;
| }
0x0006f0f4 lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
0x0006f0f8 bal 0x74a78 | sym_BN_MONT_CTX_new ();
0x0006f0fc nop |
0x0006f100 move s4, v0 | s4 = v0;
0x0006f104 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f108 beqz v0, 0x6f604 | goto label_17;
| }
0x0006f10c lw t9, -0x77d0(gp) | t9 = *((gp - 7668));
0x0006f110 move a2, s3 | a2 = s3;
0x0006f114 move a1, s6 | a1 = s6;
0x0006f118 move a0, v0 | a0 = v0;
0x0006f11c bal 0x74ba8 | sym_BN_MONT_CTX_set ();
0x0006f120 move s0, v0 | s0 = v0;
0x0006f124 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f128 beqz v0, 0x6f618 | goto label_18;
| }
| do {
0x0006f12c lw v0, 0xc(s7) | v0 = *((s7 + 3));
0x0006f130 lw t9, -0x7898(gp) | t9 = *((gp - 7718));
| if (v0 == 0) {
0x0006f134 beqz v0, 0x6f160 | goto label_19;
| }
| label_0:
0x0006f138 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006f13c move a0, s3 | a0 = s3;
0x0006f140 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006f144 move s0, v0 | s0 = v0;
0x0006f148 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f14c bnez v0, 0x6f40c | goto label_20;
| }
| label_1:
0x0006f150 sw zero, 0x54(fp) | *(var_54h) = 0;
0x0006f154 b 0x6f45c | goto label_21;
| label_16:
0x0006f158 lw s4, 0x9c(fp) | s4 = *(arg_9ch);
0x0006f15c b 0x6f12c |
| } while (1);
| label_19:
0x0006f160 move a1, s6 | a1 = s6;
0x0006f164 move a0, s7 | a0 = s7;
0x0006f168 bal 0x726f4 | sym_BN_ucmp ();
0x0006f16c lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 >= 0) {
0x0006f170 bgez v0, 0x6f138 | goto label_0;
| }
| label_2:
0x0006f174 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f178 slti v0, v0, 0x3aa | v0 = (v0 < 0x3aa) ? 1 : 0;
0x0006f17c addiu s0, zero, 6 | s0 = 6;
| if (v0 != 0) {
0x0006f180 beqz v0, 0x6f1bc |
0x0006f184 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f188 slti v0, v0, 0x133 | v0 = (v0 < 0x133) ? 1 : 0;
0x0006f18c addiu s0, zero, 5 | s0 = 5;
| if (v0 == 0) {
0x0006f190 beqz v0, 0x6f1bc | goto label_22;
| }
0x0006f194 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f198 slti v0, v0, 0x5a | v0 = (v0 < 0x5a) ? 1 : 0;
0x0006f19c addiu s0, zero, 4 | s0 = 4;
| if (v0 == 0) {
0x0006f1a0 beqz v0, 0x6f1bc | goto label_22;
| }
0x0006f1a4 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f1a8 addiu v1, zero, 1 | v1 = 1;
0x0006f1ac slti s0, v0, 0x17 | s0 = (v0 < 0x17) ? 1 : 0;
0x0006f1b0 addiu v0, zero, 3 | v0 = 3;
| if (s0 == 0) {
0x0006f1b4 movn v0, v1, s0 | v0 = v1;
| }
0x0006f1b8 move s0, v0 | s0 = v0;
| }
| label_22:
0x0006f1bc addiu v0, zero, 1 | v0 = 1;
0x0006f1c0 sllv v0, v0, s0 | v0 <<= s0;
0x0006f1c4 sw v0, 0x50(fp) | *(var_50h) = v0;
0x0006f1c8 sll v1, s2, 1 | v1 = s2 << 1;
0x0006f1cc lw a0, 0x50(fp) | a0 = *(var_50h);
0x0006f1d0 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
| if (v0 != 0) {
0x0006f1d4 movz a0, v1, v0 | a0 = v1;
| }
0x0006f1d8 sllv v1, s2, s0 | v1 = s2 << s0;
0x0006f1dc addu v0, a0, v1 | v0 = a0 + v1;
0x0006f1e0 sll v0, v0, 2 | v0 <<= 2;
0x0006f1e4 sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x0006f1e8 sw v0, 0x54(fp) | *(var_54h) = v0;
0x0006f1ec addiu a0, v0, 0x40 | a0 = v0 + 0x40;
0x0006f1f0 slti v0, v0, 0xc00 | v0 = (v0 < aav.0x00000c00) ? 1 : 0;
0x0006f1f4 sw v0, 0x58(fp) | *(var_58h) = v0;
| if (v0 == 0) {
0x0006f1f8 beqz v0, 0x6f43c | goto label_23;
| }
0x0006f1fc lw v0, 0x4c(fp) | v0 = *(var_4ch);
0x0006f200 addiu v0, v0, 0x4e | v0 += 0x4e;
0x0006f204 srl v0, v0, 3 | v0 >>= 3;
0x0006f208 sll v0, v0, 3 | v0 <<= 3;
0x0006f20c subu sp, sp, v0 |
0x0006f210 addiu s5, sp, 0x18 | s5 = sp + 0x18;
| label_3:
0x0006f214 andi s1, s5, 0x3f | s1 = s5 & 0x3f;
0x0006f218 subu s1, s5, s1 | __asm ("subu s1, s5, s1");
0x0006f21c lw t9, -0x5604(gp) | t9 = *((gp - 5505));
0x0006f220 addiu s1, s1, 0x40 | s1 += 0x40;
0x0006f224 lw a2, 0x4c(fp) | a2 = *(var_4ch);
0x0006f228 move a0, s1 | a0 = s1;
0x0006f22c move a1, zero | a1 = 0;
0x0006f230 jalr t9 | t9 ();
0x0006f234 lw v0, 0x58(fp) | v0 = *(var_58h);
0x0006f238 sll a0, s2, 2 | a0 = s2 << 2;
| if (v0 == 0) {
0x0006f23c movn s5, zero, v0 | s5 = 0;
| }
0x0006f240 sllv v0, s2, s0 | v0 = s2 << s0;
0x0006f244 sll v0, v0, 2 | v0 <<= 2;
0x0006f248 addu v0, s1, v0 | v0 = s1 + v0;
0x0006f24c addu v1, v0, a0 | v1 = v0 + a0;
0x0006f250 sw v1, 0x20(fp) | *(var_20h) = v1;
0x0006f254 addiu v1, zero, 2 | v1 = 2;
0x0006f258 sw v1, 0x30(fp) | *(var_30h) = v1;
0x0006f25c sw v1, 0x44(fp) | *(var_44h) = v1;
0x0006f260 lw v1, (s6) | v1 = *(s6);
0x0006f264 sw zero, 0x24(fp) | *(var_24h) = 0;
0x0006f268 addu a0, v1, a0 | a0 = v1 + a0;
0x0006f26c sw zero, 0x38(fp) | *(var_38h) = 0;
0x0006f270 sw s2, 0x28(fp) | *(var_28h) = s2;
0x0006f274 sw s2, 0x3c(fp) | *(var_3ch) = s2;
0x0006f278 sw zero, 0x2c(fp) | *(var_2ch) = 0;
0x0006f27c sw zero, 0x40(fp) | *(var_40h) = 0;
0x0006f280 lw a0, -4(a0) | a0 = *((a0 - 1));
0x0006f284 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f288 sw v0, 0x34(fp) | *(var_34h) = v0;
| if (a0 >= 0) {
0x0006f28c bgez a0, 0x6f488 | goto label_24;
| }
0x0006f290 lw a0, (v1) | a0 = *(v1);
0x0006f294 addiu v0, v0, 4 | v0 += 4;
0x0006f298 negu a0, a0 | __asm ("negu a0, a0");
0x0006f29c sw a0, -4(v0) | *((v0 - 1)) = a0;
0x0006f2a0 addiu v1, v1, 4 | v1 += 4;
0x0006f2a4 addiu a0, zero, 1 | a0 = 1;
| label_4:
0x0006f2a8 slt a1, a0, s2 | a1 = (a0 < s2) ? 1 : 0;
0x0006f2ac addiu a0, a0, 1 | a0++;
| if (a1 != 0) {
0x0006f2b0 bnez a1, 0x6f470 | goto label_25;
| }
0x0006f2b4 sw s2, 0x38(fp) | *(var_38h) = s2;
| label_5:
0x0006f2b8 addiu v0, fp, 0x20 | v0 = fp + 0x20;
0x0006f2bc lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006f2c0 move a3, s3 | a3 = s3;
0x0006f2c4 move a2, s4 | a2 = s4;
0x0006f2c8 move a1, s7 | a1 = s7;
0x0006f2cc sw v0, 0x4c(fp) | *(var_4ch) = v0;
0x0006f2d0 move a0, v0 | a0 = v0;
0x0006f2d4 bal 0x749d4 | fcn_000749d4 ();
0x0006f2d8 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f2dc beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f2e0 lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f2e4 addiu s6, fp, 0x34 | s6 = fp + 0x34;
0x0006f2e8 addiu v0, v0, -0x1988 | v0 += -0x1988;
0x0006f2ec sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f2f0 move a3, zero | a3 = 0;
0x0006f2f4 move a2, s1 | a2 = s1;
0x0006f2f8 move a1, s2 | a1 = s2;
0x0006f2fc move a0, s6 | a0 = s6;
0x0006f300 move t9, v0 | t9 = v0;
0x0006f304 sw v0, 0x58(fp) | *(var_58h) = v0;
0x0006f308 bal 0x6e678 | fcn_0006e678 ();
0x0006f30c lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f310 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f314 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x0006f318 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f31c sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f320 addiu a3, zero, 1 | a3 = 1;
0x0006f324 move a2, s1 | a2 = s1;
0x0006f328 move a1, s2 | a1 = s2;
0x0006f32c jalr t9 | t9 ();
0x0006f330 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f334 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f338 addiu v0, zero, 1 | v0 = 1;
0x0006f33c lw a2, 0x4c(fp) | a2 = *(var_4ch);
| if (s0 != v0) {
0x0006f340 bne s0, v0, 0x6f4c0 | goto label_26;
| }
| label_8:
0x0006f344 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f348 lw a0, 0x90(fp) | a0 = *(arg_90h);
0x0006f34c addiu s7, v0, -1 | s7 = v0 + -1;
0x0006f350 div zero, s7, s0 | __asm ("div zero, s7, s0");
0x0006f354 teq s0, zero, 7 | __asm ("teq s0, zero, 7");
0x0006f358 mfhi s7 | __asm ("mfhi s7");
0x0006f35c addiu s7, s7, 1 | s7++;
0x0006f360 subu v0, v0, s7 | __asm ("subu v0, v0, s7");
0x0006f364 move a1, v0 | a1 = v0;
0x0006f368 sw v0, 0x48(fp) | *(var_48h) = v0;
0x0006f36c lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f370 addiu v0, v0, -0x1a00 | v0 += -0x1a00;
0x0006f374 move t9, v0 | t9 = v0;
0x0006f378 sw v0, 0x58(fp) | *(var_58h) = v0;
0x0006f37c bal 0x6e600 | fcn_0006e600 ();
0x0006f380 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f384 addiu a3, zero, 1 | a3 = 1;
0x0006f388 sllv a3, a3, s7 | a3 <<= s7;
0x0006f38c addiu a3, a3, -1 | a3 += -1;
0x0006f390 and a3, a3, v0 | a3 &= v0;
0x0006f394 lw v0, -0x78cc(gp) | v0 = *(gp);
0x0006f398 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f39c addiu v0, v0, -0x1934 | v0 += -0x1934;
0x0006f3a0 move a2, s1 | a2 = s1;
0x0006f3a4 move a1, s2 | a1 = s2;
0x0006f3a8 move a0, s6 | a0 = s6;
0x0006f3ac move t9, v0 | t9 = v0;
0x0006f3b0 sw v0, 0x5c(fp) | *(var_5ch) = v0;
0x0006f3b4 bal 0x6e6cc | fcn_0006e6cc ();
0x0006f3b8 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f3bc beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f3c0 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0006f3c4 addiu v0, v0, -1 | v0 += -1;
0x0006f3c8 sw v0, 0x50(fp) | *(var_50h) = v0;
| label_11:
0x0006f3cc lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f3d0 move s7, zero | s7 = 0;
| if (v0 > 0) {
0x0006f3d4 bgtz v0, 0x6f564 | goto label_27;
| }
0x0006f3d8 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
0x0006f3dc lw a0, 0x88(fp) | a0 = *(arg_88h);
0x0006f3e0 move a3, s3 | a3 = s3;
0x0006f3e4 move a2, s4 | a2 = s4;
0x0006f3e8 move a1, s6 | a1 = s6;
0x0006f3ec bal 0x7497c | sym_BN_from_montgomery ();
0x0006f3f0 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f3f4 sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
| label_6:
0x0006f3f8 lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f3fc lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
| if (v0 != 0) {
0x0006f400 bnez v0, 0x6f638 | goto label_28;
| }
0x0006f404 b 0x6f628 | goto label_29;
0x0006f408 nop |
| label_20:
0x0006f40c lw t9, -0x77e0(gp) | t9 = *((gp - 7672));
0x0006f410 move a3, s3 | a3 = s3;
0x0006f414 move a2, s6 | a2 = s6;
0x0006f418 move a1, s7 | a1 = s7;
0x0006f41c move a0, v0 | a0 = v0;
0x0006f420 bal 0x739a8 | sym_BN_nnmod ();
0x0006f424 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f428 beqz v0, 0x6f150 | goto label_1;
| }
0x0006f42c move s7, s0 | s7 = s0;
0x0006f430 b 0x6f174 | goto label_2;
| label_23:
0x0006f43c lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0006f440 lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x0006f444 addiu a2, zero, 0x2d3 | a2 = 0x2d3;
0x0006f448 addiu a1, a1, 0x7638 | a1 += 0x7638;
0x0006f44c jalr t9 | t9 ();
0x0006f450 move s5, v0 | s5 = v0;
0x0006f454 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f458 bnez v0, 0x6f214 | goto label_3;
| }
| label_21:
0x0006f45c lw v0, 0x9c(fp) | v0 = *(arg_9ch);
0x0006f460 move s1, zero | s1 = 0;
| if (v0 == 0) {
0x0006f464 beqz v0, 0x6f60c | goto label_30;
| }
0x0006f468 move s0, zero | s0 = 0;
0x0006f46c b 0x6f668 | goto label_31;
| label_25:
0x0006f470 lw a1, (v1) | a1 = *(v1);
0x0006f474 nor a1, zero, a1 | __asm ("nor a1, zero, a1");
0x0006f478 sw a1, (v0) | *(v0) = a1;
0x0006f47c addiu v1, v1, 4 | v1 += 4;
0x0006f480 addiu v0, v0, 4 | v0 += 4;
0x0006f484 b 0x6f2a8 | goto label_4;
| label_24:
0x0006f488 lw t9, -0x77c4(gp) | t9 = *((gp - 7665));
0x0006f48c bal 0x72468 | sym_BN_value_one ();
0x0006f490 nop |
0x0006f494 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f498 move a3, s3 | a3 = s3;
0x0006f49c move a2, s4 | a2 = s4;
0x0006f4a0 lw t9, -0x7854(gp) | t9 = *((gp - 7701));
0x0006f4a4 move a1, v0 | a1 = v0;
0x0006f4a8 addiu a0, fp, 0x34 | a0 = fp + 0x34;
0x0006f4ac bal 0x749d4 | fcn_000749d4 ();
0x0006f4b0 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f4b4 bnez v0, 0x6f2b8 | goto label_5;
| }
| do {
| label_7:
0x0006f4b8 move s0, zero | s0 = 0;
0x0006f4bc b 0x6f3f8 | goto label_6;
| label_26:
0x0006f4c0 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f4c4 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f4c8 move a3, s4 | a3 = s4;
0x0006f4cc move a1, a2 | a1 = a2;
0x0006f4d0 move a0, s6 | a0 = s6;
0x0006f4d4 bal 0x7469c | fcn_0007469c ();
0x0006f4d8 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f4dc beqz v0, 0x6f4b8 |
| } while (v0 == 0);
0x0006f4e0 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f4e4 sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f4e8 addiu a3, zero, 2 | a3 = 2;
0x0006f4ec move a2, s1 | a2 = s1;
0x0006f4f0 move a1, s2 | a1 = s2;
0x0006f4f4 move a0, s6 | a0 = s6;
0x0006f4f8 jalr t9 | t9 ();
0x0006f4fc lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f500 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f504 addiu s7, zero, 3 | s7 = 3;
| label_9:
0x0006f508 lw v0, 0x50(fp) | v0 = *(var_50h);
0x0006f50c slt v0, s7, v0 | v0 = (s7 < v0) ? 1 : 0;
0x0006f510 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (v0 == 0) {
0x0006f514 beqz v0, 0x6f344 | goto label_8;
| }
0x0006f518 lw a1, 0x4c(fp) | a1 = *(var_4ch);
0x0006f51c sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f520 move a3, s4 | a3 = s4;
0x0006f524 move a2, s6 | a2 = s6;
0x0006f528 move a0, s6 | a0 = s6;
0x0006f52c bal 0x7469c | fcn_0007469c ();
0x0006f530 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f534 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f538 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f53c sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f540 move a3, s7 | a3 = s7;
0x0006f544 move a2, s1 | a2 = s1;
0x0006f548 move a1, s2 | a1 = s2;
0x0006f54c move a0, s6 | a0 = s6;
0x0006f550 jalr t9 | t9 ();
0x0006f554 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f558 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f55c addiu s7, s7, 1 | s7++;
0x0006f560 b 0x6f508 | goto label_9;
| label_27:
0x0006f564 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| label_10:
0x0006f568 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f56c move a3, s4 | a3 = s4;
0x0006f570 move a2, s6 | a2 = s6;
0x0006f574 move a1, s6 | a1 = s6;
0x0006f578 move a0, s6 | a0 = s6;
0x0006f57c bal 0x7469c | fcn_0007469c ();
0x0006f580 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f584 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f588 addiu s7, s7, 1 | s7++;
0x0006f58c lw t9, -0x7848(gp) | t9 = *((gp - 7698));
| if (s0 != s7) {
0x0006f590 bne s0, s7, 0x6f568 | goto label_10;
| }
0x0006f594 lw v0, 0x48(fp) | v0 = *(var_48h);
0x0006f598 lw a0, 0x90(fp) | a0 = *(arg_90h);
0x0006f59c subu v0, v0, s0 | __asm ("subu v0, v0, s0");
0x0006f5a0 lw t9, 0x58(fp) | t9 = *(var_58h);
0x0006f5a4 move a1, v0 | a1 = v0;
0x0006f5a8 sw v0, 0x48(fp) | *(var_48h) = v0;
0x0006f5ac jalr t9 | t9 ();
0x0006f5b0 lw v1, 0x50(fp) | v1 = *(var_50h);
0x0006f5b4 lw a0, 0x4c(fp) | a0 = *(var_4ch);
0x0006f5b8 lw t9, 0x5c(fp) | t9 = *(var_5ch);
0x0006f5bc sw s0, 0x10(sp) | *(var_10h) = s0;
0x0006f5c0 and a3, v1, v0 | a3 = v1 & v0;
0x0006f5c4 move a2, s1 | a2 = s1;
0x0006f5c8 move a1, s2 | a1 = s2;
0x0006f5cc jalr t9 | t9 ();
0x0006f5d0 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006f5d4 beqz v0, 0x6f4b8 | goto label_7;
| }
0x0006f5d8 lw t9, -0x7848(gp) | t9 = *((gp - 7698));
0x0006f5dc lw a2, 0x4c(fp) | a2 = *(var_4ch);
0x0006f5e0 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0006f5e4 move a3, s4 | a3 = s4;
0x0006f5e8 move a1, s6 | a1 = s6;
0x0006f5ec move a0, s6 | a0 = s6;
0x0006f5f0 bal 0x7469c | fcn_0007469c ();
0x0006f5f4 lw gp, 0x18(fp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006f5f8 bnez v0, 0x6f3cc | goto label_11;
| }
0x0006f5fc move s0, zero | s0 = 0;
0x0006f600 b 0x6f3f8 | goto label_6;
| label_17:
0x0006f604 move s1, zero | s1 = 0;
0x0006f608 sw zero, 0x54(fp) | *(var_54h) = 0;
| label_30:
0x0006f60c move s5, zero | s5 = 0;
0x0006f610 move s0, zero | s0 = 0;
0x0006f614 b 0x6f624 | goto label_32;
| label_18:
0x0006f618 sw zero, 0x54(fp) | *(var_54h) = 0;
0x0006f61c move s1, zero | s1 = 0;
0x0006f620 move s5, zero | s5 = 0;
| label_32:
0x0006f624 lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
| label_29:
0x0006f628 move a0, s4 | a0 = s4;
0x0006f62c bal 0x74b0c | sym_BN_MONT_CTX_free ();
0x0006f630 lw gp, 0x18(fp) | gp = *(var_18h);
| if (s1 != 0) {
0x0006f634 beqz s1, 0x6f668 |
| label_28:
0x0006f638 lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x0006f63c lw a1, 0x54(fp) | a1 = *(var_54h);
0x0006f640 move a0, s1 | a0 = s1;
0x0006f644 jalr t9 | t9 ();
0x0006f648 lw gp, 0x18(fp) | gp = *(var_18h);
0x0006f64c addiu a2, zero, 0x463 | a2 = 0x463;
0x0006f650 move a0, s5 | a0 = s5;
0x0006f654 lw a1, -0x7fd4(gp) | a1 = *((gp - 8181));
0x0006f658 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x0006f65c addiu a1, a1, 0x7638 | a1 += 0x7638;
0x0006f660 jalr t9 | t9 ();
0x0006f664 lw gp, 0x18(fp) | gp = *(var_18h);
| }
| label_31:
0x0006f668 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
0x0006f66c move a0, s3 | a0 = s3;
0x0006f670 bal 0x6db34 | sym_BN_CTX_end ();
0x0006f674 b 0x6f044 | goto label_12;
0x0006f678 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x6fc84 */
| #include <stdint.h>
|
; (fcn) sym.BN_mod_exp_mont_word () | void BN_mod_exp_mont_word () {
0x0006fc84 lui gp, 0x15 |
0x0006fc88 addiu gp, gp, 0x6f3c |
0x0006fc8c addu gp, gp, t9 | gp += t9;
0x0006fc90 addiu sp, sp, -0x58 |
0x0006fc94 lw t9, -0x7874(gp) | t9 = *(gp);
0x0006fc98 lw v0, 0x6c(sp) | v0 = *(arg_6ch);
0x0006fc9c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0006fca0 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x0006fca4 sw s5, 0x44(sp) | *(var_44h) = s5;
0x0006fca8 sw s2, 0x38(sp) | *(var_38h) = s2;
0x0006fcac sw a0, 0x24(sp) | *(var_24h) = a0;
0x0006fcb0 sw ra, 0x54(sp) | *(var_54h) = ra;
0x0006fcb4 sw fp, 0x50(sp) | *(var_50h) = fp;
0x0006fcb8 sw s6, 0x48(sp) | *(var_48h) = s6;
0x0006fcbc sw s4, 0x40(sp) | *(var_40h) = s4;
0x0006fcc0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x0006fcc4 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0006fcc8 sw s0, 0x30(sp) | *(var_30h) = s0;
0x0006fccc move s5, a1 | s5 = a1;
0x0006fcd0 sw a2, 0x28(sp) | *(var_28h) = a2;
0x0006fcd4 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0006fcd8 addiu a1, zero, 4 | a1 = 4;
0x0006fcdc move a0, a2 | a0 = a2;
0x0006fce0 move s7, a3 | s7 = a3;
0x0006fce4 lw s2, 0x68(sp) | s2 = *(arg_68h);
0x0006fce8 bal 0x72dc8 | sym_BN_get_flags ();
0x0006fcec lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fcf0 beqz v0, 0x6fd50 |
| while (v0 != 0) {
0x0006fcf4 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006fcf8 addiu v0, zero, 0x486 | v0 = 0x486;
0x0006fcfc lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006fd00 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006fd04 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006fd08 addiu a2, zero, 0x42 | a2 = 0x42;
0x0006fd0c addiu a1, zero, 0x75 | a1 = 0x75;
0x0006fd10 addiu a0, zero, 3 | a0 = 3;
0x0006fd14 move s0, zero | s0 = 0;
0x0006fd18 jalr t9 | t9 ();
| label_1:
0x0006fd1c lw ra, 0x54(sp) | ra = *(var_54h);
| label_0:
0x0006fd20 move v0, s0 | v0 = s0;
0x0006fd24 lw fp, 0x50(sp) | fp = *(var_50h);
0x0006fd28 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x0006fd2c lw s6, 0x48(sp) | s6 = *(var_48h);
0x0006fd30 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0006fd34 lw s4, 0x40(sp) | s4 = *(var_40h);
0x0006fd38 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x0006fd3c lw s2, 0x38(sp) | s2 = *(var_38h);
0x0006fd40 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0006fd44 lw s0, 0x30(sp) | s0 = *(var_30h);
0x0006fd48 addiu sp, sp, 0x58 |
0x0006fd4c jr ra | return v0;
0x0006fd50 lw t9, -0x7874(gp) | t9 = *(gp);
0x0006fd54 addiu a1, zero, 4 | a1 = 4;
0x0006fd58 move a0, s7 | a0 = s7;
0x0006fd5c bal 0x72dc8 | sym_BN_get_flags ();
0x0006fd60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fd64 bnez v0, 0x6fcf4 |
| }
0x0006fd68 lw t9, -0x77fc(gp) | t9 = *((gp - 7679));
0x0006fd6c move a0, s7 | a0 = s7;
0x0006fd70 bal 0x72c5c | sym_BN_is_odd ();
0x0006fd74 move s0, v0 | s0 = v0;
0x0006fd78 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fd7c bnez v0, 0x6fdac |
0x0006fd80 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x0006fd84 addiu v0, zero, 0x48e | v0 = 0x48e;
0x0006fd88 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0006fd8c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0006fd90 addiu a3, a3, 0x7638 | a3 += 0x7638;
0x0006fd94 addiu a2, zero, 0x66 | a2 = 0x66;
0x0006fd98 addiu a1, zero, 0x75 | a1 = 0x75;
0x0006fd9c addiu a0, zero, 3 | a0 = 3;
0x0006fda0 jalr t9 | t9 ();
| label_7:
0x0006fda4 lw ra, 0x54(sp) | ra = *(var_54h);
0x0006fda8 b 0x6fd20 | goto label_0;
| }
0x0006fdac lw v1, 4(s7) | v1 = *((s7 + 1));
0x0006fdb0 addiu v0, zero, 1 | v0 = 1;
0x0006fdb4 lw t9, -0x7f08(gp) | t9 = *((gp - 8130));
| if (v1 == v0) {
0x0006fdb8 bne v1, v0, 0x6fdd0 |
0x0006fdbc lw v0, (s7) | v0 = *(s7);
0x0006fdc0 lw v0, (v0) | v0 = *(v0);
0x0006fdc4 divu zero, s5, v0 | __asm ("divu zero, s5, v0");
0x0006fdc8 teq v0, zero, 7 | __asm ("teq v0, zero, 7");
0x0006fdcc mfhi s5 | __asm ("mfhi s5");
| }
0x0006fdd0 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0006fdd4 bal 0x72a00 | sym_BN_num_bits ();
0x0006fdd8 move s3, v0 | s3 = v0;
0x0006fddc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0006fde0 bnez v0, 0x6fe50 | goto label_9;
| }
0x0006fde4 lw t9, -0x77ec(gp) | t9 = *((gp - 7675));
0x0006fde8 addiu a1, zero, 1 | a1 = 1;
0x0006fdec move a0, s7 | a0 = s7;
0x0006fdf0 bal 0x729bc | sym_BN_abs_is_word ();
0x0006fdf4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fdf8 beqz v0, 0x6fe14 |
| while (s5 == 0) {
0x0006fdfc lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006fe00 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006fe04 move a1, zero | a1 = 0;
0x0006fe08 bal 0x73114 | sym_BN_set_word ();
0x0006fe0c addiu s0, zero, 1 | s0 = 1;
0x0006fe10 b 0x6fd1c | goto label_1;
0x0006fe14 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006fe18 lw ra, 0x54(sp) | ra = *(var_54h);
0x0006fe1c lw fp, 0x50(sp) | fp = *(var_50h);
0x0006fe20 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x0006fe24 lw s6, 0x48(sp) | s6 = *(var_48h);
0x0006fe28 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0006fe2c lw s4, 0x40(sp) | s4 = *(var_40h);
0x0006fe30 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x0006fe34 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0006fe38 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0006fe3c lw s0, 0x30(sp) | s0 = *(var_30h);
0x0006fe40 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006fe44 addiu a1, zero, 1 | a1 = 1;
0x0006fe48 addiu sp, sp, 0x58 |
0x0006fe4c b 0x73114 | void (*0x73114)() ();
| label_9:
0x0006fe50 lw t9, -0x7820(gp) | t9 = *((gp - 7688));
0x0006fe54 beqz s5, 0x6fdfc |
| }
0x0006fe58 move a0, s2 | a0 = s2;
0x0006fe5c bal 0x6d9bc | sym_BN_CTX_start ();
0x0006fe60 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fe64 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006fe68 move a0, s2 | a0 = s2;
0x0006fe6c bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006fe70 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006fe74 move a0, s2 | a0 = s2;
0x0006fe78 lw t9, -0x781c(gp) | t9 = *((gp - 7687));
0x0006fe7c move s1, v0 | s1 = v0;
0x0006fe80 bal 0x6dbd0 | sym_BN_CTX_get ();
0x0006fe84 move s6, v0 | s6 = v0;
0x0006fe88 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fe8c beqz v0, 0x701cc | goto label_10;
| }
0x0006fe90 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x0006fe94 lw s4, 0x2c(sp) | s4 = *(var_2ch);
| if (v0 == 0) {
0x0006fe98 bnez v0, 0x6fed4 |
0x0006fe9c lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
0x0006fea0 bal 0x74a78 | sym_BN_MONT_CTX_new ();
0x0006fea4 nop |
0x0006fea8 move s4, v0 | s4 = v0;
0x0006feac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006feb0 beqz v0, 0x701d8 | goto label_11;
| }
0x0006feb4 lw t9, -0x77d0(gp) | t9 = *((gp - 7668));
0x0006feb8 move a2, s2 | a2 = s2;
0x0006febc move a1, s7 | a1 = s7;
0x0006fec0 move a0, v0 | a0 = v0;
0x0006fec4 bal 0x74ba8 | sym_BN_MONT_CTX_set ();
0x0006fec8 move s0, v0 | s0 = v0;
0x0006fecc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006fed0 beqz v0, 0x701a8 | goto label_8;
| }
| }
0x0006fed4 addiu v0, s3, -2 | v0 = s3 + -2;
0x0006fed8 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0006fedc move a1, s5 | a1 = s5;
0x0006fee0 addiu fp, zero, 1 | fp = 1;
| label_3:
0x0006fee4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0006fee8 mul s3, a1, a1 | __asm ("mul s3, a1, a1");
| if (v0 < 0) {
0x0006feec bgez v0, 0x6ff60 |
0x0006fef0 addiu v0, zero, 1 | v0 = 1;
| if (a1 == v0) {
0x0006fef4 beq a1, v0, 0x7017c | goto label_12;
| }
0x0006fef8 nop |
0x0006fefc move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0006ff00 beqz fp, 0x70134 | goto label_13;
| }
0x0006ff04 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006ff08 bal 0x73114 | sym_BN_set_word ();
0x0006ff0c nop |
0x0006ff10 move s0, v0 | s0 = v0;
0x0006ff14 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff18 beqz v0, 0x7019c | goto label_14;
| }
0x0006ff1c lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0006ff20 move a3, s2 | a3 = s2;
0x0006ff24 move a2, s4 | a2 = s4;
0x0006ff28 move a1, s1 | a1 = s1;
0x0006ff2c move a0, s1 | a0 = s1;
0x0006ff30 bal 0x72c90 | sym_BN_to_montgomery ();
0x0006ff34 move s0, v0 | s0 = v0;
0x0006ff38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff3c beqz v0, 0x7019c | goto label_14;
| }
| label_5:
0x0006ff40 lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| label_6:
0x0006ff44 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0006ff48 move a3, s2 | a3 = s2;
0x0006ff4c move a2, s4 | a2 = s4;
0x0006ff50 move a1, s1 | a1 = s1;
0x0006ff54 bal 0x7497c | sym_BN_from_montgomery ();
0x0006ff58 lw gp, 0x18(sp) | gp = *(var_18h);
0x0006ff5c b 0x70198 | goto label_15;
| }
0x0006ff60 divu zero, s3, a1 | __asm ("divu zero, s3, a1");
0x0006ff64 teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0006ff68 mflo v0 | __asm ("mflo v0");
| if (a1 == v0) {
0x0006ff6c beq a1, v0, 0x7003c | goto label_16;
| }
0x0006ff70 nop |
0x0006ff74 move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0006ff78 beqz fp, 0x6ffec | goto label_17;
| }
0x0006ff7c lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x0006ff80 bal 0x73114 | sym_BN_set_word ();
0x0006ff84 nop |
0x0006ff88 move s0, v0 | s0 = v0;
0x0006ff8c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ff90 beqz v0, 0x7019c | goto label_14;
| }
0x0006ff94 lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0006ff98 move a3, s2 | a3 = s2;
0x0006ff9c move a2, s4 | a2 = s4;
0x0006ffa0 move a1, s1 | a1 = s1;
0x0006ffa4 move a0, s1 | a0 = s1;
0x0006ffa8 bal 0x72c90 | sym_BN_to_montgomery ();
0x0006ffac move s0, v0 | s0 = v0;
0x0006ffb0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ffb4 beqz v0, 0x7019c | goto label_14;
| }
| do {
0x0006ffb8 addiu s3, zero, 1 | s3 = 1;
0x0006ffbc lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| label_2:
0x0006ffc0 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0006ffc4 move a3, s4 | a3 = s4;
0x0006ffc8 move a2, s1 | a2 = s1;
0x0006ffcc move a1, s1 | a1 = s1;
0x0006ffd0 move a0, s1 | a0 = s1;
0x0006ffd4 bal 0x74848 | sym_BN_mod_mul_montgomery ();
0x0006ffd8 move s0, v0 | s0 = v0;
0x0006ffdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0006ffe0 beqz v0, 0x7019c | goto label_14;
| }
0x0006ffe4 move fp, zero | fp = 0;
0x0006ffe8 b 0x70044 | goto label_18;
| label_17:
0x0006ffec lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x0006fff0 bal 0x7b308 | sym_BN_mul_word ();
0x0006fff4 nop |
0x0006fff8 move s0, v0 | s0 = v0;
0x0006fffc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070000 beqz v0, 0x7019c | goto label_14;
| }
0x00070004 lw t9, -0x77b8(gp) | t9 = *(gp);
0x00070008 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0007000c move a3, s7 | a3 = s7;
0x00070010 move a2, s1 | a2 = s1;
0x00070014 move a1, s6 | a1 = s6;
0x00070018 move a0, zero | a0 = 0;
0x0007001c bal 0x6e460 | sym_BN_div ();
0x00070020 move s0, v0 | s0 = v0;
0x00070024 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070028 beqz v0, 0x7019c | goto label_14;
| }
0x0007002c move v0, s1 | v0 = s1;
0x00070030 move s1, s6 | s1 = s6;
0x00070034 move s6, v0 | s6 = v0;
0x00070038 b 0x6ffb8 |
| } while (1);
| label_16:
0x0007003c lw t9, -0x788c(gp) | t9 = *((gp - 7715));
| if (fp == 0) {
0x00070040 beqz fp, 0x6ffc0 | goto label_2;
| }
| label_18:
0x00070044 lw t9, -0x77f8(gp) | t9 = *((gp - 7678));
0x00070048 lw a1, 0x20(sp) | a1 = *(var_20h);
0x0007004c lw a0, 0x28(sp) | a0 = *(var_28h);
0x00070050 bal 0x72814 | sym_BN_is_bit_set ();
0x00070054 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070058 beqz v0, 0x700c4 | goto label_4;
| }
0x0007005c mul v0, s5, s3 | __asm ("mul v0, s5, s3");
0x00070060 divu zero, v0, s5 | __asm ("divu zero, v0, s5");
0x00070064 teq s5, zero, 7 | __asm ("teq s5, zero, 7");
0x00070068 mflo v1 | __asm ("mflo v1");
| if (v1 == s3) {
0x0007006c beq v1, s3, 0x7012c | goto label_19;
| }
0x00070070 nop |
0x00070074 move a1, s3 | a1 = s3;
0x00070078 move a0, s1 | a0 = s1;
| if (fp == 0) {
0x0007007c beqz fp, 0x700d8 | goto label_20;
| }
0x00070080 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x00070084 bal 0x73114 | sym_BN_set_word ();
0x00070088 nop |
0x0007008c move s0, v0 | s0 = v0;
0x00070090 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070094 beqz v0, 0x7019c | goto label_14;
| }
0x00070098 lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x0007009c move a3, s2 | a3 = s2;
0x000700a0 move a2, s4 | a2 = s4;
0x000700a4 move a1, s1 | a1 = s1;
0x000700a8 move a0, s1 | a0 = s1;
0x000700ac bal 0x72c90 | sym_BN_to_montgomery ();
0x000700b0 move s0, v0 | s0 = v0;
0x000700b4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000700b8 beqz v0, 0x7019c | goto label_14;
| }
0x000700bc move s3, s5 | s3 = s5;
0x000700c0 move fp, zero | fp = 0;
| do {
| label_4:
0x000700c4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x000700c8 move a1, s3 | a1 = s3;
0x000700cc addiu v0, v0, -1 | v0 += -1;
0x000700d0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000700d4 b 0x6fee4 | goto label_3;
| label_20:
0x000700d8 lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x000700dc bal 0x7b308 | sym_BN_mul_word ();
0x000700e0 nop |
0x000700e4 move s0, v0 | s0 = v0;
0x000700e8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000700ec beqz v0, 0x7019c | goto label_14;
| }
0x000700f0 lw t9, -0x77b8(gp) | t9 = *(gp);
0x000700f4 sw s2, 0x10(sp) | *(var_10h) = s2;
0x000700f8 move a3, s7 | a3 = s7;
0x000700fc move a2, s1 | a2 = s1;
0x00070100 move a1, s6 | a1 = s6;
0x00070104 move a0, zero | a0 = 0;
0x00070108 bal 0x6e460 | sym_BN_div ();
0x0007010c move s0, v0 | s0 = v0;
0x00070110 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070114 beqz v0, 0x7019c | goto label_14;
| }
0x00070118 move v0, s1 | v0 = s1;
0x0007011c move s3, s5 | s3 = s5;
0x00070120 move s1, s6 | s1 = s6;
0x00070124 move s6, v0 | s6 = v0;
0x00070128 b 0x700c4 |
| } while (1);
| label_19:
0x0007012c move s3, v0 | s3 = v0;
0x00070130 b 0x700c4 | goto label_4;
| label_13:
0x00070134 lw t9, -0x7eb0(gp) | t9 = *((gp - 8108));
0x00070138 bal 0x7b308 | sym_BN_mul_word ();
0x0007013c nop |
0x00070140 move s0, v0 | s0 = v0;
0x00070144 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070148 beqz v0, 0x7019c | goto label_14;
| }
0x0007014c lw t9, -0x77b8(gp) | t9 = *(gp);
0x00070150 sw s2, 0x10(sp) | *(var_10h) = s2;
0x00070154 move a3, s7 | a3 = s7;
0x00070158 move a2, s1 | a2 = s1;
0x0007015c move a1, s6 | a1 = s6;
0x00070160 move a0, zero | a0 = 0;
0x00070164 bal 0x6e460 | sym_BN_div ();
0x00070168 move s0, v0 | s0 = v0;
0x0007016c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00070170 beqz v0, 0x7019c | goto label_14;
| }
0x00070174 move s1, s6 | s1 = s6;
0x00070178 b 0x6ff40 | goto label_5;
| label_12:
0x0007017c lw t9, -0x77cc(gp) | t9 = *((gp - 7667));
| if (fp == 0) {
0x00070180 beqz fp, 0x6ff44 | goto label_6;
| }
0x00070184 lw t9, -0x7eac(gp) | t9 = *((gp - 8107));
0x00070188 lw a0, 0x24(sp) | a0 = *(var_24h);
0x0007018c addiu a1, zero, 1 | a1 = 1;
0x00070190 bal 0x73114 | sym_BN_set_word ();
0x00070194 lw gp, 0x18(sp) | gp = *(var_18h);
| label_15:
0x00070198 sltu s0, zero, v0 | s0 = (0 < v0) ? 1 : 0;
| do {
| label_14:
0x0007019c lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x000701a0 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| if (v0 == 0) {
0x000701a4 bnez v0, 0x701bc |
| label_8:
0x000701a8 lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
0x000701ac move a0, s4 | a0 = s4;
0x000701b0 bal 0x74b0c | sym_BN_MONT_CTX_free ();
0x000701b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000701b8 lw t9, -0x780c(gp) | t9 = *((gp - 7683));
| }
0x000701bc move a0, s2 | a0 = s2;
0x000701c0 bal 0x6db34 | sym_BN_CTX_end ();
0x000701c4 b 0x6fda4 | goto label_7;
0x000701c8 nop |
| label_10:
0x000701cc move s0, zero | s0 = 0;
0x000701d0 move s4, zero | s4 = 0;
0x000701d4 b 0x7019c |
| } while (1);
| label_11:
0x000701d8 move s0, zero | s0 = 0;
0x000701dc b 0x701a8 | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xa22e4 */
| #include <stdint.h>
|
; (fcn) sym.DSA_set_method () | void DSA_set_method () {
0x000a22e4 lw v0, 0x2c(a0) | v0 = *((a0 + 11));
0x000a22e8 addiu sp, sp, -0x28 |
0x000a22ec lw t9, 0x1c(v0) | t9 = *((v0 + 7));
0x000a22f0 sw s1, 0x20(sp) | *(var_20h) = s1;
0x000a22f4 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x000a22f8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000a22fc move s0, a0 | s0 = a0;
0x000a2300 move s1, a1 | s1 = a1;
| if (t9 != 0) {
0x000a2304 beqz t9, 0xa2310 |
0x000a2308 jalr t9 | t9 ();
0x000a230c nop |
| }
0x000a2310 lw t9, 0x18(s1) | t9 = *((s1 + 6));
0x000a2314 sw s1, 0x2c(s0) | *((s0 + 11)) = s1;
| if (t9 != 0) {
0x000a2318 beqz t9, 0xa2324 |
0x000a231c move a0, s0 | a0 = s0;
0x000a2320 jalr t9 | t9 ();
| }
0x000a2324 lw ra, 0x24(sp) | ra = *(var_24h);
0x000a2328 lw s1, 0x20(sp) | s1 = *(var_20h);
0x000a232c lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x000a2330 addiu v0, zero, 1 | v0 = 1;
0x000a2334 addiu sp, sp, 0x28 |
0x000a2338 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xbafe8 */
| #include <stdint.h>
|
; (fcn) sym.EC_GROUP_copy () | void EC_GROUP_copy () {
0x000bafe8 lui gp, 0x11 |
0x000bafec addiu gp, gp, -0x4428 |
0x000baff0 addu gp, gp, t9 | gp += t9;
0x000baff4 lw v0, (a0) | v0 = *(a0);
0x000baff8 addiu sp, sp, -0x30 |
0x000baffc lw v1, 0x14(v0) | v1 = *((v0 + 5));
0x000bb000 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000bb004 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x000bb008 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000bb00c sw s1, 0x24(sp) | *(var_24h) = s1;
0x000bb010 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000bb014 lw a3, -0x7e1c(gp) | a3 = *((gp - 8071));
| if (v1 != 0) {
0x000bb018 bnez v1, 0xbb044 | goto label_8;
| }
0x000bb01c addiu v0, zero, 0x85 | v0 = 0x85;
0x000bb020 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000bb024 addiu a3, a3, 0x1420 | a3 += 0x1420;
0x000bb028 addiu a2, zero, 0x42 | a2 = 0x42;
| do {
| label_7:
0x000bb02c lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000bb030 addiu a1, zero, 0x6a | a1 = 0x6a;
0x000bb034 addiu a0, zero, 0x10 | a0 = 0x10;
0x000bb038 bal 0xca548 | sym_ERR_put_error ();
0x000bb03c move v0, zero | v0 = 0;
0x000bb040 b 0xbb0c4 | goto label_2;
| label_8:
0x000bb044 lw v1, (a1) | v1 = *(a1);
0x000bb048 move s1, a1 | s1 = a1;
| if (v0 == v1) {
0x000bb04c beq v0, v1, 0xbb068 | goto label_9;
| }
0x000bb050 lw a3, -0x7e1c(gp) | a3 = *((gp - 8071));
0x000bb054 addiu v0, zero, 0x89 | v0 = 0x89;
0x000bb058 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000bb05c addiu a3, a3, 0x1420 | a3 += 0x1420;
0x000bb060 addiu a2, zero, 0x65 | a2 = 0x65;
0x000bb064 b 0xbb02c |
| } while (1);
| label_9:
0x000bb068 move s0, a0 | s0 = a0;
| if (a0 == a1) {
0x000bb06c beq a0, a1, 0xbb2a0 | goto label_10;
| }
0x000bb070 lw v0, 0x10(a1) | v0 = *((a1 + 4));
0x000bb074 sw v0, 0x10(a0) | *((a0 + 4)) = v0;
0x000bb078 lw v0, 0x5c(a1) | v0 = *((a1 + 23));
0x000bb07c sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x000bb080 lw v0, 0x5c(a1) | v0 = *((a1 + 23));
0x000bb084 addiu v1, zero, 5 | v1 = 5;
| if (v0 == 0) {
0x000bb088 beqz v0, 0xbb0dc | goto label_11;
| }
0x000bb08c lw t9, -0x6cf4(gp) | t9 = *(gp);
| if (v0 == v1) {
0x000bb090 beq v0, v1, 0xbb0e4 | goto label_12;
| }
| do {
| label_0:
0x000bb094 lw v0, 0x58(s1) | v0 = *((s1 + 22));
0x000bb098 lw a0, 0x58(s0) | a0 = *((s0 + 22));
| if (v0 == 0) {
0x000bb09c beqz v0, 0xbb114 | goto label_13;
| }
0x000bb0a0 lw t9, -0x77d4(gp) | t9 = *((gp - 7669));
| if (a0 == 0) {
0x000bb0a4 beqz a0, 0xbb0f8 | goto label_14;
| }
| label_1:
0x000bb0a8 lw t9, -0x6cf0(gp) | t9 = *((gp - 6972));
0x000bb0ac lw a1, 0x58(s1) | a1 = *((s1 + 22));
0x000bb0b0 lw a0, 0x58(s0) | a0 = *((s0 + 22));
0x000bb0b4 jalr t9 | t9 ();
0x000bb0b8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000bb0bc bnez v0, 0xbb128 | goto label_15;
| }
| label_3:
0x000bb0c0 move v0, zero | v0 = 0;
| label_2:
0x000bb0c4 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000bb0c8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000bb0cc lw s1, 0x24(sp) | s1 = *(var_24h);
0x000bb0d0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000bb0d4 addiu sp, sp, 0x30 |
0x000bb0d8 jr ra | return v0;
| label_11:
0x000bb0dc sw zero, 0x60(a0) | *((a0 + 24)) = 0;
0x000bb0e0 b 0xbb094 |
| } while (1);
| label_12:
0x000bb0e4 lw a0, 0x60(a1) | a0 = *((a1 + 24));
0x000bb0e8 bal 0xbcacc | fcn_000bcacc ();
0x000bb0ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb0f0 sw v0, 0x60(s0) | *((s0 + 24)) = v0;
0x000bb0f4 b 0xbb094 | goto label_0;
| label_14:
0x000bb0f8 jalr t9 | t9 ();
0x000bb0fc nop |
0x000bb100 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb104 sw v0, 0x58(s0) | *((s0 + 22)) = v0;
| if (v0 != 0) {
0x000bb108 bnez v0, 0xbb0a8 | goto label_1;
| }
0x000bb10c move v0, zero | v0 = 0;
0x000bb110 b 0xbb0c4 | goto label_2;
| label_13:
0x000bb114 lw t9, -0x77c8(gp) | t9 = *((gp - 7666));
0x000bb118 jalr t9 | t9 ();
0x000bb11c nop |
0x000bb120 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb124 sw zero, 0x58(s0) | *((s0 + 22)) = 0;
| label_15:
0x000bb128 lw v0, 4(s1) | v0 = *((s1 + 1));
0x000bb12c lw a0, 4(s0) | a0 = *((s0 + 1));
| if (v0 == 0) {
0x000bb130 beqz v0, 0xbb1c4 | goto label_16;
| }
0x000bb134 lw t9, -0x6d94(gp) | t9 = *(gp);
| if (a0 == 0) {
0x000bb138 beqz a0, 0xbb1a8 | goto label_17;
| }
| label_4:
0x000bb13c lw t9, -0x6d1c(gp) | t9 = *((gp - 6983));
0x000bb140 lw a1, 4(s1) | a1 = *((s1 + 1));
0x000bb144 lw a0, 4(s0) | a0 = *((s0 + 1));
0x000bb148 bal 0xbaf38 | sym_EC_POINT_copy ();
0x000bb14c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000bb150 beqz v0, 0xbb0c0 | goto label_3;
| }
| label_5:
0x000bb154 lw v0, (s1) | v0 = *(s1);
0x000bb158 lw v0, (v0) | v0 = *(v0);
0x000bb15c andi v0, v0, 2 | v0 &= 2;
| if (v0 == 0) {
0x000bb160 beqz v0, 0xbb1dc | goto label_18;
| }
0x000bb164 nop |
| label_6:
0x000bb168 lw v0, 0x14(s1) | v0 = *((s1 + 5));
0x000bb16c lw a0, 0x1c(s0) | a0 = *((s0 + 7));
0x000bb170 sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x000bb174 lw v0, 0x18(s1) | v0 = *((s1 + 6));
0x000bb178 lw s2, -0x7e1c(gp) | s2 = *((gp - 8071));
0x000bb17c sw v0, 0x18(s0) | *((s0 + 6)) = v0;
0x000bb180 lw v0, 0x1c(s1) | v0 = *((s1 + 7));
0x000bb184 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
| if (v0 != 0) {
0x000bb188 bnez v0, 0xbb214 | goto label_19;
| }
0x000bb18c addiu a2, zero, 0xe1 | a2 = 0xe1;
0x000bb190 addiu a1, s2, 0x1420 | a1 = s2 + 0x1420;
0x000bb194 jalr t9 | t9 ();
0x000bb198 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb19c sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
0x000bb1a0 sw zero, 0x20(s0) | *((s0 + 8)) = 0;
0x000bb1a4 b 0xbb278 | goto label_20;
| label_17:
0x000bb1a8 move a0, s0 | a0 = s0;
0x000bb1ac bal 0xbab68 | sym_EC_POINT_new ();
0x000bb1b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb1b4 sw v0, 4(s0) | *((s0 + 1)) = v0;
| if (v0 != 0) {
0x000bb1b8 bnez v0, 0xbb13c | goto label_4;
| }
0x000bb1bc move v0, zero | v0 = 0;
0x000bb1c0 b 0xbb0c4 | goto label_2;
| label_16:
0x000bb1c4 lw t9, -0x6d64(gp) | t9 = *((gp - 7001));
0x000bb1c8 bal 0xbadc4 | sym_EC_POINT_clear_free ();
0x000bb1cc nop |
0x000bb1d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb1d4 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x000bb1d8 b 0xbb154 | goto label_5;
| label_18:
0x000bb1dc lw t9, -0x7844(gp) | t9 = *((gp - 7697));
0x000bb1e0 lw a1, 8(s1) | a1 = *((s1 + 2));
0x000bb1e4 lw a0, 8(s0) | a0 = *((s0 + 2));
0x000bb1e8 jalr t9 | t9 ();
0x000bb1ec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000bb1f0 beqz v0, 0xbb0c0 | goto label_3;
| }
0x000bb1f4 lw t9, -0x7844(gp) | t9 = *((gp - 7697));
0x000bb1f8 lw a1, 0xc(s1) | a1 = *((s1 + 3));
0x000bb1fc lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000bb200 jalr t9 | t9 ();
0x000bb204 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000bb208 bnez v0, 0xbb168 | goto label_6;
| }
0x000bb20c move v0, zero | v0 = 0;
0x000bb210 b 0xbb0c4 | goto label_2;
| label_19:
0x000bb214 addiu a2, zero, 0xd8 | a2 = 0xd8;
0x000bb218 addiu a1, s2, 0x1420 | a1 = s2 + 0x1420;
0x000bb21c jalr t9 | t9 ();
0x000bb220 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb224 lw a0, 0x20(s1) | a0 = *((s1 + 8));
0x000bb228 addiu a2, zero, 0xd9 | a2 = 0xd9;
0x000bb22c lw t9, -0x7f9c(gp) | t9 = *((gp - 8167));
0x000bb230 addiu a1, s2, 0x1420 | a1 = s2 + 0x1420;
0x000bb234 jalr t9 | t9 ();
0x000bb238 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb23c sw v0, 0x1c(s0) | *((s0 + 7)) = v0;
| if (v0 == 0) {
0x000bb240 bnez v0, 0xbb258 |
0x000bb244 addiu v0, zero, 0xda | v0 = 0xda;
0x000bb248 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000bb24c addiu a3, s2, 0x1420 | a3 = s2 + 0x1420;
0x000bb250 addiu a2, zero, 0x41 | a2 = 0x41;
0x000bb254 b 0xbb02c | goto label_7;
| }
0x000bb258 lw t9, -0x550c(gp) | t9 = *((gp - 5443));
0x000bb25c lw a2, 0x20(s1) | a2 = *((s1 + 8));
0x000bb260 lw a1, 0x1c(s1) | a1 = *((s1 + 7));
0x000bb264 move a0, v0 | a0 = v0;
0x000bb268 jalr t9 | t9 ();
0x000bb26c lw v0, 0x20(s1) | v0 = *((s1 + 8));
0x000bb270 lw gp, 0x18(sp) | gp = *(var_18h);
0x000bb274 sw v0, 0x20(s0) | *((s0 + 8)) = v0;
| label_20:
0x000bb278 lw v0, (s0) | v0 = *(s0);
0x000bb27c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x000bb280 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000bb284 lw t9, 0x14(v0) | t9 = *((v0 + 5));
0x000bb288 move a1, s1 | a1 = s1;
0x000bb28c move a0, s0 | a0 = s0;
0x000bb290 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000bb294 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000bb298 addiu sp, sp, 0x30 |
0x000bb29c jr t9 | t9 ();
| label_10:
0x000bb2a0 addiu v0, zero, 1 | v0 = 1;
0x000bb2a4 b 0xbb0c4 | goto label_2;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xcfc04 */
| #include <stdint.h>
|
; (fcn) sym.EVP_DigestFinal_ex () | void EVP_DigestFinal_ex () {
0x000cfc04 lui gp, 0xf |
0x000cfc08 addiu gp, gp, 0x6fbc |
0x000cfc0c addu gp, gp, t9 | gp += t9;
0x000cfc10 lw v1, (a0) | v1 = *(a0);
0x000cfc14 addiu sp, sp, -0x28 |
0x000cfc18 lw v0, 8(v1) | v0 = *((v1 + 2));
0x000cfc1c sw gp, 0x10(sp) | *(var_10h) = gp;
0x000cfc20 slti v0, v0, 0x41 | v0 = (v0 < 0x41) ? 1 : 0;
0x000cfc24 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000cfc28 sw s2, 0x20(sp) | *(var_20h) = s2;
0x000cfc2c sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x000cfc30 sw s0, 0x18(sp) | *(var_18h) = s0;
0x000cfc34 move s0, a0 | s0 = a0;
| if (v0 == 0) {
0x000cfc38 bnez v0, 0xcfc58 |
0x000cfc3c lw a1, -0x7e1c(gp) | a1 = *((gp - 8071));
0x000cfc40 lw a0, -0x7e1c(gp) | a0 = *((gp - 8071));
0x000cfc44 lw t9, -0x7fb4(gp) | t9 = *((gp - 8173));
0x000cfc48 addiu a2, zero, 0xaa | a2 = 0xaa;
0x000cfc4c addiu a1, a1, 0x2108 | a1 += 0x2108;
0x000cfc50 addiu a0, a0, 0x211c | a0 += 0x211c;
0x000cfc54 jalr t9 | t9 ();
| }
0x000cfc58 lw t9, 0x18(v1) | t9 = *((v1 + 6));
0x000cfc5c move s1, a2 | s1 = a2;
0x000cfc60 jalr t9 | t9 ();
0x000cfc64 move s2, v0 | s2 = v0;
0x000cfc68 lw gp, 0x10(sp) | gp = *(var_10h);
0x000cfc6c lw v0, (s0) | v0 = *(s0);
| if (s1 != 0) {
0x000cfc70 beqz s1, 0xcfc7c |
0x000cfc74 lw v1, 8(v0) | v1 = *((v0 + 2));
0x000cfc78 sw v1, (s1) | *(s1) = v1;
| }
0x000cfc7c lw t9, 0x20(v0) | t9 = *((v0 + 8));
| if (t9 != 0) {
0x000cfc80 beqz t9, 0xcfca8 |
0x000cfc84 nop |
0x000cfc88 move a0, s0 | a0 = s0;
0x000cfc8c jalr t9 | t9 ();
0x000cfc90 lw gp, 0x10(sp) | gp = *(var_10h);
0x000cfc94 addiu a1, zero, 2 | a1 = 2;
0x000cfc98 lw t9, -0x7680(gp) | t9 = *((gp - 7584));
0x000cfc9c move a0, s0 | a0 = s0;
0x000cfca0 bal 0xda49c | sym_EVP_MD_CTX_set_flags ();
0x000cfca4 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000cfca8 lw v0, (s0) | v0 = *(s0);
0x000cfcac lw a0, 0xc(s0) | a0 = *((s0 + 3));
0x000cfcb0 lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x000cfcb4 lw a1, 0x28(v0) | a1 = *((v0 + 10));
0x000cfcb8 bal 0xea0e4 | sym_OPENSSL_cleanse ();
0x000cfcbc lw ra, 0x24(sp) | ra = *(var_24h);
0x000cfcc0 move v0, s2 | v0 = s2;
0x000cfcc4 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x000cfcc8 lw s2, 0x20(sp) | s2 = *(var_20h);
0x000cfccc lw s0, 0x18(sp) | s0 = *(var_18h);
0x000cfcd0 addiu sp, sp, 0x28 |
0x000cfcd4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xe7de0 */
| #include <stdint.h>
|
; (fcn) sym.OPENSSL_LH_delete () | void OPENSSL_LH_delete () {
0x000e7de0 lui gp, 0xe |
0x000e7de4 addiu gp, gp, -0x1220 |
0x000e7de8 addu gp, gp, t9 | gp += t9;
0x000e7dec addiu sp, sp, -0x38 |
0x000e7df0 lw t9, -0x6848(gp) | t9 = *((gp - 6674));
0x000e7df4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000e7df8 sw s0, 0x24(sp) | *(var_24h) = s0;
0x000e7dfc sw ra, 0x34(sp) | *(var_34h) = ra;
0x000e7e00 sw s3, 0x30(sp) | *(var_30h) = s3;
0x000e7e04 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x000e7e08 sw s1, 0x28(sp) | *(var_28h) = s1;
0x000e7e0c addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x000e7e10 sw zero, 0x5c(a0) | *((a0 + 23)) = 0;
0x000e7e14 addiu t9, t9, 0x7850 | t9 += aav.0x00007850;
0x000e7e18 move s0, a0 | s0 = a0;
0x000e7e1c bal 0xe7850 | fcn_000e7850 ();
0x000e7e20 lw a0, (v0) | a0 = *(v0);
0x000e7e24 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != 0) {
0x000e7e28 bnez a0, 0xe7e5c | goto label_2;
| }
0x000e7e2c lw v0, 0x4c(s0) | v0 = *((s0 + 19));
0x000e7e30 move s1, zero | s1 = 0;
0x000e7e34 addiu v0, v0, 1 | v0++;
0x000e7e38 sw v0, 0x4c(s0) | *((s0 + 19)) = v0;
| do {
| label_1:
0x000e7e3c lw ra, 0x34(sp) | ra = *(var_34h);
| label_0:
0x000e7e40 move v0, s1 | v0 = s1;
0x000e7e44 lw s3, 0x30(sp) | s3 = *(var_30h);
0x000e7e48 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x000e7e4c lw s1, 0x28(sp) | s1 = *(var_28h);
0x000e7e50 lw s0, 0x24(sp) | s0 = *(var_24h);
0x000e7e54 addiu sp, sp, 0x38 |
0x000e7e58 jr ra | return v1;
| label_2:
0x000e7e5c lw v1, 4(a0) | v1 = *((a0 + 1));
0x000e7e60 lw s2, -0x7e1c(gp) | s2 = *((gp - 8071));
0x000e7e64 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
0x000e7e68 sw v1, (v0) | *(v0) = v1;
0x000e7e6c addiu a2, zero, 0x90 | a2 = 0x90;
0x000e7e70 addiu a1, s2, 0x3c44 | a1 = s2 + 0x3c44;
0x000e7e74 lw s1, (a0) | s1 = *(a0);
0x000e7e78 bal 0xe9cf4 | sym_CRYPTO_free ();
0x000e7e7c lw v0, 0x48(s0) | v0 = *((s0 + 18));
0x000e7e80 lw v1, 0xc(s0) | v1 = *((s0 + 3));
0x000e7e84 addiu v0, v0, 1 | v0++;
0x000e7e88 sw v0, 0x48(s0) | *((s0 + 18)) = v0;
0x000e7e8c lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x000e7e90 sltiu a0, v1, 0x11 | a0 = (v1 < 0x11) ? 1 : 0;
0x000e7e94 addiu v0, v0, -1 | v0 += -1;
0x000e7e98 lw gp, 0x10(sp) | gp = *(var_10h);
0x000e7e9c sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x000e7ea0 bnez a0, 0xe7e3c |
| } while (a0 != 0);
0x000e7ea4 sll v0, v0, 8 | v0 <<= 8;
0x000e7ea8 divu zero, v0, v1 | __asm ("divu zero, v0, v1");
0x000e7eac teq v1, zero, 7 | __asm ("teq v1, zero, 7");
0x000e7eb0 lw v1, 0x20(s0) | v1 = *((s0 + 8));
0x000e7eb4 mflo v0 | __asm ("mflo v0");
0x000e7eb8 sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x000e7ebc lw ra, 0x34(sp) | ra = *(var_34h);
| if (v0 != 0) {
0x000e7ec0 bnez v0, 0xe7e40 | goto label_0;
| }
0x000e7ec4 lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x000e7ec8 lw a1, 0x18(s0) | a1 = *((s0 + 6));
0x000e7ecc lw a0, (s0) | a0 = *(s0);
0x000e7ed0 addu v0, v1, a1 | v0 = v1 + a1;
0x000e7ed4 sll v0, v0, 2 | v0 <<= 2;
0x000e7ed8 addiu v0, v0, -4 | v0 += -4;
0x000e7edc addu v0, a0, v0 | v0 = a0 + v0;
0x000e7ee0 lw s3, (v0) | s3 = *(v0);
0x000e7ee4 sw zero, (v0) | *(v0) = 0;
| if (v1 != 0) {
0x000e7ee8 bnez v1, 0xe7f84 | goto label_3;
| }
0x000e7eec lw t9, -0x7cf4(gp) | t9 = *(gp);
0x000e7ef0 addiu a3, zero, 0x10c | a3 = aav.0x0000010c;
0x000e7ef4 addiu a2, s2, 0x3c44 | a2 = s2 + 0x3c44;
0x000e7ef8 sll a1, a1, 2 | a1 <<= 2;
0x000e7efc bal 0xe9d88 | sym_CRYPTO_realloc ();
| if (v0 == 0) {
0x000e7f00 bnez v0, 0xe7f18 |
0x000e7f04 nop |
0x000e7f08 lw v0, 0x5c(s0) | v0 = *((s0 + 23));
0x000e7f0c addiu v0, v0, 1 | v0++;
0x000e7f10 sw v0, 0x5c(s0) | *((s0 + 23)) = v0;
0x000e7f14 b 0xe7e3c | goto label_1;
| }
0x000e7f18 lw v1, 0x34(s0) | v1 = *((s0 + 13));
0x000e7f1c sw v0, (s0) | *(s0) = v0;
0x000e7f20 addiu v1, v1, 1 | v1++;
0x000e7f24 sw v1, 0x34(s0) | *((s0 + 13)) = v1;
0x000e7f28 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x000e7f2c srl v1, v1, 1 | v1 >>= 1;
0x000e7f30 sw v1, 0x10(s0) | *((s0 + 4)) = v1;
0x000e7f34 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x000e7f38 srl v1, v1, 1 | v1 >>= 1;
0x000e7f3c sw v1, 0x18(s0) | *((s0 + 6)) = v1;
0x000e7f40 addiu v1, v1, -1 | v1 += -1;
0x000e7f44 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
| do {
0x000e7f48 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x000e7f4c lw v1, 0x14(s0) | v1 = *((s0 + 5));
0x000e7f50 addiu v0, v0, -1 | v0 += -1;
0x000e7f54 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
0x000e7f58 lw v0, 0x30(s0) | v0 = *((s0 + 12));
0x000e7f5c addiu v0, v0, 1 | v0++;
0x000e7f60 sw v0, 0x30(s0) | *((s0 + 12)) = v0;
0x000e7f64 sll v0, v1, 2 | v0 = v1 << 2;
0x000e7f68 lw v1, (s0) | v1 = *(s0);
0x000e7f6c addu v1, v1, v0 | v1 += v0;
0x000e7f70 lw v0, (v1) | v0 = *(v1);
| if (v0 != 0) {
0x000e7f74 bnez v0, 0xe7f94 | goto label_4;
| }
0x000e7f78 nop |
0x000e7f7c sw s3, (v1) | *(v1) = s3;
0x000e7f80 b 0xe7e3c | goto label_1;
| label_3:
0x000e7f84 addiu v1, v1, -1 | v1 += -1;
0x000e7f88 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
0x000e7f8c b 0xe7f48 |
| } while (1);
| do {
0x000e7f90 move v0, v1 | v0 = v1;
| label_4:
0x000e7f94 lw v1, 4(v0) | v1 = *((v0 + 1));
0x000e7f98 bnez v1, 0xe7f90 |
| } while (v1 != 0);
0x000e7f9c nop |
0x000e7fa0 sw s3, 4(v0) | *((v0 + 1)) = s3;
0x000e7fa4 b 0xe7e3c | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0xe7fa8 */
| #include <stdint.h>
|
; (fcn) sym.OPENSSL_LH_retrieve () | void OPENSSL_LH_retrieve () {
0x000e7fa8 lui gp, 0xe |
0x000e7fac addiu gp, gp, -0x13e8 |
0x000e7fb0 addu gp, gp, t9 | gp += t9;
0x000e7fb4 addiu sp, sp, -0x28 |
0x000e7fb8 lw t9, -0x6848(gp) | t9 = *((gp - 6674));
0x000e7fbc sw gp, 0x10(sp) | *(var_10h) = gp;
0x000e7fc0 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000e7fc4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x000e7fc8 addiu a2, sp, 0x18 | a2 = sp + 0x18;
0x000e7fcc sw zero, 0x5c(a0) | *((a0 + 23)) = 0;
0x000e7fd0 addiu t9, t9, 0x7850 | t9 += aav.0x00007850;
0x000e7fd4 move s0, a0 | s0 = a0;
0x000e7fd8 bal 0xe7850 | fcn_000e7850 ();
0x000e7fdc lw v0, (v0) | v0 = *(v0);
| if (v0 != 0) {
0x000e7fe0 bnez v0, 0xe8014 | goto label_1;
| }
0x000e7fe4 nop |
0x000e7fe8 sync | __asm ("sync");
| do {
0x000e7fec ll at, 0x54(s0) | __asm ("ll at, 0x54(s0)");
0x000e7ff0 addiu at, at, 1 | at++;
0x000e7ff4 sc at, 0x54(s0) | __asm ("sc at, 0x54(s0)");
0x000e7ff8 beqz at, 0xe7fec |
| } while (at == 0);
0x000e7ffc nop |
0x000e8000 sync | __asm ("sync");
0x000e8004 lw ra, 0x24(sp) | ra = *(var_24h);
| label_0:
0x000e8008 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000e800c addiu sp, sp, 0x28 |
0x000e8010 jr ra | return v0;
| label_1:
0x000e8014 lw v0, (v0) | v0 = *(v0);
0x000e8018 sync | __asm ("sync");
| do {
0x000e801c ll at, 0x50(s0) | __asm ("ll at, 0x50(s0)");
0x000e8020 addiu at, at, 1 | at++;
0x000e8024 sc at, 0x50(s0) | __asm ("sc at, 0x50(s0)");
0x000e8028 beqz at, 0xe801c |
| } while (at == 0);
0x000e802c nop |
0x000e8030 sync | __asm ("sync");
0x000e8034 lw ra, 0x24(sp) | ra = *(var_24h);
0x000e8038 b 0xe8008 | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x101f44 */
| #include <stdint.h>
|
; (fcn) sym.PKCS12_PBE_keyivgen () | void PKCS12_PBE_keyivgen () {
0x00101f44 lui gp, 0xc |
0x00101f48 addiu gp, gp, 0x4c7c |
0x00101f4c addu gp, gp, t9 | gp += t9;
0x00101f50 addiu sp, sp, -0xb0 |
0x00101f54 sw s2, 0x90(sp) | *(var_90h) = s2;
0x00101f58 lw s2, 0xc0(sp) | s2 = *(arg_c0h);
0x00101f5c sw gp, 0x28(sp) | *(var_28h) = gp;
0x00101f60 sw ra, 0xac(sp) | *(var_ach) = ra;
0x00101f64 sw fp, 0xa8(sp) | *(var_a8h) = fp;
0x00101f68 sw s7, 0xa4(sp) | *(var_a4h) = s7;
0x00101f6c sw s6, 0xa0(sp) | *(var_a0h) = s6;
0x00101f70 sw s5, 0x9c(sp) | *(var_9ch) = s5;
0x00101f74 sw s4, 0x98(sp) | *(var_98h) = s4;
0x00101f78 sw s3, 0x94(sp) | *(var_94h) = s3;
0x00101f7c sw s1, 0x8c(sp) | *(var_8ch) = s1;
0x00101f80 sw s0, 0x88(sp) | *(var_88h) = s0;
0x00101f84 lw t9, -0x7bf4(gp) | t9 = *((gp - 7933));
| if (s2 != 0) {
0x00101f88 beqz s2, 0x101fd4 |
0x00101f8c sw a0, 0x84(sp) | *(var_84h) = a0;
0x00101f90 lw a0, -0x7bc0(gp) | a0 = *((gp - 7920));
0x00101f94 move s3, a1 | s3 = a1;
0x00101f98 move a1, a3 | a1 = a3;
0x00101f9c move s4, a2 | s4 = a2;
0x00101fa0 jalr t9 | t9 ();
0x00101fa4 move s1, v0 | s1 = v0;
0x00101fa8 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00101fac bnez v0, 0x101fdc | goto label_2;
| }
0x00101fb0 lw a3, -0x7e98(gp) | a3 = *((gp - 8102));
0x00101fb4 addiu v0, zero, 0x2b | v0 = 0x2b;
0x00101fb8 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00101fbc sw v0, 0x10(sp) | *(var_10h) = v0;
0x00101fc0 addiu a3, a3, 0x20c4 | a3 += 0x20c4;
0x00101fc4 addiu a2, zero, 0x65 | a2 = 0x65;
0x00101fc8 addiu a1, zero, 0x78 | a1 = 0x78;
0x00101fcc addiu a0, zero, 0x23 | a0 = 0x23;
0x00101fd0 jalr t9 | t9 ();
| }
0x00101fd4 move s0, zero | s0 = 0;
0x00101fd8 b 0x10208c | goto label_1;
| label_2:
0x00101fdc lw a0, 4(v0) | a0 = *((v0 + 1));
0x00101fe0 lw t9, -0x7a50(gp) | t9 = *((gp - 7828));
| if (a0 == 0) {
0x00101fe4 beqz a0, 0x1020c0 | goto label_3;
| }
0x00101fe8 jalr t9 | t9 ();
0x00101fec nop |
0x00101ff0 lw gp, 0x28(sp) | gp = *(var_28h);
0x00101ff4 move s6, v0 | s6 = v0;
| do {
0x00101ff8 lw v0, (s1) | v0 = *(s1);
0x00101ffc lw t9, -0x7b70(gp) | t9 = *((gp - 7900));
0x00102000 move a0, s2 | a0 = s2;
0x00102004 lw s7, 8(v0) | s7 = *((v0 + 2));
0x00102008 lw fp, (v0) | fp = *(v0);
0x0010200c jalr t9 | t9 ();
0x00102010 lw gp, 0x28(sp) | gp = *(var_28h);
0x00102014 lw v1, 0xc4(sp) | v1 = *(arg_c4h);
0x00102018 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0010201c lw t9, -0x62f8(gp) | t9 = *((gp - 6334));
0x00102020 addiu v0, zero, 1 | v0 = 1;
0x00102024 addiu s5, sp, 0x30 | s5 = sp + 0x30;
0x00102028 sw v1, 0x20(sp) | *(var_20h) = v1;
0x0010202c sw s5, 0x1c(sp) | *(var_1ch) = s5;
0x00102030 sw s6, 0x14(sp) | *(var_14h) = s6;
0x00102034 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00102038 move a3, fp | a3 = fp;
0x0010203c move a2, s7 | a2 = s7;
0x00102040 move a1, s4 | a1 = s4;
0x00102044 move a0, s3 | a0 = s3;
0x00102048 bal 0x103690 | sym_PKCS12_key_gen_utf8 ();
0x0010204c move s0, v0 | s0 = v0;
0x00102050 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 != 0) {
0x00102054 bnez v0, 0x1020c8 | goto label_4;
| }
0x00102058 lw a3, -0x7e98(gp) | a3 = *((gp - 8102));
0x0010205c addiu v0, zero, 0x37 | v0 = 0x37;
0x00102060 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00102064 addiu a3, a3, 0x20c4 | a3 += 0x20c4;
0x00102068 addiu a2, zero, 0x6b | a2 = 0x6b;
| label_0:
0x0010206c lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00102070 addiu a0, zero, 0x23 | a0 = 0x23;
0x00102074 addiu a1, zero, 0x78 | a1 = 0x78;
0x00102078 jalr t9 | t9 ();
0x0010207c lw gp, 0x28(sp) | gp = *(var_28h);
0x00102080 lw t9, -0x7bb8(gp) | t9 = *((gp - 7918));
0x00102084 move a0, s1 | a0 = s1;
0x00102088 jalr t9 | t9 ();
| label_1:
0x0010208c lw ra, 0xac(sp) | ra = *(var_ach);
0x00102090 move v0, s0 | v0 = s0;
0x00102094 lw fp, 0xa8(sp) | fp = *(var_a8h);
0x00102098 lw s7, 0xa4(sp) | s7 = *(var_a4h);
0x0010209c lw s6, 0xa0(sp) | s6 = *(var_a0h);
0x001020a0 lw s5, 0x9c(sp) | s5 = *(var_9ch);
0x001020a4 lw s4, 0x98(sp) | s4 = *(var_98h);
0x001020a8 lw s3, 0x94(sp) | s3 = *(var_94h);
0x001020ac lw s2, 0x90(sp) | s2 = *(var_90h);
0x001020b0 lw s1, 0x8c(sp) | s1 = *(var_8ch);
0x001020b4 lw s0, 0x88(sp) | s0 = *(var_88h);
0x001020b8 addiu sp, sp, 0xb0 |
0x001020bc jr ra | return v0;
| label_3:
0x001020c0 addiu s6, zero, 1 | s6 = 1;
0x001020c4 b 0x101ff8 |
| } while (1);
| label_4:
0x001020c8 lw t9, -0x7b88(gp) | t9 = *((gp - 7906));
0x001020cc move a0, s2 | a0 = s2;
0x001020d0 jalr t9 | t9 ();
0x001020d4 lw gp, 0x28(sp) | gp = *(var_28h);
0x001020d8 lw v1, 0xc4(sp) | v1 = *(arg_c4h);
0x001020dc sw v0, 0x18(sp) | *(var_18h) = v0;
0x001020e0 lw t9, -0x62f8(gp) | t9 = *((gp - 6334));
0x001020e4 sw v1, 0x20(sp) | *(var_20h) = v1;
0x001020e8 addiu v0, zero, 2 | v0 = 2;
0x001020ec addiu v1, sp, 0x70 | v1 = sp + 0x70;
0x001020f0 sw v1, 0x80(sp) | *(var_80h) = v1;
0x001020f4 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x001020f8 sw s6, 0x14(sp) | *(var_14h) = s6;
0x001020fc sw v0, 0x10(sp) | *(var_10h) = v0;
0x00102100 move a3, fp | a3 = fp;
0x00102104 move a2, s7 | a2 = s7;
0x00102108 move a1, s4 | a1 = s4;
0x0010210c move a0, s3 | a0 = s3;
0x00102110 bal 0x103690 | sym_PKCS12_key_gen_utf8 ();
0x00102114 move s0, v0 | s0 = v0;
0x00102118 lw gp, 0x28(sp) | gp = *(var_28h);
| if (v0 == 0) {
0x0010211c bnez v0, 0x102138 |
0x00102120 lw a3, -0x7e98(gp) | a3 = *((gp - 8102));
0x00102124 addiu v0, zero, 0x3d | v0 = 0x3d;
0x00102128 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0010212c addiu a3, a3, 0x20c4 | a3 += 0x20c4;
0x00102130 addiu a2, zero, 0x6a | a2 = 0x6a;
0x00102134 b 0x10206c | goto label_0;
| }
0x00102138 lw t9, -0x7bb8(gp) | t9 = *((gp - 7918));
0x0010213c move a0, s1 | a0 = s1;
0x00102140 jalr t9 | t9 ();
0x00102144 lw gp, 0x28(sp) | gp = *(var_28h);
0x00102148 lw v0, 0xc8(sp) | v0 = *(arg_c8h);
0x0010214c lw a0, 0x84(sp) | a0 = *(var_84h);
0x00102150 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00102154 lw v0, 0x80(sp) | v0 = *(var_80h);
0x00102158 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x0010215c move a3, s5 | a3 = s5;
0x00102160 move a2, zero | a2 = 0;
0x00102164 move a1, s2 | a1 = s2;
0x00102168 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0010216c jalr t9 | t9 ();
0x00102170 lw gp, 0x28(sp) | gp = *(var_28h);
0x00102174 move a0, s5 | a0 = s5;
0x00102178 addiu a1, zero, 0x40 | a1 = 0x40;
0x0010217c lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x00102180 move s0, v0 | s0 = v0;
0x00102184 bal 0xea0e4 | sym_OPENSSL_cleanse ();
0x00102188 lw gp, 0x28(sp) | gp = *(var_28h);
0x0010218c lw a0, 0x80(sp) | a0 = *(var_80h);
0x00102190 lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
0x00102194 addiu a1, zero, 0x10 | a1 = 0x10;
0x00102198 bal 0xea0e4 | sym_OPENSSL_cleanse ();
0x0010219c b 0x10208c | goto label_1;
0x001021a0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x535ec */
| #include <stdint.h>
|
; (fcn) sym.PKCS5_v2_scrypt_keyivgen () | void PKCS5_v2_scrypt_keyivgen () {
0x000535ec lui gp, 0x17 |
0x000535f0 addiu gp, gp, 0x35d4 |
0x000535f4 addu gp, gp, t9 | gp += t9;
0x000535f8 addiu sp, sp, -0xb8 |
0x000535fc lw t9, -0x7b4c(gp) | t9 = *((gp - 7891));
0x00053600 sw gp, 0x38(sp) | *(var_38h) = gp;
0x00053604 sw s5, 0xb0(sp) | *(var_b0h) = s5;
0x00053608 sw s3, 0xa8(sp) | *(var_a8h) = s3;
0x0005360c sw s1, 0xa0(sp) | *(var_a0h) = s1;
0x00053610 sw s0, 0x9c(sp) | *(var_9ch) = s0;
0x00053614 sw ra, 0xb4(sp) | *(var_b4h) = ra;
0x00053618 sw s4, 0xac(sp) | *(var_ach) = s4;
0x0005361c sw s2, 0xa4(sp) | *(var_a4h) = s2;
0x00053620 move s3, a0 | s3 = a0;
0x00053624 move s1, a1 | s1 = a1;
0x00053628 move s5, a2 | s5 = a2;
0x0005362c move s0, a3 | s0 = a3;
0x00053630 jalr t9 | t9 ();
0x00053634 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00053638 bnez v0, 0x536a0 | goto label_4;
| }
0x0005363c lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00053640 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00053644 addiu v0, zero, 0xe0 | v0 = 0xe0;
0x00053648 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005364c addiu a3, a3, 0x2d44 | a3 += 0x2d44;
0x00053650 addiu a2, zero, 0x83 | a2 = 0x83;
0x00053654 addiu a1, zero, 0xb4 | a1 = 0xb4;
0x00053658 addiu a0, zero, 6 | a0 = 6;
0x0005365c jalr t9 | t9 ();
0x00053660 lw gp, 0x38(sp) | gp = *(var_38h);
0x00053664 move s0, zero | s0 = 0;
| do {
0x00053668 move s1, zero | s1 = 0;
| label_0:
0x0005366c lw t9, -0x7b50(gp) | t9 = *((gp - 7892));
0x00053670 move a0, s0 | a0 = s0;
0x00053674 bal 0x53070 | sym_SCRYPT_PARAMS_free ();
0x00053678 lw ra, 0xb4(sp) | ra = *(var_b4h);
0x0005367c move v0, s1 | v0 = s1;
0x00053680 lw s5, 0xb0(sp) | s5 = *(var_b0h);
0x00053684 lw s4, 0xac(sp) | s4 = *(var_ach);
0x00053688 lw s3, 0xa8(sp) | s3 = *(var_a8h);
0x0005368c lw s2, 0xa4(sp) | s2 = *(var_a4h);
0x00053690 lw s1, 0xa0(sp) | s1 = *(var_a0h);
0x00053694 lw s0, 0x9c(sp) | s0 = *(var_9ch);
0x00053698 addiu sp, sp, 0xb8 |
0x0005369c jr ra | return v0;
| label_4:
0x000536a0 lw t9, -0x7bf4(gp) | t9 = *((gp - 7933));
0x000536a4 lw a0, -0x7b60(gp) | a0 = *((gp - 7896));
0x000536a8 move a1, s0 | a1 = s0;
0x000536ac bal 0x4964c | sym_ASN1_TYPE_unpack_sequence ();
0x000536b0 move s0, v0 | s0 = v0;
0x000536b4 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x000536b8 bnez v0, 0x536e8 | goto label_5;
| }
0x000536bc lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x000536c0 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x000536c4 addiu v0, zero, 0xe9 | v0 = 0xe9;
0x000536c8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000536cc addiu a3, a3, 0x2d44 | a3 += 0x2d44;
0x000536d0 addiu a2, zero, 0x72 | a2 = 0x72;
0x000536d4 addiu a1, zero, 0xb4 | a1 = 0xb4;
0x000536d8 addiu a0, zero, 6 | a0 = 6;
0x000536dc jalr t9 | t9 ();
0x000536e0 lw gp, 0x38(sp) | gp = *(var_38h);
0x000536e4 b 0x53668 |
| } while (1);
| label_5:
0x000536e8 lw t9, -0x7b48(gp) | t9 = *((gp - 7890));
0x000536ec move a0, s3 | a0 = s3;
0x000536f0 jalr t9 | t9 ();
0x000536f4 lw a1, 0x10(s0) | a1 = *((s0 + 4));
0x000536f8 lw gp, 0x38(sp) | gp = *(var_38h);
0x000536fc move s2, v0 | s2 = v0;
| if (a1 == 0) {
0x00053700 beqz a1, 0x53778 | goto label_6;
| }
0x00053704 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
0x00053708 addiu a0, sp, 0x40 | a0 = sp + 0x40;
0x0005370c bal 0x4464c | sym_ASN1_INTEGER_get_uint64 ();
0x00053710 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00053714 beqz v0, 0x53730 |
0x00053718 lw v0, 0x40(sp) | v0 = *(var_40h);
0x0005371c lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
| if (v0 != s2) {
0x00053720 bne v0, s2, 0x53734 | goto label_7;
| }
0x00053724 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00053728 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
| if (v0 == 0) {
0x0005372c beqz v0, 0x5377c | goto label_8;
| }
| }
0x00053730 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
| label_7:
0x00053734 addiu v0, zero, 0xf6 | v0 = 0xf6;
0x00053738 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005373c addiu a3, a3, 0x2d44 | a3 += 0x2d44;
0x00053740 addiu a2, zero, 0x7b | a2 = 0x7b;
| label_1:
0x00053744 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x00053748 addiu a1, zero, 0xb4 | a1 = 0xb4;
0x0005374c addiu a0, zero, 6 | a0 = 6;
0x00053750 jalr t9 | t9 ();
0x00053754 lw gp, 0x38(sp) | gp = *(var_38h);
0x00053758 move s1, zero | s1 = 0;
| label_3:
0x0005375c lw t9, -0x7cec(gp) | t9 = *((gp - 7995));
| if (s2 == 0) {
0x00053760 beqz s2, 0x5366c | goto label_0;
| }
0x00053764 move a1, s2 | a1 = s2;
0x00053768 addiu a0, sp, 0x40 | a0 = sp + 0x40;
0x0005376c jalr t9 | t9 ();
0x00053770 lw gp, 0x38(sp) | gp = *(var_38h);
0x00053774 b 0x5366c | goto label_0;
| label_6:
0x00053778 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
| label_8:
0x0005377c lw a1, 4(s0) | a1 = *((s0 + 1));
0x00053780 addiu a0, sp, 0x80 | a0 = sp + 0x80;
0x00053784 bal 0x4464c | sym_ASN1_INTEGER_get_uint64 ();
0x00053788 lw gp, 0x38(sp) | gp = *(var_38h);
0x0005378c bnez v0, 0x537a8 |
| while (v0 == 0) {
| label_2:
0x00053790 lw a3, -0x7fd4(gp) | a3 = *((gp - 8181));
0x00053794 addiu v0, zero, 0x100 | v0 = aav.0x00000100;
0x00053798 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005379c addiu a3, a3, 0x2d44 | a3 += 0x2d44;
0x000537a0 addiu a2, zero, 0xab | a2 = 0xab;
0x000537a4 b 0x53744 | goto label_1;
0x000537a8 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
0x000537ac lw a1, 8(s0) | a1 = *((s0 + 2));
0x000537b0 addiu a0, sp, 0x88 | a0 = sp + 0x88;
0x000537b4 bal 0x4464c | sym_ASN1_INTEGER_get_uint64 ();
0x000537b8 lw gp, 0x38(sp) | gp = *(var_38h);
0x000537bc beqz v0, 0x53790 |
| }
0x000537c0 lw t9, -0x7b44(gp) | t9 = *((gp - 7889));
0x000537c4 lw a1, 0xc(s0) | a1 = *((s0 + 3));
0x000537c8 addiu a0, sp, 0x90 | a0 = sp + 0x90;
0x000537cc bal 0x4464c | sym_ASN1_INTEGER_get_uint64 ();
0x000537d0 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x000537d4 beqz v0, 0x53790 | goto label_2;
| }
0x000537d8 move v0, zero | v0 = 0;
0x000537dc move v1, zero | v1 = 0;
0x000537e0 sw v0, 0x28(sp) | *(var_28h) = v0;
0x000537e4 sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x000537e8 lw v0, 0x90(sp) | v0 = *(var_90h);
0x000537ec lw v1, 0x94(sp) | v1 = *(var_94h);
0x000537f0 sw v0, 0x20(sp) | *(var_20h) = v0;
0x000537f4 sw v1, 0x24(sp) | *(var_24h) = v1;
0x000537f8 lw v0, 0x88(sp) | v0 = *(var_88h);
0x000537fc lw v1, 0x8c(sp) | v1 = *(var_8ch);
0x00053800 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00053804 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00053808 lw v0, 0x80(sp) | v0 = *(var_80h);
0x0005380c lw v1, 0x84(sp) | v1 = *(var_84h);
0x00053810 lw t9, -0x7b5c(gp) | t9 = *((gp - 7895));
0x00053814 sw zero, 0x34(sp) | *(var_34h) = 0;
0x00053818 sw zero, 0x30(sp) | *(var_30h) = 0;
0x0005381c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00053820 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00053824 move a3, zero | a3 = 0;
0x00053828 move a2, zero | a2 = 0;
0x0005382c move a1, zero | a1 = 0;
0x00053830 move a0, zero | a0 = 0;
0x00053834 jalr t9 | t9 ();
0x00053838 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0005383c beqz v0, 0x53790 | goto label_2;
| }
0x00053840 lw v0, (s0) | v0 = *(s0);
0x00053844 move v1, zero | v1 = 0;
0x00053848 lw t9, -0x7b5c(gp) | t9 = *((gp - 7895));
0x0005384c lw a3, (v0) | a3 = *(v0);
0x00053850 lw a2, 8(v0) | a2 = *((v0 + 2));
0x00053854 move v0, zero | v0 = 0;
0x00053858 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0005385c sw v1, 0x2c(sp) | *(var_2ch) = v1;
0x00053860 lw v0, 0x90(sp) | v0 = *(var_90h);
0x00053864 lw v1, 0x94(sp) | v1 = *(var_94h);
0x00053868 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0005386c sw v1, 0x24(sp) | *(var_24h) = v1;
0x00053870 lw v0, 0x88(sp) | v0 = *(var_88h);
0x00053874 lw v1, 0x8c(sp) | v1 = *(var_8ch);
0x00053878 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0005387c sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00053880 lw v0, 0x80(sp) | v0 = *(var_80h);
0x00053884 lw v1, 0x84(sp) | v1 = *(var_84h);
0x00053888 addiu s4, sp, 0x40 | s4 = sp + 0x40;
0x0005388c move a0, s1 | a0 = s1;
0x00053890 sw s2, 0x34(sp) | *(var_34h) = s2;
0x00053894 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00053898 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005389c sw v1, 0x14(sp) | *(var_14h) = v1;
0x000538a0 move a1, s5 | a1 = s5;
0x000538a4 jalr t9 | t9 ();
0x000538a8 move s1, v0 | s1 = v0;
0x000538ac lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x000538b0 beqz v0, 0x5375c | goto label_3;
| }
0x000538b4 lw v0, 0xd0(sp) | v0 = *(arg_d0h);
0x000538b8 lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x000538bc sw v0, 0x14(sp) | *(var_14h) = v0;
0x000538c0 sw zero, 0x10(sp) | *(var_10h) = 0;
0x000538c4 move a3, s4 | a3 = s4;
0x000538c8 move a2, zero | a2 = 0;
0x000538cc move a1, zero | a1 = 0;
0x000538d0 move a0, s3 | a0 = s3;
0x000538d4 jalr t9 | t9 ();
0x000538d8 move s1, v0 | s1 = v0;
0x000538dc lw gp, 0x38(sp) | gp = *(var_38h);
0x000538e0 b 0x5375c | goto label_3;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x14c2e0 */
| #include <stdint.h>
|
; (fcn) sym.X509_PUBKEY_set () | void X509_PUBKEY_set () {
0x0014c2e0 lui gp, 8 |
0x0014c2e4 addiu gp, gp, -0x5720 |
0x0014c2e8 addu gp, gp, t9 | gp += t9;
0x0014c2ec lw t9, -0x5928(gp) | t9 = *((gp - 5706));
| if (a0 == 0) {
0x0014c2f0 beqz a0, 0x14c3f0 | goto label_1;
| }
0x0014c2f4 addiu sp, sp, -0x30 |
0x0014c2f8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0014c2fc sw s2, 0x28(sp) | *(var_28h) = s2;
0x0014c300 sw s1, 0x24(sp) | *(var_24h) = s1;
0x0014c304 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0014c308 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0014c30c move s0, a1 | s0 = a1;
0x0014c310 move s2, a0 | s2 = a0;
0x0014c314 bal 0x14c2b0 | sym_X509_PUBKEY_new ();
0x0014c318 move s1, v0 | s1 = v0;
0x0014c31c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0014c320 beqz v0, 0x14c374 | goto label_2;
| }
0x0014c324 lw v0, 0xc(s0) | v0 = *((s0 + 3));
0x0014c328 lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
| if (v0 == 0) {
0x0014c32c beqz v0, 0x14c39c | goto label_3;
| }
0x0014c330 lw t9, 0x18(v0) | t9 = *((v0 + 6));
0x0014c334 move a1, s0 | a1 = s0;
| if (t9 == 0) {
0x0014c338 beqz t9, 0x14c388 | goto label_4;
| }
0x0014c33c move a0, s1 | a0 = s1;
0x0014c340 jalr t9 | t9 ();
0x0014c344 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0014c348 bnez v0, 0x14c3b0 | goto label_5;
| }
0x0014c34c lw a3, -0x7e24(gp) | a3 = *((gp - 8073));
0x0014c350 addiu v0, zero, 0x4a | v0 = 0x4a;
0x0014c354 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0014c358 addiu a3, a3, -0x7cfc | a3 += -0x7cfc;
0x0014c35c addiu a2, zero, 0x7e | a2 = 0x7e;
| do {
| label_0:
0x0014c360 lw t9, -0x7f94(gp) | t9 = *((gp - 8165));
0x0014c364 addiu a1, zero, 0x78 | a1 = 0x78;
0x0014c368 addiu a0, zero, 0xb | a0 = 0xb;
0x0014c36c jalr t9 | t9 ();
0x0014c370 lw gp, 0x18(sp) | gp = *(var_18h);
| label_2:
0x0014c374 lw t9, -0x718c(gp) | t9 = *((gp - 7267));
0x0014c378 move a0, s1 | a0 = s1;
0x0014c37c bal 0x14c2c8 | sym_X509_PUBKEY_free ();
0x0014c380 move v0, zero | v0 = 0;
0x0014c384 b 0x14c3d8 | goto label_6;
| label_4:
0x0014c388 addiu v0, zero, 0x4e | v0 = 0x4e;
0x0014c38c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0014c390 addiu a3, a3, -0x7cfc | a3 += -0x7cfc;
0x0014c394 addiu a2, zero, 0x7c | a2 = 0x7c;
0x0014c398 b 0x14c360 |
| } while (1);
| label_3:
0x0014c39c addiu v0, zero, 0x52 | v0 = 0x52;
0x0014c3a0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0014c3a4 addiu a3, a3, -0x7cfc | a3 += -0x7cfc;
0x0014c3a8 addiu a2, zero, 0x6f | a2 = 0x6f;
0x0014c3ac b 0x14c360 | goto label_0;
| label_5:
0x0014c3b0 lw t9, -0x718c(gp) | t9 = *((gp - 7267));
0x0014c3b4 lw a0, (s2) | a0 = *(s2);
0x0014c3b8 bal 0x14c2c8 | sym_X509_PUBKEY_free ();
0x0014c3bc lw gp, 0x18(sp) | gp = *(var_18h);
0x0014c3c0 sw s1, (s2) | *(s2) = s1;
0x0014c3c4 move a0, s0 | a0 = s0;
0x0014c3c8 lw t9, -0x7564(gp) | t9 = *((gp - 7513));
0x0014c3cc sw s0, 8(s1) | *((s1 + 2)) = s0;
0x0014c3d0 jalr t9 | t9 ();
0x0014c3d4 addiu v0, zero, 1 | v0 = 1;
| label_6:
0x0014c3d8 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0014c3dc lw s2, 0x28(sp) | s2 = *(var_28h);
0x0014c3e0 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0014c3e4 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0014c3e8 addiu sp, sp, 0x30 |
0x0014c3ec jr ra | return v0;
| label_1:
0x0014c3f0 move v0, zero | v0 = 0;
0x0014c3f4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libcrypto.so.1.1 @ 0x14caf4 */
| #include <stdint.h>
|
; (fcn) sym.X509_PUBKEY_set0_param () | void X509_PUBKEY_set0_param () {
0x0014caf4 lui gp, 8 |
0x0014caf8 addiu gp, gp, -0x5f34 |
0x0014cafc addu gp, gp, t9 | gp += t9;
0x0014cb00 addiu sp, sp, -0x28 |
0x0014cb04 lw t9, -0x7e34(gp) | t9 = *((gp - 8077));
0x0014cb08 sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x0014cb0c move s0, a0 | s0 = a0;
0x0014cb10 lw a0, (a0) | a0 = *(a0);
0x0014cb14 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0014cb18 sw s1, 0x20(sp) | *(var_20h) = s1;
0x0014cb1c sw ra, 0x24(sp) | *(var_24h) = ra;
0x0014cb20 lw s1, 0x38(sp) | s1 = *(arg_38h);
0x0014cb24 jalr t9 | t9 ();
0x0014cb28 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x0014cb2c beqz v0, 0x14cb78 |
0x0014cb30 lw t9, -0x7f98(gp) | t9 = *((gp - 8166));
| if (s1 != 0) {
0x0014cb34 beqz s1, 0x14cb74 |
0x0014cb38 lw v0, 4(s0) | v0 = *((s0 + 1));
0x0014cb3c lw a1, -0x7e24(gp) | a1 = *((gp - 8073));
0x0014cb40 lw a0, 8(v0) | a0 = *((v0 + 2));
0x0014cb44 addiu a2, zero, 0x159 | a2 = 0x159;
0x0014cb48 addiu a1, a1, -0x7cfc | a1 += -0x7cfc;
0x0014cb4c jalr t9 | t9 ();
0x0014cb50 lw v1, 4(s0) | v1 = *((s0 + 1));
0x0014cb54 lw v0, 0x3c(sp) | v0 = *(arg_3ch);
0x0014cb58 lw a0, 0xc(v1) | a0 = *((v1 + 3));
0x0014cb5c sw v0, (v1) | *(v1) = v0;
0x0014cb60 addiu v0, zero, -0x10 | v0 = -0x10;
0x0014cb64 and v0, v0, a0 | v0 &= a0;
0x0014cb68 ori v0, v0, 8 | v0 |= 8;
0x0014cb6c sw s1, 8(v1) | *((v1 + 2)) = s1;
0x0014cb70 sw v0, 0xc(v1) | *((v1 + 3)) = v0;
| }
0x0014cb74 addiu v0, zero, 1 | v0 = 1;
| }
0x0014cb78 lw ra, 0x24(sp) | ra = *(var_24h);
0x0014cb7c lw s1, 0x20(sp) | s1 = *(var_20h);
0x0014cb80 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0014cb84 addiu sp, sp, 0x28 |
0x0014cb88 jr ra | return v0;
| }
[*] Function system used 1 times libcrypto.so.1.1