[*] Binary protection state of myDlinkEvent
Full RELRO Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function printf tear down of myDlinkEvent
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/myDlinkEvent @ 0x402bb4 */
| #include <stdint.h>
|
; (fcn) sym.blockStatus__MultiCastPackage__ () | void blockStatus_MultiCastPackage_ () {
| /* blockStatus(_MultiCastPackage_*) */
0x00402bb4 lui gp, 2 |
0x00402bb8 addiu gp, gp, -0x6b34 |
0x00402bbc addu gp, gp, t9 | gp += t9;
0x00402bc0 addiu sp, sp, -0x30 |
0x00402bc4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x00402bc8 sw fp, 0x28(sp) | *(var_28h) = fp;
0x00402bcc move fp, sp | fp = sp;
0x00402bd0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00402bd4 sw a0, 0x1c(fp) | *(arg_1ch) = a0;
0x00402bd8 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x00402bdc lw t8, (t8) | t8 = *(t8);
0x00402be0 sw t8, 0x24(fp) | *(arg_24h) = t8;
0x00402be4 lw t8, 0x1c(fp) | t8 = *(arg_1ch);
0x00402be8 lwl v0, 3(t8) | __asm ("lwl v0, 3(t8)");
0x00402bec move v1, v0 | v1 = v0;
0x00402bf0 lwr v1, (t8) | __asm ("lwr v1, (t8)");
0x00402bf4 move t8, v1 | t8 = v1;
0x00402bf8 andi t8, t8, 1 | t8 &= 1;
| if (t8 != 0) {
0x00402bfc beqz t8, 0x402c7c |
0x00402c00 nop |
0x00402c04 lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str._tmp_file_motion_event */
0x00402c08 addiu a0, t8, 0x38b0 | a0 = t8 + 0x38b0;
0x00402c0c lw t8, -0x7fd0(gp) | t8 = *(gp);
0x00402c10 addiu a1, t8, 0x35a0 | a1 = t8 + 0x35a0;
0x00402c14 lw t8, -0x7f24(gp) | t8 = sym.imp.fopen64;
0x00402c18 move t9, t8 | t9 = t8;
0x00402c1c jalr t9 | t9 ();
0x00402c20 nop |
0x00402c24 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402c28 move t8, v0 | t8 = v0;
0x00402c2c sw t8, 0x20(fp) | *(arg_20h) = t8;
0x00402c30 lw t8, 0x20(fp) | t8 = *(arg_20h);
| if (t8 == 0) {
0x00402c34 beqz t8, 0x402c7c | goto label_0;
| }
0x00402c38 nop |
0x00402c3c lw a0, 0x20(fp) | a0 = *(arg_20h);
0x00402c40 lw t8, -0x7f38(gp) | t8 = sym.imp.fclose;
0x00402c44 move t9, t8 | t9 = t8;
0x00402c48 jalr t9 | t9 ();
0x00402c4c nop |
0x00402c50 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402c54 lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str.e_1_36mBlock_MOTION_DETECTION_EVENT_ne_0m */
0x00402c58 addiu a0, t8, 0x38c8 | a0 = t8 + 0x38c8;
0x00402c5c lw t8, -0x7f68(gp) | t8 = sym.imp.printf
0x00402c60 move t9, t8 | t9 = t8;
0x00402c64 jalr t9 | t9 ();
0x00402c68 nop |
0x00402c6c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402c70 addiu t8, zero, 1 | t8 = 1;
0x00402c74 b 0x402c80 | goto label_1;
0x00402c78 nop |
| }
| label_0:
0x00402c7c move t8, zero | t8 = 0;
| label_1:
0x00402c80 move v0, t8 | v0 = t8;
0x00402c84 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x00402c88 lw v1, 0x24(fp) | v1 = *(arg_24h);
0x00402c8c lw t8, (t8) | t8 = *(t8);
| if (v1 != t8) {
0x00402c90 beq v1, t8, 0x402ca8 |
0x00402c94 nop |
0x00402c98 lw t8, -0x7f40(gp) | t8 = sym.imp.__stack_chk_fail;
0x00402c9c move t9, t8 | t9 = t8;
0x00402ca0 jalr t9 | t9 ();
0x00402ca4 nop |
| }
0x00402ca8 move sp, fp |
0x00402cac lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00402cb0 lw fp, 0x28(sp) | fp = *(var_28h);
0x00402cb4 addiu sp, sp, 0x30 |
0x00402cb8 jr ra | return v1;
0x00402cbc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/myDlinkEvent @ 0x40141c */
| #include <stdint.h>
|
; (fcn) sym.sendMulitcast_unsigned_char__unsigned_int__char_ () | void sendMulitcast_unsigned_char_unsigned_int_char_ () {
| /* sendMulitcast(unsigned char*, unsigned int, char*) */
0x0040141c lui gp, 2 |
0x00401420 addiu gp, gp, -0x539c |
0x00401424 addu gp, gp, t9 | gp += t9;
0x00401428 addiu sp, sp, -0x48 |
0x0040142c sw ra, 0x44(sp) | *(var_44h) = ra;
0x00401430 sw fp, 0x40(sp) | *(var_40h) = fp;
0x00401434 move fp, sp | fp = sp;
0x00401438 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0040143c sw a0, 0x2c(fp) | *(arg_2ch) = a0;
0x00401440 sw a1, 0x28(fp) | *(arg_28h) = a1;
0x00401444 sw a2, 0x24(fp) | *(arg_24h) = a2;
0x00401448 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x0040144c lw t8, (t8) | t8 = *(t8);
0x00401450 sw t8, 0x3c(fp) | *(arg_3ch) = t8;
0x00401454 lw t8, -0x7fd4(gp) | t8 = *(gp);
0x00401458 lhu t8, 0xe(t8) | t8 = *((t8 + 7));
0x0040145c move a0, t8 | a0 = t8;
0x00401460 lw t8, -0x7efc(gp) | t8 = sym.imp.htons;
0x00401464 move t9, t8 | t9 = t8;
0x00401468 jalr t9 | t9 ();
0x0040146c nop |
0x00401470 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00401474 move t8, v0 | t8 = v0;
0x00401478 move v0, t8 | v0 = t8;
0x0040147c lw t8, -0x7fd4(gp) | t8 = *(gp);
0x00401480 sh v0, 0xe(t8) | *((t8 + 14)) = v0;
0x00401484 lw t8, 0x2c(fp) | t8 = *(arg_2ch);
0x00401488 lw v0, -0x7fd4(gp) | v0 = *(gp);
0x0040148c lw a1, (v0) | a1 = *(v0);
0x00401490 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00401494 lw v1, 8(v0) | v1 = *((v0 + 2));
0x00401498 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x0040149c swl a1, 3(t8) | __asm ("swl a1, 3(t8)");
0x004014a0 swr a1, (t8) | __asm ("swr a1, (t8)");
0x004014a4 swl a0, 7(t8) | __asm ("swl a0, 7(t8)");
0x004014a8 swr a0, 4(t8) | __asm ("swr a0, 4(t8)");
0x004014ac swl v1, 0xb(t8) | __asm ("swl v1, 0xb(t8)");
0x004014b0 swr v1, 8(t8) | __asm ("swr v1, 8(t8)");
0x004014b4 swl v0, 0xf(t8) | __asm ("swl v0, 0xf(t8)");
0x004014b8 swr v0, 0xc(t8) | __asm ("swr v0, 0xc(t8)");
0x004014bc addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x004014c0 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.127.0.0.1 */
0x004014c4 addiu a0, v0, 0x34b0 | a0 = v0 + 0x34b0;
0x004014c8 lw a1, 0x24(fp) | a1 = *(arg_24h);
0x004014cc move a2, zero | a2 = 0;
0x004014d0 move a3, t8 | a3 = t8;
0x004014d4 lw t8, -0x7f78(gp) | t8 = sym.imp.getaddrinfo;
0x004014d8 move t9, t8 | t9 = t8;
0x004014dc jalr t9 | t9 ();
0x004014e0 nop |
0x004014e4 lw gp, 0x18(fp) | gp = *(arg_18h);
0x004014e8 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x004014ec lw t8, 4(t8) | t8 = *((t8 + 1));
0x004014f0 move a0, t8 | a0 = t8;
0x004014f4 addiu a1, zero, 1 | a1 = 1;
0x004014f8 move a2, zero | a2 = 0;
0x004014fc lw t8, -0x7f58(gp) | t8 = sym.imp.socket;
0x00401500 move t9, t8 | t9 = t8;
0x00401504 jalr t9 | t9 ();
0x00401508 nop |
0x0040150c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00401510 sw v0, 0x38(fp) | *(arg_38h) = v0;
0x00401514 addiu t8, zero, 1 | t8 = 1;
0x00401518 sw t8, 0x34(fp) | *(arg_34h) = t8;
0x0040151c addiu t8, fp, 0x34 | t8 = fp + 0x34;
0x00401520 addiu v0, zero, 4 | v0 = 4;
0x00401524 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00401528 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x0040152c ori a1, zero, 0xffff | a1 = 0xffff;
0x00401530 addiu a2, zero, 4 | a2 = 4;
0x00401534 move a3, t8 | a3 = t8;
0x00401538 lw t8, -0x7f3c(gp) | t8 = sym.imp.setsockopt;
0x0040153c move t9, t8 | t9 = t8;
0x00401540 jalr t9 | t9 ();
0x00401544 nop |
0x00401548 lw gp, 0x18(fp) | gp = *(arg_18h);
0x0040154c lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str.send_to__s_n */
0x00401550 addiu a0, t8, 0x34bc | a0 = t8 + 0x34bc;
0x00401554 lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str.127.0.0.1 */
0x00401558 addiu a1, t8, 0x34b0 | a1 = t8 + 0x34b0;
0x0040155c lw t8, -0x7f68(gp) | t8 = sym.imp.printf
0x00401560 move t9, t8 | t9 = t8;
0x00401564 jalr t9 | t9 ();
0x00401568 nop |
0x0040156c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00401570 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x00401574 lw v0, 0x14(t8) | v0 = *((t8 + 5));
0x00401578 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x0040157c lw t8, 0x10(t8) | t8 = *((t8 + 4));
0x00401580 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00401584 sw t8, 0x14(sp) | *(var_14h) = t8;
0x00401588 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x0040158c lw a1, 0x2c(fp) | a1 = *(arg_2ch);
0x00401590 lw a2, 0x28(fp) | a2 = *(arg_28h);
0x00401594 move a3, zero | a3 = 0;
0x00401598 lw t8, -0x7f2c(gp) | t8 = sym.imp.sendto;
0x0040159c move t9, t8 | t9 = t8;
0x004015a0 jalr t9 | t9 ();
0x004015a4 nop |
0x004015a8 lw gp, 0x18(fp) | gp = *(arg_18h);
0x004015ac move t8, v0 | t8 = v0;
0x004015b0 srl t8, t8, 0x1f | t8 >>= 0x1f;
0x004015b4 andi t8, t8, 0xff | t8 &= 0xff;
| if (t8 != 0) {
0x004015b8 beqz t8, 0x4015dc |
0x004015bc nop |
0x004015c0 lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str.sendto___sent_a_different_number_of_bytes_than_expected. */
0x004015c4 addiu a0, t8, 0x34c8 | a0 = t8 + 0x34c8;
0x004015c8 lw t8, -0x7f70(gp) | t8 = sym.imp.puts;
0x004015cc move t9, t8 | t9 = t8;
0x004015d0 jalr t9 | t9 ();
0x004015d4 nop |
0x004015d8 lw gp, 0x18(fp) | gp = *(arg_18h);
| }
0x004015dc lw t8, -0x7fd4(gp) | t8 = *(gp);
0x004015e0 sh zero, 0xe(t8) | *((t8 + 14)) = 0;
0x004015e4 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x004015e8 move a0, t8 | a0 = t8;
0x004015ec lw t8, -0x7f18(gp) | t8 = sym.imp.freeaddrinfo;
0x004015f0 move t9, t8 | t9 = t8;
0x004015f4 jalr t9 | t9 ();
0x004015f8 nop |
0x004015fc lw gp, 0x18(fp) | gp = *(arg_18h);
0x00401600 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x00401604 lw t8, -0x7f44(gp) | t8 = sym.imp.close;
0x00401608 move t9, t8 | t9 = t8;
0x0040160c jalr t9 | t9 ();
0x00401610 nop |
0x00401614 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00401618 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x0040161c lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00401620 lw t8, (t8) | t8 = *(t8);
| if (v0 != t8) {
0x00401624 beq v0, t8, 0x40163c |
0x00401628 nop |
0x0040162c lw t8, -0x7f40(gp) | t8 = sym.imp.__stack_chk_fail;
0x00401630 move t9, t8 | t9 = t8;
0x00401634 jalr t9 | t9 ();
0x00401638 nop |
| }
0x0040163c move sp, fp |
0x00401640 lw ra, 0x44(sp) | ra = *(var_44h);
0x00401644 lw fp, 0x40(sp) | fp = *(var_40h);
0x00401648 addiu sp, sp, 0x48 |
0x0040164c jr ra | return v0;
0x00401650 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/myDlinkEvent @ 0x4017f8 */
| #include <stdint.h>
|
; (fcn) sym.updateEventStatus_unsigned_short_ () | void updateEventStatus_unsigned_short_ () {
| /* updateEventStatus(unsigned short) */
0x004017f8 lui gp, 2 |
0x004017fc addiu gp, gp, -0x5778 |
0x00401800 addu gp, gp, t9 | gp += t9;
0x00401804 addiu sp, sp, -0x30 |
0x00401808 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0040180c sw fp, 0x28(sp) | *(var_28h) = fp;
0x00401810 move fp, sp | fp = sp;
0x00401814 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00401818 move t8, a0 | t8 = a0;
0x0040181c sh t8, 0x1c(fp) | *(arg_1ch) = t8;
0x00401820 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x00401824 lw t8, (t8) | t8 = *(t8);
0x00401828 sw t8, 0x24(fp) | *(arg_24h) = t8;
0x0040182c lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00401830 addiu v0, zero, 0x24 | v0 = 0x24;
0x00401834 sh v0, (t8) | *(t8) = v0;
0x00401838 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x0040183c addiu v0, zero, 2 | v0 = 2;
0x00401840 sh v0, 2(t8) | *((t8 + 2)) = v0;
0x00401844 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00401848 lhu v0, 0x1c(fp) | v0 = *(arg_1ch);
0x0040184c sh v0, 4(t8) | *((t8 + 4)) = v0;
0x00401850 lhu t8, 0x1c(fp) | t8 = *(arg_1ch);
0x00401854 lw v0, -0x7fd0(gp) | v0 = *(gp);
| /* str.updateEventStatus:_x_n */
0x00401858 addiu a0, v0, 0x3504 | a0 = v0 + 0x3504;
0x0040185c move a1, t8 | a1 = t8;
0x00401860 lw t8, -0x7f68(gp) | t8 = sym.imp.printf
0x00401864 move t9, t8 | t9 = t8;
0x00401868 jalr t9 | t9 ();
0x0040186c nop |
0x00401870 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401874 lw a0, -0x7fc8(gp) | a0 = *(gp);
0x00401878 addiu a1, zero, 6 | a1 = 6;
0x0040187c lw t8, -0x7fcc(gp) | t8 = sym.transNetworkOrder_unsigned_char__unsigned_int_;
0x00401880 move t9, t8 | t9 = t8;
0x00401884 jalr t9 | t9 ();
0x00401888 nop |
0x0040188c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401890 lw t8, -0x7fc4(gp) | t8 = *(gp);
0x00401894 lw v0, (t8) | v0 = *(t8);
0x00401898 lw t8, -0x7fd4(gp) | t8 = *(gp);
0x0040189c lhu t8, 0xe(t8) | t8 = *((t8 + 7));
0x004018a0 addu t8, v0, t8 | t8 = v0 + t8;
0x004018a4 lw v0, -0x7fc8(gp) | v0 = *(gp);
0x004018a8 lw v1, (v0) | v1 = *(v0);
0x004018ac swl v1, 3(t8) | __asm ("swl v1, 3(t8)");
0x004018b0 swr v1, (t8) | __asm ("swr v1, (t8)");
0x004018b4 lbu v1, 4(v0) | v1 = *((v0 + 4));
0x004018b8 sb v1, 4(t8) | *((t8 + 4)) = v1;
0x004018bc lbu v0, 5(v0) | v0 = *((v0 + 5));
0x004018c0 sb v0, 5(t8) | *((t8 + 5)) = v0;
0x004018c4 lw t8, -0x7fd4(gp) | t8 = *(gp);
0x004018c8 lhu v0, 0xe(t8) | v0 = *((t8 + 7));
0x004018cc addiu t8, zero, 6 | t8 = 6;
0x004018d0 andi t8, t8, 0xffff | t8 &= 0xffff;
0x004018d4 addu t8, v0, t8 | t8 = v0 + t8;
0x004018d8 andi v0, t8, 0xffff | v0 = t8 & 0xffff;
0x004018dc lw t8, -0x7fd4(gp) | t8 = *(gp);
0x004018e0 sh v0, 0xe(t8) | *((t8 + 14)) = v0;
0x004018e4 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x004018e8 lw v0, 0x24(fp) | v0 = *(arg_24h);
0x004018ec lw t8, (t8) | t8 = *(t8);
| if (v0 != t8) {
0x004018f0 beq v0, t8, 0x401908 |
0x004018f4 nop |
0x004018f8 lw t8, -0x7f40(gp) | t8 = sym.imp.__stack_chk_fail;
0x004018fc move t9, t8 | t9 = t8;
0x00401900 jalr t9 | t9 ();
0x00401904 nop |
| }
0x00401908 move sp, fp |
0x0040190c lw ra, 0x2c(sp) | ra = *(var_2ch);
0x00401910 lw fp, 0x28(sp) | fp = *(var_28h);
0x00401914 addiu sp, sp, 0x30 |
0x00401918 jr ra | return v0;
0x0040191c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/myDlinkEvent @ 0x401920 */
| #include <stdint.h>
|
; (fcn) sym.updateString_unsigned_short__char_const__int_ () | void updateString_unsigned_short_char_const_int_ () {
| /* updateString(unsigned short, char const*, int) */
0x00401920 lui gp, 2 |
0x00401924 addiu gp, gp, -0x58a0 |
0x00401928 addu gp, gp, t9 | gp += t9;
0x0040192c addiu sp, sp, -0x40 |
0x00401930 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00401934 sw fp, 0x38(sp) | *(var_38h) = fp;
0x00401938 sw s0, 0x34(sp) | *(var_34h) = s0;
0x0040193c move fp, sp | fp = sp;
0x00401940 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00401944 move t8, a0 | t8 = a0;
0x00401948 sw a1, 0x20(fp) | *(arg_20h) = a1;
0x0040194c sw a2, 0x1c(fp) | *(arg_1ch) = a2;
0x00401950 sh t8, 0x24(fp) | *(arg_24h) = t8;
0x00401954 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x00401958 lw t8, (t8) | t8 = *(t8);
0x0040195c sw t8, 0x2c(fp) | *(arg_2ch) = t8;
0x00401960 lw t8, -0x7fc0(gp) | t8 = *(gp);
0x00401964 lhu v0, 0x24(fp) | v0 = *(arg_24h);
0x00401968 sh v0, (t8) | *(t8) = v0;
0x0040196c lw a0, 0x20(fp) | a0 = *(arg_20h);
0x00401970 lw t8, -0x7f28(gp) | t8 = sym.imp.strlen;
0x00401974 move t9, t8 | t9 = t8;
0x00401978 jalr t9 | t9 ();
0x0040197c nop |
0x00401980 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401984 move t8, v0 | t8 = v0;
0x00401988 andi v0, t8, 0xffff | v0 = t8 & 0xffff;
0x0040198c lw t8, -0x7fc0(gp) | t8 = *(gp);
0x00401990 sh v0, 2(t8) | *((t8 + 2)) = v0;
0x00401994 lw t8, -0x7fd0(gp) | t8 = *(gp);
| /* str.updateString:_s_n */
0x00401998 addiu a0, t8, 0x351c | a0 = t8 + 0x351c;
0x0040199c lw a1, 0x20(fp) | a1 = *(arg_20h);
0x004019a0 lw t8, -0x7f68(gp) | t8 = sym.imp.printf
0x004019a4 move t9, t8 | t9 = t8;
0x004019a8 jalr t9 | t9 ();
0x004019ac nop |
0x004019b0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004019b4 lw a0, -0x7fc0(gp) | a0 = *(gp);
0x004019b8 addiu a1, zero, 0x10 | a1 = 0x10;
0x004019bc lw t8, -0x7fcc(gp) | t8 = sym.transNetworkOrder_unsigned_char__unsigned_int_;
0x004019c0 move t9, t8 | t9 = t8;
0x004019c4 jalr t9 | t9 ();
0x004019c8 nop |
0x004019cc lw gp, 0x10(fp) | gp = *(arg_10h);
0x004019d0 lw t8, 0x1c(fp) | t8 = *(arg_1ch);
0x004019d4 slti t8, t8, 0x100 | t8 = (t8 < 0x100) ? 1 : 0;
| if (t8 != 0) {
0x004019d8 beqz t8, 0x401a10 |
0x004019dc nop |
0x004019e0 lw t8, 0x1c(fp) | t8 = *(arg_1ch);
0x004019e4 lw v0, -0x7fc0(gp) | v0 = *(gp);
0x004019e8 addiu a0, v0, 4 | a0 = v0 + 4;
0x004019ec lw a1, 0x20(fp) | a1 = *(arg_20h);
0x004019f0 move a2, t8 | a2 = t8;
0x004019f4 lw t8, -0x7f04(gp) | t8 = sym.imp.memcpy;
0x004019f8 move t9, t8 | t9 = t8;
0x004019fc jalr t9 | t9 ();
0x00401a00 nop |
0x00401a04 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401a08 b 0x401a44 | goto label_0;
0x00401a0c nop |
| }
0x00401a10 lw v0, -0x7fc0(gp) | v0 = *(gp);
0x00401a14 lw t8, 0x20(fp) | t8 = *(arg_20h);
0x00401a18 addiu v1, v0, 4 | v1 = v0 + 4;
0x00401a1c move v0, t8 | v0 = t8;
0x00401a20 addiu t8, zero, 0x100 | t8 = 0x100;
0x00401a24 move a0, v1 | a0 = v1;
0x00401a28 move a1, v0 | a1 = v0;
0x00401a2c move a2, t8 | a2 = t8;
0x00401a30 lw t8, -0x7f04(gp) | t8 = sym.imp.memcpy;
0x00401a34 move t9, t8 | t9 = t8;
0x00401a38 jalr t9 | t9 ();
0x00401a3c nop |
0x00401a40 lw gp, 0x10(fp) | gp = *(arg_10h);
| label_0:
0x00401a44 lw t8, -0x7fc4(gp) | t8 = *(gp);
0x00401a48 lw v0, (t8) | v0 = *(t8);
0x00401a4c lw t8, -0x7fd4(gp) | t8 = *(gp);
0x00401a50 lhu t8, 0xe(t8) | t8 = *((t8 + 7));
0x00401a54 addu v0, v0, t8 | v0 += t8;
0x00401a58 lw t8, -0x7fc0(gp) | t8 = *(gp);
0x00401a5c move v1, v0 | v1 = v0;
0x00401a60 move v0, t8 | v0 = t8;
0x00401a64 addiu t8, zero, 0x104 | t8 = 0x104;
0x00401a68 move a0, v1 | a0 = v1;
0x00401a6c move a1, v0 | a1 = v0;
0x00401a70 move a2, t8 | a2 = t8;
0x00401a74 lw t8, -0x7f04(gp) | t8 = sym.imp.memcpy;
0x00401a78 move t9, t8 | t9 = t8;
0x00401a7c jalr t9 | t9 ();
0x00401a80 nop |
0x00401a84 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401a88 lw t8, -0x7fd4(gp) | t8 = *(gp);
0x00401a8c lhu s0, 0xe(t8) | s0 = *((t8 + 7));
0x00401a90 lw a0, 0x20(fp) | a0 = *(arg_20h);
0x00401a94 lw t8, -0x7f28(gp) | t8 = sym.imp.strlen;
0x00401a98 move t9, t8 | t9 = t8;
0x00401a9c jalr t9 | t9 ();
0x00401aa0 nop |
0x00401aa4 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00401aa8 move t8, v0 | t8 = v0;
0x00401aac andi t8, t8, 0xffff | t8 &= 0xffff;
0x00401ab0 addu t8, s0, t8 | t8 = s0 + t8;
0x00401ab4 andi t8, t8, 0xffff | t8 &= 0xffff;
0x00401ab8 addiu t8, t8, 4 | t8 += 4;
0x00401abc andi v0, t8, 0xffff | v0 = t8 & 0xffff;
0x00401ac0 lw t8, -0x7fd4(gp) | t8 = *(gp);
0x00401ac4 sh v0, 0xe(t8) | *((t8 + 14)) = v0;
0x00401ac8 lw t8, -0x7f00(gp) | t8 = *((gp - 8128));
0x00401acc lw v0, 0x2c(fp) | v0 = *(arg_2ch);
0x00401ad0 lw t8, (t8) | t8 = *(t8);
| if (v0 != t8) {
0x00401ad4 beq v0, t8, 0x401aec |
0x00401ad8 nop |
0x00401adc lw t8, -0x7f40(gp) | t8 = sym.imp.__stack_chk_fail;
0x00401ae0 move t9, t8 | t9 = t8;
0x00401ae4 jalr t9 | t9 ();
0x00401ae8 nop |
| }
0x00401aec move sp, fp |
0x00401af0 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00401af4 lw fp, 0x38(sp) | fp = *(var_38h);
0x00401af8 lw s0, 0x34(sp) | s0 = *(var_34h);
0x00401afc addiu sp, sp, 0x40 |
0x00401b00 jr ra | return v0;
0x00401b04 nop |
| }
[*] Function printf used 5 times myDlinkEvent