[*] Binary protection state of libgroupsock.so.8.1.0
No RELRO No Canary found NX disabled DSO No RPATH No RUNPATH Symbols
[*] Function sprintf tear down of libgroupsock.so.8.1.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0xb838 */
| #include <stdint.h>
|
; (fcn) method.GroupsockLookupTable.AddNew_UsageEnvironment__NetAddress__NetAddress__Port__unsigned_char_ () | void method_GroupsockLookupTable_AddNew_UsageEnvironment_NetAddress_NetAddress_Port_unsigned_char_ () {
| /* GroupsockLookupTable::AddNew(UsageEnvironment&, NetAddress, NetAddress, Port, unsigned char) */
0x0000b838 lui gp, 2 |
0x0000b83c addiu gp, gp, -0xd28 |
0x0000b840 addu gp, gp, t9 | gp += t9;
0x0000b844 addiu sp, sp, -0x150 |
0x0000b848 sw ra, 0x14c(sp) | *(var_14ch) = ra;
0x0000b84c sw s7, 0x148(sp) | *(var_148h) = s7;
0x0000b850 sw s6, 0x144(sp) | *(var_144h) = s6;
0x0000b854 sw s5, 0x140(sp) | *(var_140h) = s5;
0x0000b858 sw s4, 0x13c(sp) | *(var_13ch) = s4;
0x0000b85c sw s3, 0x138(sp) | *(var_138h) = s3;
0x0000b860 sw s2, 0x134(sp) | *(var_134h) = s2;
0x0000b864 sw s1, 0x130(sp) | *(var_130h) = s1;
0x0000b868 sw s0, 0x12c(sp) | *(var_12ch) = s0;
0x0000b86c move s7, a0 | s7 = a0;
0x0000b870 lw t9, -0x7e54(gp) | t9 = *(gp);
0x0000b874 move a0, a3 | a0 = a3;
0x0000b878 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0000b87c move s3, a3 | s3 = a3;
0x0000b880 lhu s5, 0x160(sp) | s5 = *(arg_160h);
0x0000b884 move s1, a1 | s1 = a1;
0x0000b888 lbu s2, 0x164(sp) | s2 = *(arg_164h);
0x0000b88c move s4, a2 | s4 = a2;
0x0000b890 jalr t9 | t9 ();
0x0000b894 addiu a0, zero, 0x158 | a0 = 0x158;
0x0000b898 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b89c lw t9, -0x7f60(gp) | t9 = sym.imp.operator_new_unsigned_int_;
| if (v0 != 0) {
0x0000b8a0 bnez v0, 0xb974 | goto label_0;
| }
0x0000b8a4 jalr t9 | t9 ();
0x0000b8a8 nop |
0x0000b8ac move a1, s1 | a1 = s1;
0x0000b8b0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b8b4 move a0, v0 | a0 = v0;
0x0000b8b8 sw s2, 0x10(sp) | *(var_10h) = s2;
0x0000b8bc move a2, s4 | a2 = s4;
0x0000b8c0 lw t9, -0x7df4(gp) | t9 = *(gp);
0x0000b8c4 move a3, s5 | a3 = s5;
0x0000b8c8 move s0, v0 | s0 = v0;
0x0000b8cc jalr t9 | t9 ();
0x0000b8d0 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
0x0000b8d4 move v0, s0 | v0 = s0;
| if (s0 != 0) {
0x0000b8d8 beqz s0, 0xb948 |
0x0000b8dc lw s2, 4(s0) | s2 = *((s0 + 1));
0x0000b8e0 lw t9, -0x7fd4(gp) | t9 = *(gp);
| if (s2 < 0) {
0x0000b8e4 bltz s2, 0xb948 | goto label_1;
| }
0x0000b8e8 addiu t9, t9, -0x6500 | t9 += -0x6500;
0x0000b8ec move a0, s1 | a0 = s1;
0x0000b8f0 jalr t9 | t9 ();
0x0000b8f4 move a1, s2 | a1 = s2;
0x0000b8f8 lw s6, (v0) | s6 = *(v0);
0x0000b8fc lw t8, (s6) | t8 = *(s6);
0x0000b900 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x0000b904 move a0, s6 | a0 = s6;
0x0000b908 jalr t9 | t9 ();
0x0000b90c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0000b910 beqz v0, 0xb9a8 | goto label_2;
| }
0x0000b914 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0000b918 addiu s3, sp, 0x20 | s3 = sp + 0x20;
0x0000b91c lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x0000b920 move a0, s3 | a0 = s3;
0x0000b924 addiu a1, a1, -0x4c4 | a1 += -0x4c4;
0x0000b928 move a2, s2 | a2 = s2;
0x0000b92c jalr t9 | t9 ();
0x0000b930 move a0, s1 | a0 = s1;
0x0000b934 lw t8, (s1) | t8 = *(s1);
0x0000b938 lw t9, 4(t8) | t9 = *((t8 + 1));
0x0000b93c move a1, s3 | a1 = s3;
0x0000b940 jalr t9 | t9 ();
0x0000b944 move v0, s0 | v0 = s0;
| }
| label_1:
0x0000b948 lw ra, 0x14c(sp) | ra = *(var_14ch);
0x0000b94c lw s7, 0x148(sp) | s7 = *(var_148h);
0x0000b950 lw s6, 0x144(sp) | s6 = *(var_144h);
0x0000b954 lw s5, 0x140(sp) | s5 = *(var_140h);
0x0000b958 lw s4, 0x13c(sp) | s4 = *(var_13ch);
0x0000b95c lw s3, 0x138(sp) | s3 = *(var_138h);
0x0000b960 lw s2, 0x134(sp) | s2 = *(var_134h);
0x0000b964 lw s1, 0x130(sp) | s1 = *(var_130h);
0x0000b968 lw s0, 0x12c(sp) | s0 = *(var_12ch);
0x0000b96c addiu sp, sp, 0x150 |
0x0000b970 jr ra | return v0;
| label_0:
0x0000b974 jalr t9 | t9 ();
0x0000b978 nop |
0x0000b97c move a1, s1 | a1 = s1;
0x0000b980 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b984 move a0, v0 | a0 = v0;
0x0000b988 sh s5, 0x10(sp) | *(var_10h) = s5;
0x0000b98c move a2, s4 | a2 = s4;
0x0000b990 lw t9, -0x7f6c(gp) | t9 = *(gp);
0x0000b994 move a3, s3 | a3 = s3;
0x0000b998 move s0, v0 | s0 = v0;
0x0000b99c jalr t9 | t9 ();
0x0000b9a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9a4 b 0xb8d4 |
| } while (1);
| label_2:
0x0000b9a8 lw t8, (s6) | t8 = *(s6);
0x0000b9ac move a1, s2 | a1 = s2;
0x0000b9b0 move a0, s6 | a0 = s6;
0x0000b9b4 addiu s1, sp, 0xa4 | s1 = sp + 0xa4;
0x0000b9b8 lw t9, 8(t8) | t9 = *((t8 + 2));
0x0000b9bc move a2, s0 | a2 = s0;
0x0000b9c0 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x0000b9c4 jalr t9 | t9 ();
0x0000b9c8 move a0, s1 | a0 = s1;
0x0000b9cc lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9d0 lw t9, -0x7d04(gp) | t9 = *(gp);
0x0000b9d4 move a1, s4 | a1 = s4;
0x0000b9d8 jalr t9 | t9 ();
0x0000b9dc move a0, s2 | a0 = s2;
0x0000b9e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9e4 lw t9, -0x7d04(gp) | t9 = *(gp);
0x0000b9e8 move a1, s3 | a1 = s3;
0x0000b9ec jalr t9 | t9 ();
0x0000b9f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000b9f4 lw t9, -0x7e2c(gp) | t9 = *(gp);
0x0000b9f8 move a0, s7 | a0 = s7;
0x0000b9fc sw s0, 0x10(sp) | *(var_10h) = s0;
0x0000ba00 move a1, s1 | a1 = s1;
0x0000ba04 move a2, s2 | a2 = s2;
0x0000ba08 move a3, s5 | a3 = s5;
0x0000ba0c jalr t9 | t9 ();
0x0000ba10 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ba14 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x0000ba18 move a0, s2 | a0 = s2;
0x0000ba1c jalr t9 | t9 ();
0x0000ba20 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000ba24 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x0000ba28 move a0, s1 | a0 = s1;
0x0000ba2c jalr t9 | t9 ();
0x0000ba30 move v0, s0 | v0 = s0;
0x0000ba34 lw ra, 0x14c(sp) | ra = *(var_14ch);
0x0000ba38 lw s7, 0x148(sp) | s7 = *(var_148h);
0x0000ba3c lw s6, 0x144(sp) | s6 = *(var_144h);
0x0000ba40 lw s5, 0x140(sp) | s5 = *(var_140h);
0x0000ba44 lw s4, 0x13c(sp) | s4 = *(var_13ch);
0x0000ba48 lw s3, 0x138(sp) | s3 = *(var_138h);
0x0000ba4c lw s2, 0x134(sp) | s2 = *(var_134h);
0x0000ba50 lw s1, 0x130(sp) | s1 = *(var_130h);
0x0000ba54 lw s0, 0x12c(sp) | s0 = *(var_12ch);
0x0000ba58 addiu sp, sp, 0x150 |
0x0000ba5c jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0xdab8 */
| #include <stdint.h>
|
; (fcn) method.NetAddress.NetAddress_unsigned_char_const__unsigned_int_ () | void method_NetAddress_NetAddress_unsigned_char_const_unsigned_int_ () {
| /* NetAddress::NetAddress(unsigned char const*, unsigned int) */
0x0000dab8 lui gp, 2 |
0x0000dabc addiu gp, gp, -0x2fa8 |
0x0000dac0 addu gp, gp, t9 | gp += t9;
0x0000dac4 addiu sp, sp, -0x140 |
0x0000dac8 sw ra, 0x13c(sp) | *(var_13ch) = ra;
0x0000dacc sw fp, 0x138(sp) | *(var_138h) = fp;
0x0000dad0 sw s7, 0x134(sp) | *(var_134h) = s7;
0x0000dad4 sw s6, 0x130(sp) | *(var_130h) = s6;
0x0000dad8 sw s5, 0x12c(sp) | *(var_12ch) = s5;
0x0000dadc sw s4, 0x128(sp) | *(var_128h) = s4;
0x0000dae0 sw s3, 0x124(sp) | *(var_124h) = s3;
0x0000dae4 sw s2, 0x120(sp) | *(var_120h) = s2;
0x0000dae8 sw s1, 0x11c(sp) | *(var_11ch) = s1;
0x0000daec sw s0, 0x118(sp) | *(var_118h) = s0;
0x0000daf0 move fp, a0 | fp = a0;
0x0000daf4 lw t8, -0x7ee4(gp) | t8 = *(gp);
0x0000daf8 move s5, a1 | s5 = a1;
0x0000dafc sw gp, 0x10(sp) | *(var_10h) = gp;
0x0000db00 move s0, a2 | s0 = a2;
0x0000db04 lw t9, -0x7e6c(gp) | t9 = *(gp);
0x0000db08 addiu t8, t8, 8 | t8 += 8;
0x0000db0c sw t8, (a0) | *(a0) = t8;
0x0000db10 addiu s4, sp, 0x18 | s4 = sp + 0x18;
0x0000db14 jalr t9 | t9 ();
0x0000db18 move a0, s4 | a0 = s4;
0x0000db1c lw gp, 0x10(sp) | gp = *(var_10h);
0x0000db20 move a1, zero | a1 = 0;
0x0000db24 lw t9, -0x7eac(gp) | t9 = sym.imp.memset;
0x0000db28 addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x0000db2c jalr t9 | t9 ();
0x0000db30 addiu t8, zero, 4 | t8 = 4;
0x0000db34 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s0 != t8) {
0x0000db38 beq s0, t8, 0xdb74 |
0x0000db3c addiu t8, zero, 0x10 | t8 = 0x10;
0x0000db40 lw ra, 0x13c(sp) | ra = *(var_13ch);
| if (s0 == t8) {
0x0000db44 beq s0, t8, 0xdc14 | goto label_1;
| }
0x0000db48 lw fp, 0x138(sp) | fp = *(var_138h);
0x0000db4c lw s7, 0x134(sp) | s7 = *(var_134h);
0x0000db50 lw s6, 0x130(sp) | s6 = *(var_130h);
0x0000db54 lw s5, 0x12c(sp) | s5 = *(var_12ch);
0x0000db58 lw s4, 0x128(sp) | s4 = *(var_128h);
0x0000db5c lw s3, 0x124(sp) | s3 = *(var_124h);
0x0000db60 lw s2, 0x120(sp) | s2 = *(var_120h);
0x0000db64 lw s1, 0x11c(sp) | s1 = *(var_11ch);
0x0000db68 lw s0, 0x118(sp) | s0 = *(var_118h);
0x0000db6c addiu sp, sp, 0x140 |
0x0000db70 jr ra | return;
| }
0x0000db74 lw s6, -0x7fd4(gp) | s6 = *(gp);
0x0000db78 move s1, s5 | s1 = s5;
0x0000db7c addiu s2, zero, 1 | s2 = 1;
0x0000db80 move s0, s4 | s0 = s4;
0x0000db84 addiu s6, s6, -0x324 | s6 += -0x324;
0x0000db88 addiu s7, zero, 0x2e | s7 = 0x2e;
| do {
| label_0:
0x0000db8c lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x0000db90 move a0, s4 | a0 = s4;
0x0000db94 move a1, s6 | a1 = s6;
0x0000db98 addiu s3, s0, 1 | s3 = s0 + 1;
| if (s5 == s1) {
0x0000db9c beq s5, s1, 0xdc1c | goto label_2;
| }
0x0000dba0 lbu a2, (s1) | a2 = *(s1);
0x0000dba4 sb s7, (s0) | *(s0) = s7;
0x0000dba8 sb zero, 1(s0) | *(var_1h) = 0;
0x0000dbac jalr t9 | t9 ();
0x0000dbb0 sltiu t8, s2, 4 | t8 = (s2 < 4) ? 1 : 0;
0x0000dbb4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000dbb8 addu s0, s3, v0 | s0 = s3 + v0;
| if (t8 == 0) {
0x0000dbbc beqz t8, 0xdbcc | goto label_3;
| }
0x0000dbc0 addiu s2, s2, 1 | s2++;
0x0000dbc4 addiu s1, s1, 1 | s1++;
0x0000dbc8 b 0xdb8c |
| } while (1);
| label_3:
0x0000dbcc addiu a3, zero, 2 | a3 = 2;
| do {
0x0000dbd0 lw t9, -0x7d08(gp) | t9 = *(gp);
0x0000dbd4 move a0, fp | a0 = fp;
0x0000dbd8 move a1, s4 | a1 = s4;
0x0000dbdc addiu a2, zero, 4 | a2 = 4;
0x0000dbe0 jalr t9 | t9 ();
0x0000dbe4 lw ra, 0x13c(sp) | ra = *(var_13ch);
0x0000dbe8 lw fp, 0x138(sp) | fp = *(var_138h);
0x0000dbec lw s7, 0x134(sp) | s7 = *(var_134h);
0x0000dbf0 lw s6, 0x130(sp) | s6 = *(var_130h);
0x0000dbf4 lw s5, 0x12c(sp) | s5 = *(var_12ch);
0x0000dbf8 lw s4, 0x128(sp) | s4 = *(var_128h);
0x0000dbfc lw s3, 0x124(sp) | s3 = *(var_124h);
0x0000dc00 lw s2, 0x120(sp) | s2 = *(var_120h);
0x0000dc04 lw s1, 0x11c(sp) | s1 = *(var_11ch);
0x0000dc08 lw s0, 0x118(sp) | s0 = *(var_118h);
0x0000dc0c addiu sp, sp, 0x140 |
0x0000dc10 jr ra | return;
| label_1:
0x0000dc14 addiu a3, zero, 0xa | a3 = 0xa;
0x0000dc18 b 0xdbd0 |
| } while (1);
| label_2:
0x0000dc1c move a0, s4 | a0 = s4;
0x0000dc20 lbu a2, (s5) | a2 = *(s5);
0x0000dc24 move a1, s6 | a1 = s6;
0x0000dc28 addiu s2, s2, 1 | s2++;
0x0000dc2c addiu s1, s1, 1 | s1++;
0x0000dc30 jalr t9 | t9 ();
0x0000dc34 lw gp, 0x10(sp) | gp = *(var_10h);
0x0000dc38 addu s0, s0, v0 | s0 += v0;
0x0000dc3c b 0xdb8c | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0x7824 */
| #include <stdint.h>
|
; (fcn) sym.ourIPv4Address_UsageEnvironment_ () | void ourIPv4Address_UsageEnvironment_ () {
| /* ourIPv4Address(UsageEnvironment&) */
0x00007824 lui gp, 2 |
0x00007828 addiu gp, gp, 0x32ec |
0x0000782c addu gp, gp, t9 | gp += t9;
0x00007830 addiu sp, sp, -0x530 |
0x00007834 sw ra, 0x52c(sp) | *(var_52ch) = ra;
0x00007838 sw fp, 0x528(sp) | *(var_528h) = fp;
0x0000783c sw s7, 0x524(sp) | *(var_524h) = s7;
0x00007840 sw s6, 0x520(sp) | *(var_520h) = s6;
0x00007844 sw s5, 0x51c(sp) | *(var_51ch) = s5;
0x00007848 sw s4, 0x518(sp) | *(var_518h) = s4;
0x0000784c sw s3, 0x514(sp) | *(var_514h) = s3;
0x00007850 sw s2, 0x510(sp) | *(var_510h) = s2;
0x00007854 sw s1, 0x50c(sp) | *(var_50ch) = s1;
0x00007858 sw s0, 0x508(sp) | *(var_508h) = s0;
0x0000785c move s2, a0 | s2 = a0;
0x00007860 lw s0, -0x7fe4(gp) | s0 = *((gp - 8185));
0x00007864 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00007868 lb t8, 0x3140(s0) | t8 = *((s0 + 12608));
0x0000786c move s5, a1 | s5 = a1;
| if (t8 == 0) {
0x00007870 beqz t8, 0x7b58 | goto label_7;
| }
0x00007874 lw s3, -0x7fe4(gp) | s3 = *((gp - 8185));
| do {
| label_0:
0x00007878 lw t9, -0x7cf4(gp) | t9 = *(gp);
0x0000787c addiu s1, sp, 0x448 | s1 = sp + 0x448;
0x00007880 move a0, s1 | a0 = s1;
0x00007884 jalr t9 | t9 ();
0x00007888 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000788c lw t9, -0x7f34(gp) | t9 = *(gp);
| /* obj.ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007890 addiu a0, s3, 0x3038 | a0 = s3 + 0x3038;
0x00007894 jalr t9 | t9 ();
0x00007898 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000789c beqz v0, 0x7b04 |
0x000078a0 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x000078a4 addiu s6, sp, 0x3c4 | s6 = sp + 0x3c4;
0x000078a8 lw t9, -0x7de8(gp) | t9 = *(gp);
0x000078ac move a0, s6 | a0 = s6;
0x000078b0 addiu a1, v0, -0x79c | a1 = v0 + -0x79c;
0x000078b4 addiu a2, zero, 2 | a2 = 2;
0x000078b8 jalr t9 | t9 ();
0x000078bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000078c0 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x000078c4 addiu s0, sp, 0x340 | s0 = sp + 0x340;
0x000078c8 lw t8, -0x7eb4(gp) | t8 = *(gp);
0x000078cc move a0, s0 | a0 = s0;
0x000078d0 lw t9, -0x7de8(gp) | t9 = *(gp);
0x000078d4 addiu a1, a1, -0x748 | a1 += -aav.0x00000748;
0x000078d8 addiu a2, zero, 2 | a2 = 2;
0x000078dc sb zero, (t8) | *(t8) = 0;
0x000078e0 jalr t9 | t9 ();
0x000078e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000078e8 lw t9, -0x7d40(gp) | t9 = *(gp);
0x000078ec move a0, s1 | a0 = s1;
0x000078f0 move a1, s0 | a1 = s0;
0x000078f4 jalr t9 | t9 ();
0x000078f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000078fc lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007900 move a0, s0 | a0 = s0;
0x00007904 jalr t9 | t9 ();
0x00007908 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000790c lw t9, -0x7dec(gp) | t9 = *(gp);
0x00007910 move a0, s0 | a0 = s0;
0x00007914 addiu a1, zero, 0x3e4b | a1 = 0x3e4b;
0x00007918 jalr t9 | t9 ();
0x0000791c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007920 lhu a1, 0x340(sp) | a1 = *(var_340h);
0x00007924 move a0, s5 | a0 = s5;
0x00007928 lw t9, -0x7e48(gp) | t9 = sym.setupDatagramSocket_UsageEnvironment__Port__int_;
0x0000792c addiu a2, zero, 2 | a2 = 2;
0x00007930 jalr t9 | t9 ();
0x00007934 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007938 move s0, v0 | s0 = v0;
| if (v0 >= 0) {
0x0000793c bltz v0, 0x79d8 |
0x00007940 addiu s4, sp, 0x2bc | s4 = sp + aav.0x000002bc;
0x00007944 move a1, s1 | a1 = s1;
0x00007948 lw t9, -0x7d04(gp) | t9 = *(gp);
0x0000794c move a0, s4 | a0 = s4;
0x00007950 jalr t9 | t9 ();
0x00007954 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007958 lw t9, -0x7d70(gp) | t9 = sym.socketJoinGroup_UsageEnvironment__int__NetAddress_;
0x0000795c move a0, s5 | a0 = s5;
0x00007960 move a1, s0 | a1 = s0;
0x00007964 move a2, s4 | a2 = s4;
0x00007968 jalr t9 | t9 ();
0x0000796c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007970 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007974 move a0, s4 | a0 = s4;
0x00007978 move s4, v0 | s4 = v0;
0x0000797c jalr t9 | t9 ();
0x00007980 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s4 != 0) {
0x00007984 bnez s4, 0x7c28 | goto label_8;
| }
| label_4:
0x00007988 addiu s7, sp, 0x1b4 | s7 = sp + 0x1b4;
| label_5:
0x0000798c lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007990 move a0, s7 | a0 = s7;
0x00007994 move a1, s1 | a1 = s1;
0x00007998 jalr t9 | t9 ();
0x0000799c lw gp, 0x20(sp) | gp = *(var_20h);
0x000079a0 lw t9, -0x7e5c(gp) | t9 = sym.socketLeaveGroup_UsageEnvironment__int__NetAddress_;
0x000079a4 move a0, s5 | a0 = s5;
0x000079a8 move a1, s0 | a1 = s0;
0x000079ac move a2, s7 | a2 = s7;
0x000079b0 jalr t9 | t9 ();
0x000079b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000079b8 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x000079bc move a0, s7 | a0 = s7;
0x000079c0 jalr t9 | t9 ();
0x000079c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000079c8 lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x000079cc move a0, s0 | a0 = s0;
0x000079d0 jalr t9 | t9 ();
0x000079d4 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x000079d8 lw v0, -0x7eb4(gp) | v0 = *(gp);
0x000079dc lbu t8, (v0) | t8 = *(v0);
0x000079e0 addiu s4, sp, 0x130 | s4 = sp + aav.0x00000130;
| if (t8 == 0) {
0x000079e4 beqz t8, 0x7bac | goto label_9;
| }
| label_1:
0x000079e8 lw t9, -0x7d04(gp) | t9 = *(gp);
0x000079ec move a0, s4 | a0 = s4;
0x000079f0 move a1, s6 | a1 = s6;
0x000079f4 jalr t9 | t9 ();
0x000079f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000079fc lw t9, -0x7cf0(gp) | t9 = *(gp);
0x00007a00 move a0, s6 | a0 = s6;
0x00007a04 jalr t9 | t9 ();
0x00007a08 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007a0c beqz v0, 0x7c0c | goto label_10;
| }
| label_2:
0x00007a10 addiu v0, sp, 0xac | v0 = sp + 0xac;
0x00007a14 move a1, s4 | a1 = s4;
0x00007a18 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007a1c move a0, v0 | a0 = v0;
0x00007a20 sw v0, 0x500(sp) | *(var_500h) = v0;
0x00007a24 jalr t9 | t9 ();
0x00007a28 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007a2c addiu s0, sp, 0x4cc | s0 = sp + 0x4cc;
0x00007a30 lw a1, 0x500(sp) | a1 = *(var_500h);
0x00007a34 lw t9, -0x7f2c(gp) | t9 = *(gp);
0x00007a38 move a0, s0 | a0 = s0;
0x00007a3c jalr t9 | t9 ();
0x00007a40 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007a44 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007a48 addiu s7, sp, 0x1b4 | s7 = sp + 0x1b4;
0x00007a4c lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x00007a50 move a0, s7 | a0 = s7;
0x00007a54 addiu a1, a1, -0x718 | a1 += -0x718;
0x00007a58 addiu a2, sp, 0x4d0 | a2 = sp + 0x4d0;
0x00007a5c jalr t9 | t9 ();
0x00007a60 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007a64 lw t9, -0x7dd0(gp) | t9 = *(gp);
0x00007a68 move a0, s0 | a0 = s0;
0x00007a6c jalr t9 | t9 ();
0x00007a70 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007a74 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007a78 lw a0, 0x500(sp) | a0 = *(var_500h);
0x00007a7c jalr t9 | t9 ();
0x00007a80 lw t8, (s5) | t8 = *(s5);
0x00007a84 move a0, s5 | a0 = s5;
0x00007a88 lw t9, 4(t8) | t9 = *((t8 + 1));
0x00007a8c move a1, s7 | a1 = s7;
0x00007a90 jalr t9 | t9 ();
0x00007a94 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007a98 addiu fp, sp, 0x28 | fp = sp + 0x28;
0x00007a9c lw t9, -0x7cf4(gp) | t9 = *(gp);
0x00007aa0 move a0, fp | a0 = fp;
0x00007aa4 jalr t9 | t9 ();
0x00007aa8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007aac lw t9, -0x7d40(gp) | t9 = *(gp);
0x00007ab0 move a0, s4 | a0 = s4;
0x00007ab4 move a1, fp | a1 = fp;
0x00007ab8 jalr t9 | t9 ();
0x00007abc lw gp, 0x20(sp) | gp = *(var_20h);
0x00007ac0 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007ac4 move a0, fp | a0 = fp;
0x00007ac8 jalr t9 | t9 ();
0x00007acc lw gp, 0x20(sp) | gp = *(var_20h);
0x00007ad0 lw t9, -0x7d40(gp) | t9 = *(gp);
| /* obj.ourIPv4Address_UsageEnvironment_::ourAddress */
| label_3:
0x00007ad4 addiu a0, s3, 0x3038 | a0 = s3 + 0x3038;
0x00007ad8 move a1, s4 | a1 = s4;
0x00007adc jalr t9 | t9 ();
0x00007ae0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007ae4 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007ae8 move a0, s4 | a0 = s4;
0x00007aec jalr t9 | t9 ();
0x00007af0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007af4 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007af8 move a0, s6 | a0 = s6;
0x00007afc jalr t9 | t9 ();
0x00007b00 lw gp, 0x20(sp) | gp = *(var_20h);
| }
0x00007b04 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007b08 move a0, s2 | a0 = s2;
| /* obj.ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007b0c addiu a1, s3, 0x3038 | a1 = s3 + 0x3038;
0x00007b10 jalr t9 | t9 ();
0x00007b14 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007b18 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007b1c move a0, s1 | a0 = s1;
0x00007b20 jalr t9 | t9 ();
0x00007b24 move v0, s2 | v0 = s2;
0x00007b28 lw ra, 0x52c(sp) | ra = *(var_52ch);
0x00007b2c lw fp, 0x528(sp) | fp = *(var_528h);
0x00007b30 lw s7, 0x524(sp) | s7 = *(var_524h);
0x00007b34 lw s6, 0x520(sp) | s6 = *(var_520h);
0x00007b38 lw s5, 0x51c(sp) | s5 = *(var_51ch);
0x00007b3c lw s4, 0x518(sp) | s4 = *(var_518h);
0x00007b40 lw s3, 0x514(sp) | s3 = *(var_514h);
0x00007b44 lw s2, 0x510(sp) | s2 = *(var_510h);
0x00007b48 lw s1, 0x50c(sp) | s1 = *(var_50ch);
0x00007b4c lw s0, 0x508(sp) | s0 = *(var_508h);
0x00007b50 addiu sp, sp, 0x530 |
0x00007b54 jr ra | return v0;
| label_7:
0x00007b58 lw t9, -0x7fa0(gp) | t9 = sym.imp.__cxa_guard_acquire;
| /* obj.guard_variable_for_ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007b5c addiu a0, s0, 0x3140 | a0 = s0 + 0x3140;
0x00007b60 jalr t9 | t9 ();
0x00007b64 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007b68 lw s3, -0x7fe4(gp) | s3 = *((gp - 8185));
0x00007b6c beqz v0, 0x7878 |
| } while (v0 == 0);
0x00007b70 lw t9, -0x7cf4(gp) | t9 = *(gp);
| /* obj.ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007b74 addiu a0, s3, 0x3038 | a0 = s3 + 0x3038;
0x00007b78 jalr t9 | t9 ();
0x00007b7c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007b80 lw t9, -0x7ef4(gp) | t9 = sym.imp.__cxa_guard_release;
| /* obj.guard_variable_for_ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007b84 addiu a0, s0, 0x3140 | a0 = s0 + 0x3140;
0x00007b88 jalr t9 | t9 ();
0x00007b8c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007b90 lw t9, -0x7e64(gp) | t9 = sym.imp.__cxa_atexit;
0x00007b94 lw a0, -0x7f5c(gp) | a0 = *(gp);
0x00007b98 lw a2, -0x7fe0(gp) | a2 = *(gp);
| /* obj.ourIPv4Address_UsageEnvironment_::ourAddress */
0x00007b9c addiu a1, s3, 0x3038 | a1 = s3 + 0x3038;
0x00007ba0 jalr t9 | t9 ();
0x00007ba4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007ba8 b 0x7878 | goto label_0;
| label_9:
0x00007bac lw t9, -0x7eac(gp) | t9 = sym.imp.memset;
0x00007bb0 move a1, zero | a1 = 0;
0x00007bb4 move a0, s4 | a0 = s4;
0x00007bb8 addiu a2, zero, 0x64 | a2 = 0x64;
0x00007bbc jalr t9 | t9 ();
0x00007bc0 move a0, s4 | a0 = s4;
0x00007bc4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007bc8 lw t9, -0x7eec(gp) | t9 = sym.imp.gethostname;
0x00007bcc addiu a1, zero, 0x64 | a1 = 0x64;
0x00007bd0 jalr t9 | t9 ();
0x00007bd4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007bd8 bnez v0, 0x7be8 |
0x00007bdc lb t8, 0x130(sp) | t8 = *(var_130h);
0x00007be0 addiu s7, sp, 0x1b4 | s7 = sp + 0x1b4;
| if (t8 != 0) {
0x00007be4 bnez t8, 0x7d8c | goto label_11;
| }
| }
0x00007be8 lw t8, (s5) | t8 = *(s5);
0x00007bec move a0, s5 | a0 = s5;
0x00007bf0 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007bf4 move a2, zero | a2 = 0;
0x00007bf8 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00007bfc addiu a1, a1, -0x738 | a1 += -0x738;
0x00007c00 jalr t9 | t9 ();
0x00007c04 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007c08 b 0x79e8 | goto label_1;
| label_10:
0x00007c0c lw t9, -0x7f34(gp) | t9 = *(gp);
0x00007c10 move a0, s6 | a0 = s6;
0x00007c14 jalr t9 | t9 ();
0x00007c18 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00007c1c bnez v0, 0x7a10 | goto label_2;
| }
0x00007c20 lw t9, -0x7d40(gp) | t9 = *(gp);
0x00007c24 b 0x7ad4 | goto label_3;
| label_8:
0x00007c28 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00007c2c addiu fp, sp, 0x238 | fp = sp + aav.0x00000238;
0x00007c30 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007c34 move a0, fp | a0 = fp;
0x00007c38 addiu t8, v0, -0x6ec | t8 = v0 + -0x6ec;
0x00007c3c move a1, s1 | a1 = s1;
0x00007c40 lw a2, -0x6ec(v0) | a2 = *((v0 - 443));
0x00007c44 lw v1, 4(t8) | v1 = *((t8 + 1));
0x00007c48 lhu v0, 8(t8) | v0 = *((t8 + 4));
0x00007c4c lbu t8, 0xa(t8) | t8 = *((t8 + 10));
0x00007c50 sw a2, 0x130(sp) | *(var_130h) = a2;
0x00007c54 sw v1, 0x134(sp) | *(var_134h) = v1;
0x00007c58 sh v0, 0x138(sp) | *(var_138h) = v0;
0x00007c5c sb t8, 0x13a(sp) | *(var_13ah) = t8;
0x00007c60 jalr t9 | t9 ();
0x00007c64 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007c68 addiu s4, sp, 0x130 | s4 = sp + aav.0x00000130;
0x00007c6c addiu t8, zero, 0xb | t8 = 0xb;
0x00007c70 lw t9, -0x7f44(gp) | t9 = sym.writeSocket_UsageEnvironment__int__NetAddress__Port__unsigned_char__unsigned_char__unsigned_int_;
0x00007c74 move a0, s5 | a0 = s5;
0x00007c78 lhu a3, 0x340(sp) | a3 = *(var_340h);
0x00007c7c move a1, s0 | a1 = s0;
0x00007c80 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00007c84 move a2, fp | a2 = fp;
0x00007c88 sw s4, 0x14(sp) | *(var_14h) = s4;
0x00007c8c sw t8, 0x18(sp) | *(var_18h) = t8;
0x00007c90 jalr t9 | t9 ();
0x00007c94 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007c98 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007c9c move a0, fp | a0 = fp;
0x00007ca0 move s7, v0 | s7 = v0;
0x00007ca4 jalr t9 | t9 ();
0x00007ca8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s7 == 0) {
0x00007cac beqz s7, 0x7988 | goto label_4;
| }
0x00007cb0 addiu fp, sp, 0x28 | fp = sp + 0x28;
0x00007cb4 addiu v0, sp, 0xa8 | v0 = sp + 0xa8;
0x00007cb8 move t8, fp | t8 = fp;
| do {
0x00007cbc sw zero, (t8) | *(t8) = 0;
0x00007cc0 addiu t8, t8, 4 | t8 += 4;
0x00007cc4 addiu v1, zero, 1 | v1 = 1;
0x00007cc8 bne t8, v0, 0x7cbc |
| } while (t8 != v0);
0x00007ccc srl t8, s0, 5 | t8 = s0 >> 5;
0x00007cd0 sll t8, t8, 2 | t8 <<= 2;
0x00007cd4 addiu s7, sp, 0x1b4 | s7 = sp + 0x1b4;
0x00007cd8 addu t8, fp, t8 | t8 = fp + t8;
0x00007cdc sllv v1, v1, s0 | v1 <<= s0;
0x00007ce0 lw v0, (t8) | v0 = *(t8);
0x00007ce4 addiu a0, s0, 1 | a0 = s0 + 1;
0x00007ce8 sw s7, 0x10(sp) | *(var_10h) = s7;
0x00007cec move a1, fp | a1 = fp;
0x00007cf0 or v0, v1, v0 | v0 = v1 | v0;
0x00007cf4 lw t9, -0x7dac(gp) | t9 = sym.imp.select;
0x00007cf8 sw v0, (t8) | *(t8) = v0;
0x00007cfc addiu t8, zero, 5 | t8 = 5;
0x00007d00 move a2, zero | a2 = 0;
0x00007d04 move a3, zero | a3 = 0;
0x00007d08 sw t8, 0x1b4(sp) | *(var_1b4h) = t8;
0x00007d0c sw zero, 0x1b8(sp) | *(var_1b8h) = 0;
0x00007d10 jalr t9 | t9 ();
0x00007d14 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 <= 0) {
0x00007d18 blez v0, 0x798c | goto label_5;
| }
0x00007d1c addiu v0, sp, 0xac | v0 = sp + 0xac;
0x00007d20 move a0, s5 | a0 = s5;
0x00007d24 lw t9, -0x7d10(gp) | t9 = sym.readSocket_UsageEnvironment__int__unsigned_char__unsigned_int__NetAddress_;
0x00007d28 move a1, s0 | a1 = s0;
0x00007d2c sw v0, 0x500(sp) | *(var_500h) = v0;
0x00007d30 move a2, v0 | a2 = v0;
0x00007d34 sw s6, 0x10(sp) | *(var_10h) = s6;
0x00007d38 addiu a3, zero, 0x14 | a3 = 0x14;
0x00007d3c jalr t9 | t9 ();
0x00007d40 addiu t8, zero, 0xb | t8 = 0xb;
0x00007d44 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != t8) {
0x00007d48 bne v0, t8, 0x798c | goto label_5;
| }
0x00007d4c lw t9, -0x7e40(gp) | t9 = sym.imp.strncmp;
0x00007d50 move a1, s4 | a1 = s4;
0x00007d54 lw a0, 0x500(sp) | a0 = *(var_500h);
0x00007d58 addiu a2, zero, 0xb | a2 = 0xb;
0x00007d5c jalr t9 | t9 ();
0x00007d60 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00007d64 bnez v0, 0x798c | goto label_5;
| }
0x00007d68 lw t9, -0x7cf0(gp) | t9 = *(gp);
0x00007d6c move a0, s6 | a0 = s6;
0x00007d70 jalr t9 | t9 ();
0x00007d74 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007d78 beqz v0, 0x7ea0 | goto label_12;
| }
0x00007d7c lw t8, -0x7eb4(gp) | t8 = *(gp);
0x00007d80 move v0, zero | v0 = 0;
0x00007d84 sb v0, (t8) | *(t8) = v0;
0x00007d88 b 0x798c | goto label_5;
| label_11:
0x00007d8c move a1, s4 | a1 = s4;
0x00007d90 lw t9, -0x7f84(gp) | t9 = *(gp);
0x00007d94 move a0, s7 | a0 = s7;
0x00007d98 jalr t9 | t9 ();
0x00007d9c lw gp, 0x20(sp) | gp = *(var_20h);
0x00007da0 addiu fp, sp, 0x238 | fp = sp + aav.0x00000238;
0x00007da4 move a1, s7 | a1 = s7;
0x00007da8 lw t9, -0x7fa8(gp) | t9 = *(gp);
0x00007dac move a0, fp | a0 = fp;
0x00007db0 jalr t9 | t9 ();
0x00007db4 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007db8 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x00007dbc addiu t8, sp, 0xac | t8 = sp + 0xac;
0x00007dc0 lw t9, -0x7de8(gp) | t9 = *(gp);
0x00007dc4 move a0, t8 | a0 = t8;
0x00007dc8 sw t8, 0x500(sp) | *(var_500h) = t8;
0x00007dcc addiu a1, v0, -0x79c | a1 = v0 + -0x79c;
0x00007dd0 addiu a2, zero, 2 | a2 = 2;
0x00007dd4 jalr t9 | t9 ();
0x00007dd8 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007ddc addiu s0, sp, 0x28 | s0 = sp + 0x28;
0x00007de0 b 0x7df4 |
| while (v0 != 0) {
| label_6:
0x00007de4 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007de8 move a0, s0 | a0 = s0;
0x00007dec jalr t9 | t9 ();
0x00007df0 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007df4 lw t9, -0x7f88(gp) | t9 = *(gp);
0x00007df8 move a0, fp | a0 = fp;
0x00007dfc jalr t9 | t9 ();
0x00007e00 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00007e04 beqz v0, 0x7e68 | goto label_13;
| }
0x00007e08 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007e0c move a0, s0 | a0 = s0;
0x00007e10 move a1, v0 | a1 = v0;
0x00007e14 jalr t9 | t9 ();
0x00007e18 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e1c lw t9, -0x7cf0(gp) | t9 = *(gp);
0x00007e20 move a0, s0 | a0 = s0;
0x00007e24 jalr t9 | t9 ();
0x00007e28 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e2c bnez v0, 0x7de4 |
| }
0x00007e30 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00007e34 move a0, s0 | a0 = s0;
0x00007e38 jalr t9 | t9 ();
0x00007e3c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00007e40 bnez v0, 0x7de4 | goto label_6;
| }
0x00007e44 lw t9, -0x7d40(gp) | t9 = *(gp);
0x00007e48 move a1, s0 | a1 = s0;
0x00007e4c lw a0, 0x500(sp) | a0 = *(var_500h);
0x00007e50 jalr t9 | t9 ();
0x00007e54 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e58 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007e5c move a0, s0 | a0 = s0;
0x00007e60 jalr t9 | t9 ();
0x00007e64 lw gp, 0x20(sp) | gp = *(var_20h);
| label_13:
0x00007e68 lw t9, -0x7d40(gp) | t9 = *(gp);
0x00007e6c move a0, s6 | a0 = s6;
0x00007e70 lw a1, 0x500(sp) | a1 = *(var_500h);
0x00007e74 jalr t9 | t9 ();
0x00007e78 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e7c lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007e80 lw a0, 0x500(sp) | a0 = *(var_500h);
0x00007e84 jalr t9 | t9 ();
0x00007e88 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e8c lw t9, -0x7df8(gp) | t9 = *(gp);
0x00007e90 move a0, s7 | a0 = s7;
0x00007e94 jalr t9 | t9 ();
0x00007e98 lw gp, 0x20(sp) | gp = *(var_20h);
0x00007e9c b 0x79e8 | goto label_1;
| label_12:
0x00007ea0 lw t9, -0x7f34(gp) | t9 = *(gp);
0x00007ea4 move a0, s6 | a0 = s6;
0x00007ea8 jalr t9 | t9 ();
0x00007eac lw gp, 0x20(sp) | gp = *(var_20h);
0x00007eb0 lw t8, -0x7eb4(gp) | t8 = *(gp);
0x00007eb4 sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x00007eb8 sb v0, (t8) | *(t8) = v0;
0x00007ebc b 0x798c | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0x86a8 */
| #include <stdint.h>
|
; (fcn) sym.setupDatagramSocket_UsageEnvironment__Port__int_ () | void setupDatagramSocket_UsageEnvironment_Port_int_ () {
| /* setupDatagramSocket(UsageEnvironment&, Port, int) */
0x000086a8 lui gp, 2 |
0x000086ac addiu gp, gp, 0x2468 |
0x000086b0 addu gp, gp, t9 | gp += t9;
0x000086b4 addiu sp, sp, -0x1e8 |
0x000086b8 sw ra, 0x1e4(sp) | *(var_1e4h) = ra;
0x000086bc sw s7, 0x1e0(sp) | *(var_1e0h) = s7;
0x000086c0 sw s6, 0x1dc(sp) | *(var_1dch) = s6;
0x000086c4 sw s5, 0x1d8(sp) | *(var_1d8h) = s5;
0x000086c8 sw s4, 0x1d4(sp) | *(var_1d4h) = s4;
0x000086cc sw s3, 0x1d0(sp) | *(var_1d0h) = s3;
0x000086d0 sw s2, 0x1cc(sp) | *(var_1cch) = s2;
0x000086d4 sw s1, 0x1c8(sp) | *(var_1c8h) = s1;
0x000086d8 sw s0, 0x1c4(sp) | *(var_1c4h) = s0;
0x000086dc move s2, a0 | s2 = a0;
0x000086e0 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x000086e4 addiu a0, zero, 1 | a0 = 1;
0x000086e8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000086ec move s4, a1 | s4 = a1;
0x000086f0 addiu t9, t9, 0x5734 | t9 += sym.createSocket_int__int_;
0x000086f4 move a1, a2 | a1 = a2;
0x000086f8 move s1, a2 | s1 = a2;
0x000086fc jalr t9 | t9 ();
0x00008700 move s0, v0 | s0 = v0;
0x00008704 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00008708 bltz v0, 0x8a24 | goto label_7;
| }
0x0000870c lw t9, -0x7dc4(gp) | t9 = sym.groupsockPriv_UsageEnvironment_;
0x00008710 move a0, s2 | a0 = s2;
0x00008714 addiu s5, sp, 0x1b0 | s5 = sp + 0x1b0;
0x00008718 addiu s3, zero, 4 | s3 = 4;
0x0000871c jalr t9 | t9 ();
0x00008720 move a0, s2 | a0 = s2;
0x00008724 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008728 lw t8, 4(v0) | t8 = *((v0 + 1));
0x0000872c lw t9, -0x7ce4(gp) | t9 = sym.reclaimGroupsockPriv_UsageEnvironment_;
0x00008730 sw t8, 0x1b0(sp) | *(var_1b0h) = t8;
0x00008734 jalr t9 | t9 ();
0x00008738 move a0, s0 | a0 = s0;
0x0000873c lw gp, 0x18(sp) | gp = *(var_18h);
0x00008740 ori a1, zero, 0xffff | a1 = 0xffff;
0x00008744 sw s3, 0x10(sp) | *(var_10h) = s3;
0x00008748 addiu a2, zero, 4 | a2 = 4;
0x0000874c lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x00008750 move a3, s5 | a3 = s5;
0x00008754 jalr t9 | t9 ();
0x00008758 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000875c bltz v0, 0x8b10 | goto label_8;
| }
0x00008760 lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x00008764 move a0, s0 | a0 = s0;
0x00008768 sw s3, 0x10(sp) | *(var_10h) = s3;
0x0000876c ori a1, zero, 0xffff | a1 = 0xffff;
0x00008770 addiu a2, zero, 0x200 | a2 = 0x200;
0x00008774 move a3, s5 | a3 = s5;
0x00008778 jalr t9 | t9 ();
0x0000877c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00008780 bltz v0, 0x8b74 | goto label_9;
| }
0x00008784 addiu t8, zero, 2 | t8 = 2;
0x00008788 addiu t8, zero, 0xa | t8 = 0xa;
| if (s1 == t8) {
0x0000878c beq s1, t8, 0x8a70 | goto label_10;
| }
0x00008790 lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
| if (s1 == t8) {
0x00008794 beq s1, t8, 0x88f0 | goto label_11;
| }
| label_1:
0x00008798 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0000879c addiu s3, sp, 0x128 | s3 = sp + aav.0x00000128;
0x000087a0 lw t9, -0x7de8(gp) | t9 = *(gp);
0x000087a4 move a0, s3 | a0 = s3;
0x000087a8 addiu a1, a1, -0x79c | a1 += -0x79c;
0x000087ac move a2, s1 | a2 = s1;
0x000087b0 andi s6, s4, 0xffff | s6 = s4 & 0xffff;
0x000087b4 jalr t9 | t9 ();
0x000087b8 srl s6, s6, 8 | s6 >>= 8;
0x000087bc sll t8, s4, 8 | t8 = s4 << 8;
0x000087c0 or s6, s6, t8 | s6 |= t8;
0x000087c4 andi s6, s6, 0xffff | s6 &= 0xffff;
0x000087c8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s6 == 0) {
0x000087cc beqz s6, 0x8950 | goto label_12;
| }
0x000087d0 addiu s5, sp, 0x20 | s5 = sp + 0x20;
| label_4:
0x000087d4 lw t9, -0x7ef8(gp) | t9 = *(gp);
0x000087d8 move a0, s5 | a0 = s5;
0x000087dc move a1, s3 | a1 = s3;
0x000087e0 addiu a3, sp, 0x1ac | a3 = sp + 0x1ac;
0x000087e4 move a2, s4 | a2 = s4;
0x000087e8 sw zero, 0x1ac(sp) | *(var_1ach) = 0;
0x000087ec jalr t9 | t9 ();
0x000087f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000087f4 lw t9, -0x7e04(gp) | t9 = sym.imp.bind;
0x000087f8 move a0, s0 | a0 = s0;
0x000087fc move a1, s5 | a1 = s5;
0x00008800 addiu a2, zero, 0x80 | a2 = 0x80;
0x00008804 jalr t9 | t9 ();
0x00008808 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000880c bnez v0, 0x89d4 | goto label_13;
| }
| label_3:
0x00008810 lw a0, -0x7fb4(gp) | a0 = *(gp);
0x00008814 lw t9, -0x7e54(gp) | t9 = *(gp);
0x00008818 jalr t9 | t9 ();
0x0000881c nop |
0x00008820 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00008824 bnez v0, 0x886c | goto label_14;
| }
| label_0:
0x00008828 move v0, s0 | v0 = s0;
| do {
| label_5:
0x0000882c lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00008830 move a0, s3 | a0 = s3;
0x00008834 sw v0, 0x1b8(sp) | *(var_1b8h) = v0;
0x00008838 jalr t9 | t9 ();
0x0000883c lw v0, 0x1b8(sp) | v0 = *(var_1b8h);
| label_2:
0x00008840 lw ra, 0x1e4(sp) | ra = *(var_1e4h);
0x00008844 lw s7, 0x1e0(sp) | s7 = *(var_1e0h);
0x00008848 lw s6, 0x1dc(sp) | s6 = *(var_1dch);
0x0000884c lw s5, 0x1d8(sp) | s5 = *(var_1d8h);
0x00008850 lw s4, 0x1d4(sp) | s4 = *(var_1d4h);
0x00008854 lw s3, 0x1d0(sp) | s3 = *(var_1d0h);
0x00008858 lw s2, 0x1cc(sp) | s2 = *(var_1cch);
0x0000885c lw s1, 0x1c8(sp) | s1 = *(var_1c8h);
0x00008860 lw s0, 0x1c4(sp) | s0 = *(var_1c4h);
0x00008864 addiu sp, sp, 0x1e8 |
0x00008868 jr ra | return v0;
| label_14:
0x0000886c addiu t8, zero, 2 | t8 = 2;
0x00008870 addiu t8, zero, 0xa | t8 = 0xa;
| if (s1 == t8) {
0x00008874 beq s1, t8, 0x8ab8 | goto label_15;
| }
0x00008878 move v0, s0 | v0 = s0;
0x0000887c bne s1, t8, 0x882c |
| } while (s1 != t8);
0x00008880 lw t9, -0x7f58(gp) | t9 = sym.ourOutputInterfaceName_UsageEnvironment_;
0x00008884 move a0, s2 | a0 = s2;
0x00008888 jalr t9 | t9 ();
0x0000888c lw gp, 0x18(sp) | gp = *(var_18h);
0x00008890 lw t9, -0x7e0c(gp) | t9 = sym.imp.if_nametoindex;
0x00008894 move a0, v0 | a0 = v0;
0x00008898 jalr t9 | t9 ();
0x0000889c addiu t8, zero, 4 | t8 = 4;
0x000088a0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000088a4 move a0, s0 | a0 = s0;
0x000088a8 sw t8, 0x10(sp) | *(var_10h) = t8;
0x000088ac addiu a1, zero, 0x29 | a1 = 0x29;
0x000088b0 lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x000088b4 addiu a2, zero, 0x11 | a2 = 0x11;
0x000088b8 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x000088bc sw v0, 0x20(sp) | *(var_20h) = v0;
0x000088c0 jalr t9 | t9 ();
0x000088c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x000088c8 bgez v0, 0x8828 | goto label_0;
| }
0x000088cc lw t8, (s2) | t8 = *(s2);
0x000088d0 move a0, s2 | a0 = s2;
0x000088d4 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x000088d8 move a2, zero | a2 = 0;
0x000088dc lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x000088e0 addiu a1, a1, -0x648 | a1 += -0x648;
0x000088e4 jalr t9 | t9 ();
0x000088e8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000088ec b 0x8a0c | goto label_16;
| label_11:
0x000088f0 addiu t8, zero, 1 | t8 = 1;
0x000088f4 sw s3, 0x10(sp) | *(var_10h) = s3;
0x000088f8 move a0, s0 | a0 = s0;
0x000088fc addiu a1, zero, 0x29 | a1 = 0x29;
0x00008900 addiu a2, zero, 0x13 | a2 = 0x13;
0x00008904 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00008908 sw t8, 0x20(sp) | *(var_20h) = t8;
0x0000890c jalr t9 | t9 ();
0x00008910 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x00008914 bgez v0, 0x8798 | goto label_1;
| }
0x00008918 lw t8, (s2) | t8 = *(s2);
0x0000891c move a0, s2 | a0 = s2;
0x00008920 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008924 move a2, zero | a2 = 0;
0x00008928 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x0000892c addiu a1, a1, -0x670 | a1 += -0x670;
| label_6:
0x00008930 jalr t9 | t9 ();
0x00008934 nop |
0x00008938 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000893c lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x00008940 move a0, s0 | a0 = s0;
0x00008944 jalr t9 | t9 ();
0x00008948 addiu v0, zero, -1 | v0 = -1;
0x0000894c b 0x8840 | goto label_2;
| label_12:
0x00008950 lw a0, -0x7f3c(gp) | a0 = *(gp);
0x00008954 lw t9, -0x7e54(gp) | t9 = *(gp);
0x00008958 jalr t9 | t9 ();
0x0000895c nop |
0x00008960 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00008964 beqz v0, 0x8810 | goto label_3;
| }
0x00008968 addiu s7, sp, 0xa4 | s7 = sp + 0xa4;
0x0000896c lw a1, -0x7f3c(gp) | a1 = *(gp);
0x00008970 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00008974 move a0, s7 | a0 = s7;
0x00008978 jalr t9 | t9 ();
0x0000897c lw gp, 0x18(sp) | gp = *(var_18h);
0x00008980 addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x00008984 move a1, s7 | a1 = s7;
0x00008988 lw t9, -0x7e9c(gp) | t9 = sym.ourConvertIPAddress_NetAddress__int_;
0x0000898c move a0, s5 | a0 = s5;
0x00008990 move a2, s1 | a2 = s1;
0x00008994 jalr t9 | t9 ();
0x00008998 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000899c lw t9, -0x7d40(gp) | t9 = *(gp);
0x000089a0 move a0, s3 | a0 = s3;
0x000089a4 move a1, s5 | a1 = s5;
0x000089a8 jalr t9 | t9 ();
0x000089ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000089b0 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x000089b4 move a0, s5 | a0 = s5;
0x000089b8 jalr t9 | t9 ();
0x000089bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000089c0 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x000089c4 move a0, s7 | a0 = s7;
0x000089c8 jalr t9 | t9 ();
0x000089cc lw gp, 0x18(sp) | gp = *(var_18h);
0x000089d0 b 0x87d4 | goto label_4;
| label_13:
0x000089d4 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x000089d8 addiu s1, sp, 0xa4 | s1 = sp + 0xa4;
0x000089dc lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x000089e0 move a0, s1 | a0 = s1;
0x000089e4 addiu a1, a1, -0x7bc | a1 += -0x7bc;
0x000089e8 move a2, s6 | a2 = s6;
0x000089ec jalr t9 | t9 ();
0x000089f0 move a0, s2 | a0 = s2;
0x000089f4 lw t8, (s2) | t8 = *(s2);
0x000089f8 move a1, s1 | a1 = s1;
0x000089fc lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008a00 move a2, zero | a2 = 0;
0x00008a04 jalr t9 | t9 ();
0x00008a08 lw gp, 0x18(sp) | gp = *(var_18h);
| label_16:
0x00008a0c lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x00008a10 move a0, s0 | a0 = s0;
0x00008a14 jalr t9 | t9 ();
0x00008a18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008a1c addiu v0, zero, -1 | v0 = -1;
0x00008a20 b 0x882c | goto label_5;
| label_7:
0x00008a24 lw t8, (s2) | t8 = *(s2);
0x00008a28 move a0, s2 | a0 = s2;
0x00008a2c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008a30 move a2, zero | a2 = 0;
0x00008a34 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008a38 addiu a1, a1, -0x6e0 | a1 += -0x6e0;
0x00008a3c jalr t9 | t9 ();
0x00008a40 move v0, s0 | v0 = s0;
0x00008a44 lw ra, 0x1e4(sp) | ra = *(var_1e4h);
0x00008a48 lw s7, 0x1e0(sp) | s7 = *(var_1e0h);
0x00008a4c lw s6, 0x1dc(sp) | s6 = *(var_1dch);
0x00008a50 lw s5, 0x1d8(sp) | s5 = *(var_1d8h);
0x00008a54 lw s4, 0x1d4(sp) | s4 = *(var_1d4h);
0x00008a58 lw s3, 0x1d0(sp) | s3 = *(var_1d0h);
0x00008a5c lw s2, 0x1cc(sp) | s2 = *(var_1cch);
0x00008a60 lw s1, 0x1c8(sp) | s1 = *(var_1c8h);
0x00008a64 lw s0, 0x1c4(sp) | s0 = *(var_1c4h);
0x00008a68 addiu sp, sp, 0x1e8 |
0x00008a6c jr ra | return v0;
| label_10:
0x00008a70 lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x00008a74 addiu t8, zero, 1 | t8 = 1;
0x00008a78 move a0, s0 | a0 = s0;
0x00008a7c sw t8, 0x10(sp) | *(var_10h) = t8;
0x00008a80 move a1, zero | a1 = 0;
0x00008a84 addiu a2, zero, 0x22 | a2 = 0x22;
0x00008a88 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00008a8c sb t8, 0x20(sp) | *(var_20h) = t8;
0x00008a90 jalr t9 | t9 ();
0x00008a94 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x00008a98 bgez v0, 0x8798 | goto label_1;
| }
0x00008a9c lw t8, (s2) | t8 = *(s2);
0x00008aa0 move a0, s2 | a0 = s2;
0x00008aa4 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008aa8 move a2, zero | a2 = 0;
0x00008aac lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008ab0 addiu a1, a1, -0x698 | a1 += -0x698;
0x00008ab4 b 0x8930 | goto label_6;
| label_15:
0x00008ab8 addiu s5, sp, 0x20 | s5 = sp + 0x20;
0x00008abc lw a1, -0x7fb4(gp) | a1 = *(gp);
0x00008ac0 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00008ac4 move a0, s5 | a0 = s5;
0x00008ac8 jalr t9 | t9 ();
0x00008acc lw gp, 0x18(sp) | gp = *(var_18h);
0x00008ad0 addiu t8, zero, 0x84 | t8 = 0x84;
0x00008ad4 move a0, s0 | a0 = s0;
0x00008ad8 lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x00008adc move a1, zero | a1 = 0;
0x00008ae0 sw t8, 0x10(sp) | *(var_10h) = t8;
0x00008ae4 addiu a2, zero, 0x20 | a2 = 0x20;
0x00008ae8 move a3, s5 | a3 = s5;
0x00008aec jalr t9 | t9 ();
0x00008af0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x00008af4 bltz v0, 0x8b2c |
0x00008af8 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00008afc move a0, s5 | a0 = s5;
0x00008b00 jalr t9 | t9 ();
0x00008b04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008b08 move v0, s0 | v0 = s0;
0x00008b0c b 0x882c | goto label_5;
| label_8:
0x00008b10 lw t8, (s2) | t8 = *(s2);
0x00008b14 move a0, s2 | a0 = s2;
0x00008b18 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008b1c move a2, zero | a2 = 0;
0x00008b20 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008b24 addiu a1, a1, -0x7e0 | a1 += -aav.0x000007e0;
0x00008b28 b 0x8930 | goto label_6;
| }
0x00008b2c lw t8, (s2) | t8 = *(s2);
0x00008b30 move a0, s2 | a0 = s2;
0x00008b34 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008b38 move a2, zero | a2 = 0;
0x00008b3c lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008b40 addiu a1, a1, -0x648 | a1 += -0x648;
0x00008b44 jalr t9 | t9 ();
0x00008b48 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008b4c lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x00008b50 move a0, s0 | a0 = s0;
0x00008b54 jalr t9 | t9 ();
0x00008b58 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008b5c lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00008b60 move a0, s5 | a0 = s5;
0x00008b64 jalr t9 | t9 ();
0x00008b68 lw gp, 0x18(sp) | gp = *(var_18h);
0x00008b6c addiu v0, zero, -1 | v0 = -1;
0x00008b70 b 0x882c | goto label_5;
| label_9:
0x00008b74 lw t8, (s2) | t8 = *(s2);
0x00008b78 move a0, s2 | a0 = s2;
0x00008b7c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00008b80 move a2, zero | a2 = 0;
0x00008b84 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00008b88 addiu a1, a1, -0x6bc | a1 += -0x6bc;
0x00008b8c b 0x8930 | goto label_6;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0x6f58 */
| #include <stdint.h>
|
; (fcn) sym.setupStreamSocket_UsageEnvironment__Port__int__unsigned_char_ () | void setupStreamSocket_UsageEnvironment_Port_int_unsigned_char_ () {
| /* setupStreamSocket(UsageEnvironment&, Port, int, unsigned char) */
0x00006f58 lui gp, 2 |
0x00006f5c addiu gp, gp, 0x3bb8 |
0x00006f60 addu gp, gp, t9 | gp += t9;
0x00006f64 addiu sp, sp, -0x260 |
0x00006f68 sw ra, 0x25c(sp) | *(var_25ch) = ra;
0x00006f6c sw fp, 0x258(sp) | *(var_258h) = fp;
0x00006f70 sw s7, 0x254(sp) | *(var_254h) = s7;
0x00006f74 sw s6, 0x250(sp) | *(var_250h) = s6;
0x00006f78 sw s5, 0x24c(sp) | *(var_24ch) = s5;
0x00006f7c sw s4, 0x248(sp) | *(var_248h) = s4;
0x00006f80 sw s3, 0x244(sp) | *(var_244h) = s3;
0x00006f84 sw s2, 0x240(sp) | *(var_240h) = s2;
0x00006f88 sw s1, 0x23c(sp) | *(var_23ch) = s1;
0x00006f8c sw s0, 0x238(sp) | *(var_238h) = s0;
0x00006f90 move s1, a0 | s1 = a0;
0x00006f94 lw t9, -0x7fd8(gp) | t9 = *((gp - 8182));
0x00006f98 addiu a0, zero, 2 | a0 = 2;
0x00006f9c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00006fa0 move s2, a1 | s2 = a1;
0x00006fa4 addiu t9, t9, 0x5734 | t9 += sym.createSocket_int__int_;
0x00006fa8 move a1, a2 | a1 = a2;
0x00006fac move s3, a2 | s3 = a2;
0x00006fb0 andi s5, a3, 0xff | s5 = a3 & 0xff;
0x00006fb4 jalr t9 | t9 ();
0x00006fb8 move s0, v0 | s0 = v0;
0x00006fbc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00006fc0 bltz v0, 0x71c4 | goto label_2;
| }
0x00006fc4 lw t9, -0x7dc4(gp) | t9 = sym.groupsockPriv_UsageEnvironment_;
0x00006fc8 move a0, s1 | a0 = s1;
0x00006fcc jalr t9 | t9 ();
0x00006fd0 move a0, s1 | a0 = s1;
0x00006fd4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00006fd8 lw t8, 4(v0) | t8 = *((v0 + 1));
0x00006fdc lw t9, -0x7ce4(gp) | t9 = sym.reclaimGroupsockPriv_UsageEnvironment_;
0x00006fe0 sw t8, 0x230(sp) | *(var_230h) = t8;
0x00006fe4 jalr t9 | t9 ();
0x00006fe8 addiu t8, zero, 4 | t8 = 4;
0x00006fec lw gp, 0x18(sp) | gp = *(var_18h);
0x00006ff0 move a0, s0 | a0 = s0;
0x00006ff4 sw t8, 0x10(sp) | *(var_10h) = t8;
0x00006ff8 ori a1, zero, 0xffff | a1 = 0xffff;
0x00006ffc lw t9, -0x7e18(gp) | t9 = sym.imp.setsockopt;
0x00007000 addiu a2, zero, 4 | a2 = 4;
0x00007004 addiu a3, sp, 0x230 | a3 = sp + aav.0x00000230;
0x00007008 jalr t9 | t9 ();
0x0000700c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00007010 bltz v0, 0x7274 | goto label_3;
| }
0x00007014 andi s6, s2, 0xffff | s6 = s2 & 0xffff;
0x00007018 srl s6, s6, 8 | s6 >>= 8;
0x0000701c sll t8, s2, 8 | t8 = s2 << 8;
0x00007020 or s6, s6, t8 | s6 |= t8;
0x00007024 andi s6, s6, 0xffff | s6 &= 0xffff;
0x00007028 lw t9, -0x7e54(gp) | t9 = *(gp);
0x0000702c beqz s6, 0x7158 |
| while (v0 != 0) {
0x00007030 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007034 addiu s4, sp, 0x128 | s4 = sp + aav.0x00000128;
0x00007038 lw t9, -0x7de8(gp) | t9 = *(gp);
0x0000703c move a0, s4 | a0 = s4;
0x00007040 addiu a1, a1, -0x79c | a1 += -0x79c;
0x00007044 move a2, s3 | a2 = s3;
0x00007048 jalr t9 | t9 ();
0x0000704c lw gp, 0x18(sp) | gp = *(var_18h);
0x00007050 lw a0, -0x7f3c(gp) | a0 = *(gp);
0x00007054 lw t9, -0x7e54(gp) | t9 = *(gp);
0x00007058 jalr t9 | t9 ();
0x0000705c nop |
0x00007060 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00007064 beqz v0, 0x70d0 |
0x00007068 addiu s7, sp, 0xa4 | s7 = sp + 0xa4;
0x0000706c lw a1, -0x7f3c(gp) | a1 = *(gp);
0x00007070 lw t9, -0x7d04(gp) | t9 = *(gp);
0x00007074 move a0, s7 | a0 = s7;
0x00007078 jalr t9 | t9 ();
0x0000707c lw gp, 0x18(sp) | gp = *(var_18h);
0x00007080 addiu fp, sp, 0x20 | fp = sp + 0x20;
0x00007084 move a1, s7 | a1 = s7;
0x00007088 lw t9, -0x7e9c(gp) | t9 = sym.ourConvertIPAddress_NetAddress__int_;
0x0000708c move a0, fp | a0 = fp;
0x00007090 move a2, s3 | a2 = s3;
0x00007094 jalr t9 | t9 ();
0x00007098 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000709c lw t9, -0x7d40(gp) | t9 = *(gp);
0x000070a0 move a0, s4 | a0 = s4;
0x000070a4 move a1, fp | a1 = fp;
0x000070a8 jalr t9 | t9 ();
0x000070ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000070b0 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x000070b4 move a0, fp | a0 = fp;
0x000070b8 jalr t9 | t9 ();
0x000070bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000070c0 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x000070c4 move a0, s7 | a0 = s7;
0x000070c8 jalr t9 | t9 ();
0x000070cc lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x000070d0 addiu s3, sp, 0x1ac | s3 = sp + 0x1ac;
0x000070d4 move a1, s4 | a1 = s4;
0x000070d8 lw t9, -0x7ef8(gp) | t9 = *(gp);
0x000070dc move a0, s3 | a0 = s3;
0x000070e0 move a2, s2 | a2 = s2;
0x000070e4 addiu a3, sp, 0x22c | a3 = sp + 0x22c;
0x000070e8 sw zero, 0x22c(sp) | *(var_22ch) = 0;
0x000070ec jalr t9 | t9 ();
0x000070f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000070f4 lw t9, -0x7e04(gp) | t9 = sym.imp.bind;
0x000070f8 move a0, s0 | a0 = s0;
0x000070fc move a1, s3 | a1 = s3;
0x00007100 addiu a2, zero, 0x80 | a2 = 0x80;
0x00007104 jalr t9 | t9 ();
0x00007108 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0000710c bnez v0, 0x7214 | goto label_4;
| }
0x00007110 lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007114 move a0, s4 | a0 = s4;
0x00007118 jalr t9 | t9 ();
0x0000711c lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 != 0) {
0x00007120 bnez s5, 0x7174 | goto label_5;
| }
| label_1:
0x00007124 move v0, s0 | v0 = s0;
| label_0:
0x00007128 lw ra, 0x25c(sp) | ra = *(var_25ch);
0x0000712c lw fp, 0x258(sp) | fp = *(var_258h);
0x00007130 lw s7, 0x254(sp) | s7 = *(var_254h);
0x00007134 lw s6, 0x250(sp) | s6 = *(var_250h);
0x00007138 lw s5, 0x24c(sp) | s5 = *(var_24ch);
0x0000713c lw s4, 0x248(sp) | s4 = *(var_248h);
0x00007140 lw s3, 0x244(sp) | s3 = *(var_244h);
0x00007144 lw s2, 0x240(sp) | s2 = *(var_240h);
0x00007148 lw s1, 0x23c(sp) | s1 = *(var_23ch);
0x0000714c lw s0, 0x238(sp) | s0 = *(var_238h);
0x00007150 addiu sp, sp, 0x260 |
0x00007154 jr ra | return v0;
0x00007158 lw a0, -0x7f3c(gp) | a0 = *(gp);
0x0000715c jalr t9 | t9 ();
0x00007160 nop |
0x00007164 lw gp, 0x18(sp) | gp = *(var_18h);
0x00007168 bnez v0, 0x7030 |
| }
0x0000716c move v0, s0 | v0 = s0;
| if (s5 == 0) {
0x00007170 beqz s5, 0x7128 | goto label_0;
| }
| label_5:
0x00007174 lw t9, -0x7ecc(gp) | t9 = sym.makeSocketNonBlocking_int_;
0x00007178 move a0, s0 | a0 = s0;
0x0000717c jalr t9 | t9 ();
0x00007180 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00007184 bnez v0, 0x7124 | goto label_1;
| }
0x00007188 lw t8, (s1) | t8 = *(s1);
0x0000718c move a0, s1 | a0 = s1;
0x00007190 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007194 move a2, zero | a2 = 0;
0x00007198 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x0000719c addiu a1, a1, -0x798 | a1 += -0x798;
| do {
0x000071a0 jalr t9 | t9 ();
0x000071a4 nop |
0x000071a8 move a0, s0 | a0 = s0;
0x000071ac lw gp, 0x18(sp) | gp = *(var_18h);
0x000071b0 lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x000071b4 addiu s0, zero, -1 | s0 = -1;
0x000071b8 jalr t9 | t9 ();
0x000071bc move v0, s0 | v0 = s0;
0x000071c0 b 0x7128 | goto label_0;
| label_2:
0x000071c4 lw t8, (s1) | t8 = *(s1);
0x000071c8 move a0, s1 | a0 = s1;
0x000071cc lw a1, -0x7fd4(gp) | a1 = *(gp);
0x000071d0 move a2, zero | a2 = 0;
0x000071d4 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x000071d8 addiu a1, a1, -0x804 | a1 += -aav.0x00000804;
0x000071dc jalr t9 | t9 ();
0x000071e0 move v0, s0 | v0 = s0;
0x000071e4 lw ra, 0x25c(sp) | ra = *(var_25ch);
0x000071e8 lw fp, 0x258(sp) | fp = *(var_258h);
0x000071ec lw s7, 0x254(sp) | s7 = *(var_254h);
0x000071f0 lw s6, 0x250(sp) | s6 = *(var_250h);
0x000071f4 lw s5, 0x24c(sp) | s5 = *(var_24ch);
0x000071f8 lw s4, 0x248(sp) | s4 = *(var_248h);
0x000071fc lw s3, 0x244(sp) | s3 = *(var_244h);
0x00007200 lw s2, 0x240(sp) | s2 = *(var_240h);
0x00007204 lw s1, 0x23c(sp) | s1 = *(var_23ch);
0x00007208 lw s0, 0x238(sp) | s0 = *(var_238h);
0x0000720c addiu sp, sp, 0x260 |
0x00007210 jr ra | return v0;
| label_4:
0x00007214 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007218 addiu s2, sp, 0x20 | s2 = sp + 0x20;
0x0000721c lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x00007220 move a0, s2 | a0 = s2;
0x00007224 addiu a1, a1, -0x7bc | a1 += -0x7bc;
0x00007228 move a2, s6 | a2 = s6;
0x0000722c jalr t9 | t9 ();
0x00007230 move a0, s1 | a0 = s1;
0x00007234 lw t8, (s1) | t8 = *(s1);
0x00007238 move a1, s2 | a1 = s2;
0x0000723c lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00007240 move a2, zero | a2 = 0;
0x00007244 jalr t9 | t9 ();
0x00007248 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000724c lw t9, -0x7fa4(gp) | t9 = sym.imp.close;
0x00007250 move a0, s0 | a0 = s0;
0x00007254 jalr t9 | t9 ();
0x00007258 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000725c lw t9, -0x7f5c(gp) | t9 = *(gp);
0x00007260 move a0, s4 | a0 = s4;
0x00007264 addiu s0, zero, -1 | s0 = -1;
0x00007268 jalr t9 | t9 ();
0x0000726c move v0, s0 | v0 = s0;
0x00007270 b 0x7128 | goto label_0;
| label_3:
0x00007274 lw t8, (s1) | t8 = *(s1);
0x00007278 move a0, s1 | a0 = s1;
0x0000727c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00007280 move a2, zero | a2 = 0;
0x00007284 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00007288 addiu a1, a1, -0x7e0 | a1 += -aav.0x000007e0;
0x0000728c b 0x71a0 |
| } while (1);
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libgroupsock.so.8.1.0 @ 0x5df0 */
| #include <stdint.h>
|
; (fcn) sym.writeSocket_UsageEnvironment__int__NetAddress__Port__unsigned_char__unsigned_int_ () | void writeSocket_UsageEnvironment_int_NetAddress_Port_unsigned_char_unsigned_int_ () {
| /* writeSocket(UsageEnvironment&, int, NetAddress, Port, unsigned char*, unsigned int) */
0x00005df0 lui gp, 2 |
0x00005df4 addiu gp, gp, 0x4d20 |
0x00005df8 addu gp, gp, t9 | gp += t9;
0x00005dfc addiu sp, sp, -0x120 |
0x00005e00 sw ra, 0x11c(sp) | *(var_11ch) = ra;
0x00005e04 sw s3, 0x118(sp) | *(var_118h) = s3;
0x00005e08 sw s2, 0x114(sp) | *(var_114h) = s2;
0x00005e0c sw s1, 0x110(sp) | *(var_110h) = s1;
0x00005e10 sw s0, 0x10c(sp) | *(var_10ch) = s0;
0x00005e14 addiu s1, sp, 0x20 | s1 = sp + 0x20;
0x00005e18 lw t9, -0x7ef8(gp) | t9 = *(gp);
0x00005e1c move s2, a1 | s2 = a1;
0x00005e20 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00005e24 move a1, a2 | a1 = a2;
0x00005e28 move s3, a0 | s3 = a0;
0x00005e2c sw zero, 0x104(sp) | *(var_104h) = 0;
0x00005e30 move a2, a3 | a2 = a3;
0x00005e34 addiu a3, sp, 0x104 | a3 = sp + aav.0x00000104;
0x00005e38 move a0, s1 | a0 = s1;
0x00005e3c lw s0, 0x134(sp) | s0 = *(arg_134h);
0x00005e40 jalr t9 | t9 ();
0x00005e44 addiu t8, zero, 0x80 | t8 = 0x80;
0x00005e48 lw gp, 0x18(sp) | gp = *(var_18h);
0x00005e4c move a0, s2 | a0 = s2;
0x00005e50 lw a1, 0x130(sp) | a1 = *(arg_130h);
0x00005e54 move a2, s0 | a2 = s0;
0x00005e58 lw t9, -0x7e50(gp) | t9 = sym.imp.sendto;
0x00005e5c move a3, zero | a3 = 0;
0x00005e60 sw s1, 0x10(sp) | *(var_10h) = s1;
0x00005e64 sw t8, 0x14(sp) | *(var_14h) = t8;
0x00005e68 jalr t9 | t9 ();
0x00005e6c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s0) {
0x00005e70 bne v0, s0, 0x5e94 |
0x00005e74 lw ra, 0x11c(sp) | ra = *(var_11ch);
0x00005e78 addiu v0, zero, 1 | v0 = 1;
0x00005e7c lw s3, 0x118(sp) | s3 = *(var_118h);
0x00005e80 lw s2, 0x114(sp) | s2 = *(var_114h);
0x00005e84 lw s1, 0x110(sp) | s1 = *(var_110h);
0x00005e88 lw s0, 0x10c(sp) | s0 = *(var_10ch);
0x00005e8c addiu sp, sp, 0x120 |
0x00005e90 jr ra | return v0;
| }
0x00005e94 lw a1, -0x7fd4(gp) | a1 = *(gp);
0x00005e98 addiu s1, sp, 0xa0 | s1 = sp + 0xa0;
0x00005e9c lw t9, -0x7ef0(gp) | t9 = sym.imp.sprintf
0x00005ea0 move a0, s1 | a0 = s1;
0x00005ea4 move a2, s2 | a2 = s2;
0x00005ea8 sw s0, 0x10(sp) | *(var_10h) = s0;
0x00005eac move a3, v0 | a3 = v0;
0x00005eb0 addiu a1, a1, -0x964 | a1 += -0x964;
0x00005eb4 jalr t9 | t9 ();
0x00005eb8 move a0, s3 | a0 = s3;
0x00005ebc lw t8, (s3) | t8 = *(s3);
0x00005ec0 move a1, s1 | a1 = s1;
0x00005ec4 lw t9, 0x10(t8) | t9 = *((t8 + 4));
0x00005ec8 move a2, zero | a2 = 0;
0x00005ecc jalr t9 | t9 ();
0x00005ed0 move v0, zero | v0 = 0;
0x00005ed4 lw ra, 0x11c(sp) | ra = *(var_11ch);
0x00005ed8 lw s3, 0x118(sp) | s3 = *(var_118h);
0x00005edc lw s2, 0x114(sp) | s2 = *(var_114h);
0x00005ee0 lw s1, 0x110(sp) | s1 = *(var_110h);
0x00005ee4 lw s0, 0x10c(sp) | s0 = *(var_10ch);
0x00005ee8 addiu sp, sp, 0x120 |
0x00005eec jr ra | return v0;
| }
[*] Function sprintf used 7 times libgroupsock.so.8.1.0