[*] Binary protection state of libssl.so.1.0.0
No RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of libssl.so.1.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/thirdlib/libssl.so.1.0.0 @ 0x406ec */
| #include <stdint.h>
|
; (fcn) sym.SSL_CTX_new () | void SSL_CTX_new () {
0x000406ec lui gp, 3 |
0x000406f0 addiu gp, gp, -0x377c |
0x000406f4 addu gp, gp, t9 | gp += t9;
0x000406f8 addiu sp, sp, -0x38 |
0x000406fc sw gp, 0x18(sp) | *(var_18h) = gp;
0x00040700 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00040704 sw s3, 0x30(sp) | *(var_30h) = s3;
0x00040708 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0004070c sw s1, 0x28(sp) | *(var_28h) = s1;
0x00040710 sw s0, 0x24(sp) | *(var_24h) = s0;
0x00040714 lw t9, -0x7b90(gp) | t9 = *((gp - 7908));
| if (a0 == 0) {
0x00040718 beqz a0, 0x40b90 | goto label_4;
| }
0x0004071c move s1, a0 | s1 = a0;
0x00040720 bal 0x4394c | sym_SSL_get_ex_data_X509_STORE_CTX_idx ();
0x00040724 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040728 lw s2, -0x7fe4(gp) | s2 = *((gp - 8185));
| if (v0 < 0) {
0x0004072c bltz v0, 0x40abc | goto label_5;
| }
0x00040730 lw t9, -0x7a24(gp) | t9 = *((gp - 7817));
0x00040734 addiu a0, zero, 0x1d8 | a0 = aav.0x000001d8;
0x00040738 addiu a1, s2, -0x6184 | a1 = s2 + -0x6184;
0x0004073c addiu a2, zero, 0x759 | a2 = 0x759;
0x00040740 jalr t9 | t9 ();
0x00040744 move s0, v0 | s0 = v0;
0x00040748 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0004074c beqz v0, 0x40ae0 | goto label_6;
| }
0x00040750 lw t9, -0x7524(gp) | t9 = *((gp - 7497));
0x00040754 move a0, v0 | a0 = v0;
0x00040758 move a1, zero | a1 = 0;
0x0004075c addiu a2, zero, 0x1d8 | a2 = aav.0x000001d8;
0x00040760 jalr t9 | t9 ();
0x00040764 lw t9, 0x60(s1) | t9 = *((s1 + 24));
0x00040768 addiu v0, zero, 0x5000 | v0 = 0x5000;
0x0004076c addiu s3, zero, 2 | s3 = 2;
0x00040770 sw s1, (s0) | *(s0) = s1;
0x00040774 sw zero, 0xc(s0) | *((s0 + 3)) = 0;
0x00040778 sw s3, 0x20(s0) | *((s0 + 8)) = s3;
0x0004077c sw v0, 0x14(s0) | *((s0 + 5)) = v0;
0x00040780 sw zero, 0x18(s0) | *((s0 + 6)) = 0;
0x00040784 sw zero, 0x1c(s0) | *((s0 + 7)) = 0;
0x00040788 jalr t9 | t9 ();
0x0004078c lw gp, 0x18(sp) | gp = *(var_18h);
0x00040790 addiu a0, s0, 0x34 | a0 = s0 + 0x34;
0x00040794 move a1, zero | a1 = 0;
0x00040798 lw t9, -0x7524(gp) | t9 = *((gp - 7497));
0x0004079c addiu a2, zero, 0x2c | a2 = 0x2c;
0x000407a0 sw v0, 0x24(s0) | *((s0 + 9)) = v0;
0x000407a4 sw zero, 0x28(s0) | *((s0 + 10)) = 0;
0x000407a8 sw zero, 0x2c(s0) | *((s0 + 11)) = 0;
0x000407ac sw zero, 0x30(s0) | *((s0 + 12)) = 0;
0x000407b0 sw zero, 0xec(s0) | *((s0 + 59)) = 0;
0x000407b4 jalr t9 | t9 ();
0x000407b8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000407bc addiu v0, zero, 1 | v0 = 1;
0x000407c0 sw v0, 0x60(s0) | *((s0 + 24)) = v0;
0x000407c4 lw t9, -0x7b8c(gp) | t9 = *((gp - 7907));
0x000407c8 lui v0, 1 | v0 = 0x19000;
0x000407cc ori v0, v0, 0x9000 |
0x000407d0 sw zero, 0xf4(s0) | *((s0 + 61)) = 0;
0x000407d4 sw zero, 0x9c(s0) | *((s0 + 39)) = 0;
0x000407d8 sw zero, 0x64(s0) | *((s0 + 25)) = 0;
0x000407dc sw zero, 0x68(s0) | *((s0 + 26)) = 0;
0x000407e0 sw v0, 0xac(s0) | *((s0 + 43)) = v0;
0x000407e4 sw zero, 0xb4(s0) | *((s0 + 45)) = 0;
0x000407e8 sw zero, 0xb8(s0) | *((s0 + 46)) = 0;
0x000407ec sw zero, 0xbc(s0) | *((s0 + 47)) = 0;
0x000407f0 sw zero, 0xc0(s0) | *((s0 + 48)) = 0;
0x000407f4 sw zero, 0xc4(s0) | *((s0 + 49)) = 0;
0x000407f8 sw zero, 0xe8(s0) | *((s0 + 58)) = 0;
0x000407fc bal 0x43a80 | sym_ssl_cert_new ();
0x00040800 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040804 sw v0, 0xb0(s0) | *((s0 + 44)) = v0;
| if (v0 == 0) {
0x00040808 beqz v0, 0x40a68 | goto label_7;
| }
0x0004080c lw a0, -0x7bf0(gp) | a0 = *((gp - 7932));
0x00040810 lw a1, -0x7bf0(gp) | a1 = *((gp - 7932));
0x00040814 lw t9, -0x75a0(gp) | t9 = *((gp - 7528));
0x00040818 sw zero, 0x6c(s0) | *((s0 + 27)) = 0;
0x0004081c sw zero, 0x70(s0) | *((s0 + 28)) = 0;
0x00040820 sw zero, 0x74(s0) | *((s0 + 29)) = 0;
0x00040824 sw zero, 0x78(s0) | *((s0 + 30)) = 0;
0x00040828 sw zero, 0x7c(s0) | *((s0 + 31)) = 0;
0x0004082c addiu a0, a0, -0x1f60 | a0 += -0x1f60;
0x00040830 addiu a1, a1, -0x1ee8 | a1 += -0x1ee8;
0x00040834 jalr t9 | t9 ();
0x00040838 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004083c sw v0, 0x10(s0) | *((s0 + 4)) = v0;
| if (v0 == 0) {
0x00040840 beqz v0, 0x40a68 | goto label_7;
| }
0x00040844 lw t9, -0x75cc(gp) | t9 = *((gp - 7539));
0x00040848 jalr t9 | t9 ();
0x0004084c nop |
0x00040850 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040854 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| if (v0 == 0) {
0x00040858 beqz v0, 0x40a68 | goto label_7;
| }
0x0004085c lw v0, (s1) | v0 = *(s1);
0x00040860 lw a0, (s0) | a0 = *(s0);
0x00040864 addiu a1, s0, 4 | a1 = s0 + 4;
0x00040868 addiu a2, s0, 8 | a2 = s0 + 8;
| if (v0 == s3) {
0x0004086c beq v0, s3, 0x40b24 | goto label_8;
| }
0x00040870 lw a3, -0x7fe4(gp) | a3 = *((gp - 8185));
0x00040874 addiu a3, a3, -0x6170 | a3 += -0x6170;
| do {
0x00040878 lw v0, 0xb0(s0) | v0 = *((s0 + 44));
0x0004087c lw t9, -0x7bc0(gp) | t9 = *((gp - 7920));
0x00040880 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040884 bal 0x4a1fc | sym_ssl_create_cipher_list ();
0x00040888 lw a0, 4(s0) | a0 = *((s0 + 1));
0x0004088c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == 0) {
0x00040890 beqz a0, 0x40b30 | goto label_9;
| }
0x00040894 lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
0x00040898 jalr t9 | t9 ();
0x0004089c nop |
0x000408a0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000408a4 blez v0, 0x40b30 | goto label_9;
| }
0x000408a8 lw t9, -0x75f4(gp) | t9 = *((gp - 7549));
0x000408ac jalr t9 | t9 ();
0x000408b0 nop |
0x000408b4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000408b8 sw v0, 0xf0(s0) | *((s0 + 60)) = v0;
| if (v0 != 0) {
0x000408bc beqz v0, 0x40a68 |
0x000408c0 lw a0, -0x7fe4(gp) | a0 = *((gp - 8185));
0x000408c4 lw t9, -0x78f0(gp) | t9 = *((gp - 7740));
0x000408c8 addiu a0, a0, -0x614c | a0 += -0x614c;
0x000408cc jalr t9 | t9 ();
0x000408d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000408d4 sw v0, 0x88(s0) | *((s0 + 34)) = v0;
| if (v0 == 0) {
0x000408d8 beqz v0, 0x40bbc | goto label_10;
| }
0x000408dc lw a0, -0x7fe4(gp) | a0 = *((gp - 8185));
0x000408e0 lw t9, -0x78f0(gp) | t9 = *((gp - 7740));
0x000408e4 addiu a0, a0, -0x6140 | a0 += -0x6140;
0x000408e8 jalr t9 | t9 ();
0x000408ec lw gp, 0x18(sp) | gp = *(var_18h);
0x000408f0 sw v0, 0x8c(s0) | *((s0 + 35)) = v0;
| if (v0 == 0) {
0x000408f4 beqz v0, 0x40b58 | goto label_11;
| }
0x000408f8 lw a0, -0x7fe4(gp) | a0 = *((gp - 8185));
0x000408fc lw t9, -0x78f0(gp) | t9 = *((gp - 7740));
0x00040900 addiu a0, a0, -0x6134 | a0 += -0x6134;
0x00040904 jalr t9 | t9 ();
0x00040908 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004090c sw v0, 0x90(s0) | *((s0 + 36)) = v0;
| if (v0 == 0) {
0x00040910 beqz v0, 0x40bf8 | goto label_12;
| }
0x00040914 lw t9, -0x7874(gp) | t9 = *(gp);
0x00040918 jalr t9 | t9 ();
0x0004091c nop |
0x00040920 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040924 sw v0, 0xa0(s0) | *((s0 + 40)) = v0;
| if (v0 == 0) {
0x00040928 beqz v0, 0x40a68 | goto label_7;
| }
0x0004092c lw t9, -0x78b4(gp) | t9 = *((gp - 7725));
0x00040930 addiu a0, zero, 2 | a0 = 2;
0x00040934 move a1, s0 | a1 = s0;
0x00040938 addiu a2, s0, 0x80 | a2 = s0 + 0x80;
0x0004093c jalr t9 | t9 ();
0x00040940 lw v0, 0x64(s1) | v0 = *((s1 + 25));
0x00040944 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040948 sw zero, 0x94(s0) | *((s0 + 37)) = 0;
0x0004094c lw v0, 0x38(v0) | v0 = *((v0 + 14));
0x00040950 andi v0, v0, 8 | v0 &= 8;
0x00040954 lw t9, -0x7b88(gp) | t9 = *((gp - 7906));
| if (v0 == 0) {
0x00040958 beqz v0, 0x40be4 | goto label_13;
| }
| label_3:
0x0004095c lw t9, -0x7514(gp) | t9 = *((gp - 7493));
0x00040960 addiu v0, zero, 0x4000 | v0 = 0x4000;
0x00040964 sw v0, 0xf8(s0) | *((s0 + 62)) = v0;
0x00040968 sw zero, 0x100(s0) | *(s0) = 0;
0x0004096c sw zero, 0x104(s0) | *(s0) = 0;
0x00040970 addiu a0, s0, 0x108 | a0 = s0 + aav.0x00000108;
0x00040974 addiu a1, zero, 0x10 | a1 = 0x10;
0x00040978 jalr t9 | t9 ();
0x0004097c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x00040980 blez v0, 0x40b80 | goto label_14;
| }
0x00040984 lw t9, -0x74dc(gp) | t9 = *((gp - 7479));
0x00040988 addiu a0, s0, 0x118 | a0 = s0 + aav.0x00000118;
0x0004098c addiu a1, zero, 0x10 | a1 = 0x10;
0x00040990 jalr t9 | t9 ();
0x00040994 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x00040998 blez v0, 0x40b80 | goto label_14;
| }
0x0004099c lw t9, -0x74dc(gp) | t9 = *((gp - 7479));
0x000409a0 addiu a0, s0, 0x128 | a0 = s0 + aav.0x00000128;
0x000409a4 addiu a1, zero, 0x10 | a1 = 0x10;
0x000409a8 jalr t9 | t9 ();
0x000409ac lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x000409b0 blez v0, 0x40b80 | goto label_14;
| }
| label_1:
0x000409b4 lw t9, -0x7b84(gp) | t9 = *((gp - 7905));
0x000409b8 move a0, s0 | a0 = s0;
0x000409bc sw zero, 0x13c(s0) | *(s0) = 0;
0x000409c0 sw zero, 0x140(s0) | *(s0) = 0;
0x000409c4 sw zero, 0x1a4(s0) | *(s0) = 0;
0x000409c8 sw zero, 0x1ac(s0) | *(s0) = 0;
0x000409cc sw zero, 0x14c(s0) | *(s0) = 0;
0x000409d0 sw zero, 0x150(s0) | *(s0) = 0;
0x000409d4 sw zero, 0x154(s0) | *(s0) = 0;
0x000409d8 bal 0x56058 | sym_SSL_CTX_SRP_CTX_init ();
0x000409dc lw gp, 0x18(sp) | gp = *(var_18h);
0x000409e0 addiu v0, zero, 0x20 | v0 = 0x20;
0x000409e4 sw v0, 0x158(s0) | *(s0) = v0;
0x000409e8 lw t9, -0x7a24(gp) | t9 = *((gp - 7817));
0x000409ec addiu a0, zero, 0xc | a0 = 0xc;
0x000409f0 addiu a1, s2, -0x6184 | a1 = s2 + -0x6184;
0x000409f4 addiu a2, zero, 0x7dc | a2 = 0x7dc;
0x000409f8 jalr t9 | t9 ();
0x000409fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00040a00 sw v0, 0x160(s0) | *(s0) = v0;
| if (v0 == 0) {
0x00040a04 beqz v0, 0x40a68 | goto label_7;
| }
0x00040a08 lw a1, -0x7fe4(gp) | a1 = *((gp - 8185));
0x00040a0c lw t9, -0x7a24(gp) | t9 = *((gp - 7817));
0x00040a10 sw zero, (v0) | *(v0) = 0;
0x00040a14 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00040a18 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00040a1c addiu a0, zero, 0xc | a0 = 0xc;
0x00040a20 addiu a1, a1, -0x6184 | a1 += -0x6184;
0x00040a24 addiu a2, zero, 0x7e2 | a2 = 0x7e2;
0x00040a28 jalr t9 | t9 ();
0x00040a2c lw gp, 0x18(sp) | gp = *(var_18h);
0x00040a30 sw v0, 0x15c(s0) | *(s0) = v0;
| if (v0 != 0) {
0x00040a34 beqz v0, 0x40a58 |
0x00040a38 lw v1, 0xa4(s0) | v1 = *((s0 + 41));
0x00040a3c sw zero, (v0) | *(v0) = 0;
0x00040a40 sw zero, 4(v0) | *((v0 + 1)) = 0;
0x00040a44 ori v1, v1, 4 | v1 |= 4;
0x00040a48 sw zero, 8(v0) | *((v0 + 2)) = 0;
0x00040a4c sw zero, 0xfc(s0) | *((s0 + 63)) = 0;
0x00040a50 sw v1, 0xa4(s0) | *((s0 + 41)) = v1;
0x00040a54 b 0x40a9c | goto label_2;
| }
0x00040a58 lw t9, -0x7a2c(gp) | t9 = *((gp - 7819));
0x00040a5c lw a0, 0x160(s0) | a0 = *(s0);
0x00040a60 jalr t9 | t9 ();
0x00040a64 lw gp, 0x18(sp) | gp = *(var_18h);
| }
| label_7:
0x00040a68 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040a6c addiu v0, zero, 0x806 | v0 = 0x806;
0x00040a70 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040a74 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040a78 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040a7c addiu a2, zero, 0x41 | a2 = 0x41;
0x00040a80 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040a84 jalr t9 | t9 ();
0x00040a88 lw gp, 0x18(sp) | gp = *(var_18h);
| label_0:
0x00040a8c lw t9, -0x7b80(gp) | t9 = *((gp - 7904));
0x00040a90 move a0, s0 | a0 = s0;
0x00040a94 move s0, zero | s0 = 0;
0x00040a98 bal 0x40438 | sym_SSL_CTX_free ();
| label_2:
0x00040a9c lw ra, 0x34(sp) | ra = *(var_34h);
0x00040aa0 move v0, s0 | v0 = s0;
0x00040aa4 lw s3, 0x30(sp) | s3 = *(var_30h);
0x00040aa8 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00040aac lw s1, 0x28(sp) | s1 = *(var_28h);
0x00040ab0 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00040ab4 addiu sp, sp, 0x38 |
0x00040ab8 jr ra | return v0;
| label_5:
0x00040abc lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040ac0 addiu v0, zero, 0x756 | v0 = 0x756;
0x00040ac4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040ac8 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040acc addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040ad0 addiu a2, zero, 0x10d | a2 = 0x10d;
0x00040ad4 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040ad8 jalr t9 | t9 ();
0x00040adc lw gp, 0x18(sp) | gp = *(var_18h);
| label_6:
0x00040ae0 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040ae4 addiu v0, zero, 0x806 | v0 = 0x806;
0x00040ae8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040aec addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040af0 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040af4 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040af8 addiu a2, zero, 0x41 | a2 = 0x41;
0x00040afc jalr t9 | t9 ();
0x00040b00 lw ra, 0x34(sp) | ra = *(var_34h);
0x00040b04 move s0, zero | s0 = 0;
0x00040b08 move v0, s0 | v0 = s0;
0x00040b0c lw s3, 0x30(sp) | s3 = *(var_30h);
0x00040b10 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x00040b14 lw s1, 0x28(sp) | s1 = *(var_28h);
0x00040b18 lw s0, 0x24(sp) | s0 = *(var_24h);
0x00040b1c addiu sp, sp, 0x38 |
0x00040b20 jr ra | return v0;
| label_8:
0x00040b24 lw a3, -0x7fe4(gp) | a3 = *((gp - 8185));
0x00040b28 addiu a3, a3, -0x6178 | a3 += -0x6178;
0x00040b2c b 0x40878 |
| } while (1);
| label_9:
0x00040b30 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040b34 addiu v0, zero, 0x7a0 | v0 = 0x7a0;
0x00040b38 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040b3c addiu a0, zero, 0x14 | a0 = 0x14;
0x00040b40 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040b44 addiu a2, zero, 0xa1 | a2 = 0xa1;
0x00040b48 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040b4c jalr t9 | t9 ();
0x00040b50 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040b54 b 0x40a8c | goto label_0;
| label_11:
0x00040b58 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040b5c addiu v0, zero, 0x7ad | v0 = 0x7ad;
0x00040b60 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040b64 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040b68 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040b6c addiu a2, zero, 0xf2 | a2 = 0xf2;
0x00040b70 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040b74 jalr t9 | t9 ();
0x00040b78 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040b7c b 0x40a8c | goto label_0;
| label_14:
0x00040b80 lw v0, 0xa4(s0) | v0 = *((s0 + 41));
0x00040b84 ori v0, v0, 0x4000 | v0 |= 0x4000;
0x00040b88 sw v0, 0xa4(s0) | *((s0 + 41)) = v0;
0x00040b8c b 0x409b4 | goto label_1;
| label_4:
0x00040b90 lw a3, -0x7fe4(gp) | a3 = *((gp - 8185));
0x00040b94 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040b98 addiu v0, zero, 0x74b | v0 = 0x74b;
0x00040b9c sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040ba0 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040ba4 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040ba8 addiu a2, zero, 0xc4 | a2 = 0xc4;
0x00040bac addiu a3, a3, -0x6184 | a3 += -0x6184;
0x00040bb0 jalr t9 | t9 ();
0x00040bb4 move s0, zero | s0 = 0;
0x00040bb8 b 0x40a9c | goto label_2;
| label_10:
0x00040bbc lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040bc0 addiu v0, zero, 0x7a9 | v0 = 0x7a9;
0x00040bc4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040bc8 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040bcc addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040bd0 addiu a2, zero, 0xf1 | a2 = 0xf1;
0x00040bd4 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040bd8 jalr t9 | t9 ();
0x00040bdc lw gp, 0x18(sp) | gp = *(var_18h);
0x00040be0 b 0x40a8c | goto label_0;
| label_13:
0x00040be4 bal 0x4baf4 | sym_SSL_COMP_get_compression_methods ();
0x00040be8 nop |
0x00040bec lw gp, 0x18(sp) | gp = *(var_18h);
0x00040bf0 sw v0, 0x98(s0) | *((s0 + 38)) = v0;
0x00040bf4 b 0x4095c | goto label_3;
| label_12:
0x00040bf8 lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00040bfc addiu v0, zero, 0x7b1 | v0 = 0x7b1;
0x00040c00 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00040c04 addiu a0, zero, 0x14 | a0 = 0x14;
0x00040c08 addiu a1, zero, 0xa9 | a1 = 0xa9;
0x00040c0c addiu a2, zero, 0xf3 | a2 = 0xf3;
0x00040c10 addiu a3, s2, -0x6184 | a3 = s2 + -0x6184;
0x00040c14 jalr t9 | t9 ();
0x00040c18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00040c1c b 0x40a8c | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/thirdlib/libssl.so.1.0.0 @ 0x45654 */
| #include <stdint.h>
|
; (fcn) sym.ssl_verify_cert_chain () | void ssl_verify_cert_chain () {
0x00045654 lui gp, 2 |
0x00045658 addiu gp, gp, 0x791c |
0x0004565c addu gp, gp, t9 | gp += t9;
0x00045660 lw v0, 0x98(a0) | v0 = *((a0 + 38));
0x00045664 addiu sp, sp, -0xc0 |
0x00045668 sw s2, 0xb8(sp) | *(var_b8h) = s2;
0x0004566c lw s2, 0x150(v0) | s2 = *(v0);
0x00045670 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00045674 sw s1, 0xb4(sp) | *(var_b4h) = s1;
0x00045678 sw s0, 0xb0(sp) | *(var_b0h) = s0;
0x0004567c sw ra, 0xbc(sp) | *(var_bch) = ra;
0x00045680 move s0, a0 | s0 = a0;
0x00045684 move s1, a1 | s1 = a1;
0x00045688 beqz s2, 0x457ec |
| while (1) {
0x0004568c lw t9, -0x78f4(gp) | t9 = *((gp - 7741));
| if (s1 != 0) {
0x00045690 beqz s1, 0x456a4 |
0x00045694 move a0, s1 | a0 = s1;
0x00045698 jalr t9 | t9 ();
0x0004569c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x000456a0 bnez v0, 0x456c0 | goto label_2;
| }
| }
0x000456a4 lw ra, 0xbc(sp) | ra = *(var_bch);
0x000456a8 lw s2, 0xb8(sp) | s2 = *(var_b8h);
0x000456ac lw s1, 0xb4(sp) | s1 = *(var_b4h);
0x000456b0 lw s0, 0xb0(sp) | s0 = *(var_b0h);
0x000456b4 move v0, zero | v0 = 0;
0x000456b8 addiu sp, sp, 0xc0 |
0x000456bc jr ra | return v0;
| label_2:
0x000456c0 lw t9, -0x7a00(gp) | t9 = *((gp - 7808));
0x000456c4 move a0, s1 | a0 = s1;
0x000456c8 move a1, zero | a1 = 0;
0x000456cc jalr t9 | t9 ();
0x000456d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000456d4 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000456d8 move a1, s2 | a1 = s2;
0x000456dc lw t9, -0x76a0(gp) | t9 = *((gp - 7592));
0x000456e0 move a2, v0 | a2 = v0;
0x000456e4 move a3, s1 | a3 = s1;
0x000456e8 jalr t9 | t9 ();
0x000456ec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x000456f0 beqz v0, 0x457f8 | goto label_3;
| }
0x000456f4 lw v0, 0x98(s0) | v0 = *((s0 + 38));
0x000456f8 lw t9, -0x7860(gp) | t9 = *((gp - 7704));
0x000456fc addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00045700 lw a1, 0x38(v0) | a1 = *((v0 + 14));
0x00045704 lui v0, 3 | v0 = 0x30000;
0x00045708 and a1, a1, v0 | a1 &= v0;
0x0004570c jalr t9 | t9 ();
0x00045710 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045714 lw t9, -0x7b90(gp) | t9 = *((gp - 7908));
0x00045718 bal 0x4394c | sym_SSL_get_ex_data_X509_STORE_CTX_idx ();
0x0004571c nop |
0x00045720 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045724 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00045728 move a1, v0 | a1 = v0;
0x0004572c lw t9, -0x7730(gp) | t9 = *((gp - 7628));
0x00045730 move a2, s0 | a2 = s0;
0x00045734 jalr t9 | t9 ();
0x00045738 lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x0004573c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00045740 beqz v0, 0x45838 | goto label_4;
| }
0x00045744 lw a1, -0x7fe4(gp) | a1 = *((gp - 8185));
0x00045748 addiu a1, a1, -0x5d7c | a1 += -0x5d7c;
| label_0:
0x0004574c lw t9, -0x7a3c(gp) | t9 = *((gp - 7823));
0x00045750 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00045754 jalr t9 | t9 ();
0x00045758 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004575c lw t9, -0x77bc(gp) | t9 = *((gp - 7663));
0x00045760 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00045764 jalr t9 | t9 ();
0x00045768 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004576c lw a1, 0x70(s0) | a1 = *((s0 + 28));
0x00045770 lw t9, -0x779c(gp) | t9 = *((gp - 7655));
0x00045774 move a0, v0 | a0 = v0;
0x00045778 jalr t9 | t9 ();
0x0004577c lw a1, 0xcc(s0) | a1 = *((s0 + 51));
0x00045780 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a1 != 0) {
0x00045784 beqz a1, 0x45798 |
0x00045788 lw t9, -0x7990(gp) | t9 = *((gp - 7780));
0x0004578c addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00045790 jalr t9 | t9 ();
0x00045794 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00045798 lw v0, 0xe4(s0) | v0 = *((s0 + 57));
0x0004579c lw t9, 0x64(v0) | t9 = *((v0 + 25));
| if (t9 == 0) {
0x000457a0 beqz t9, 0x45844 | goto label_5;
| }
0x000457a4 nop |
0x000457a8 lw a1, 0x68(v0) | a1 = *((v0 + 26));
0x000457ac addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000457b0 jalr t9 | t9 ();
0x000457b4 lw gp, 0x18(sp) | gp = *(var_18h);
| label_1:
0x000457b8 lw v1, 0x84(sp) | v1 = *(var_84h);
0x000457bc lw t9, -0x7910(gp) | t9 = *((gp - 7748));
0x000457c0 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x000457c4 sw v1, 0xec(s0) | *((s0 + 59)) = v1;
0x000457c8 sw v0, 0xa8(sp) | *(var_a8h) = v0;
0x000457cc jalr t9 | t9 ();
0x000457d0 lw ra, 0xbc(sp) | ra = *(var_bch);
0x000457d4 lw v0, 0xa8(sp) | v0 = *(var_a8h);
0x000457d8 lw s2, 0xb8(sp) | s2 = *(var_b8h);
0x000457dc lw s1, 0xb4(sp) | s1 = *(var_b4h);
0x000457e0 lw s0, 0xb0(sp) | s0 = *(var_b0h);
0x000457e4 addiu sp, sp, 0xc0 |
0x000457e8 jr ra | return v0;
0x000457ec lw v0, 0xe4(a0) | v0 = *((a0 + 57));
0x000457f0 lw s2, 0xc(v0) | s2 = *((v0 + 3));
0x000457f4 b 0x4568c |
| }
| label_3:
0x000457f8 lw a3, -0x7fe4(gp) | a3 = *((gp - 8185));
0x000457fc lw t9, -0x793c(gp) | t9 = *((gp - 7759));
0x00045800 addiu v0, zero, 0x2d5 | v0 = 0x2d5;
0x00045804 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00045808 addiu a0, zero, 0x14 | a0 = 0x14;
0x0004580c addiu a1, zero, 0xcf | a1 = 0xcf;
0x00045810 addiu a2, zero, 0xb | a2 = 0xb;
0x00045814 addiu a3, a3, -0x5da0 | a3 += -0x5da0;
0x00045818 jalr t9 | t9 ();
0x0004581c lw ra, 0xbc(sp) | ra = *(var_bch);
0x00045820 lw s2, 0xb8(sp) | s2 = *(var_b8h);
0x00045824 lw s1, 0xb4(sp) | s1 = *(var_b4h);
0x00045828 lw s0, 0xb0(sp) | s0 = *(var_b0h);
0x0004582c move v0, zero | v0 = 0;
0x00045830 addiu sp, sp, 0xc0 |
0x00045834 jr ra | return v0;
| label_4:
0x00045838 lw a1, -0x7fe4(gp) | a1 = *((gp - 8185));
0x0004583c addiu a1, a1, -0x5d70 | a1 += -0x5d70;
0x00045840 b 0x4574c | goto label_0;
| label_5:
0x00045844 lw t9, -0x74d0(gp) | t9 = *((gp - 7476));
0x00045848 addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x0004584c jalr t9 | t9 ();
0x00045850 lw gp, 0x18(sp) | gp = *(var_18h);
0x00045854 b 0x457b8 | goto label_1;
| }
[*] Function fprintf used 1 times libssl.so.1.0.0