[*] Binary protection state of notifyEngine

  
  	No RELRO       Canary found      NX disabled  No PIE       No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of notifyEngine

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/notifyEngine @ 0x403904 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) main ()                          | int32_t main () {
    0x00403904 lui gp, 2                     |     
    0x00403908 addiu gp, gp, -0x574          |     
    0x0040390c addu gp, gp, t9               |     gp += t9;
    0x00403910 addiu sp, sp, -0xcc8          |     
    0x00403914 sw ra, 0xcc4(sp)              |     *(var_cc4h) = ra;
    0x00403918 sw fp, 0xcc0(sp)              |     *(var_cc0h) = fp;
    0x0040391c sw s1, 0xcbc(sp)              |     *(var_cbch) = s1;
    0x00403920 sw s0, 0xcb8(sp)              |     *(var_cb8h) = s0;
    0x00403924 move fp, sp                   |     fp = sp;
    0x00403928 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0040392c sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x00403930 sw a1, 0x20(fp)               |     *(arg_20h) = a1;
    0x00403934 lw t8, -0x7e60(gp)            |     t8 = *((gp - 8088));
    0x00403938 lw t8, (t8)                   |     t8 = *(t8);
    0x0040393c sw t8, 0xcb4(fp)              |     *(arg_cb4h) = t8;
    0x00403940 lw v0, 0x24(fp)               |     v0 = *(arg_24h);
    0x00403944 addiu t8, zero, 1             |     t8 = 1;
                                             |     if (v0 != t8) {
    0x00403948 beq v0, t8, 0x40395c          |         
    0x0040394c nop                           |         
    0x00403950 addiu s0, zero, -1            |         s0 = -1;
    0x00403954 b 0x404524                    |         goto label_2;
    0x00403958 nop                           |         
                                             |     }
    0x0040395c lw t8, -0x7fa0(gp)            |     t8 = sym.initSignal__;
    0x00403960 move t9, t8                   |     t9 = t8;
    0x00403964 jalr t9                       |     t9 ();
    0x00403968 nop                           |     
    0x0040396c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403970 move t8, v0                   |     t8 = v0;
    0x00403974 xori t8, t8, 1                |     t8 ^= 1;
    0x00403978 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x0040397c beqz t8, 0x403990             |         
    0x00403980 nop                           |         
    0x00403984 addiu s0, zero, -1            |         s0 = -1;
    0x00403988 b 0x404524                    |         goto label_2;
    0x0040398c nop                           |         
                                             |     }
    0x00403990 addiu a0, zero, 0x1c          |     a0 = 0x1c;
    0x00403994 lw t8, -0x7ee8(gp)            |     t8 = sym.imp.operator_new_unsigned_int_;
    0x00403998 move t9, t8                   |     t9 = t8;
    0x0040399c jalr t9                       |     t9 ();
    0x004039a0 nop                           |     
    0x004039a4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004039a8 move t8, v0                   |     t8 = v0;
    0x004039ac move s0, t8                   |     s0 = t8;
    0x004039b0 move a0, s0                   |     a0 = s0;
    0x004039b4 lw t8, -0x7f9c(gp)            |     t8 = *(gp);
    0x004039b8 move t9, t8                   |     t9 = t8;
    0x004039bc jalr t9                       |     t9 ();
    0x004039c0 nop                           |     
    0x004039c4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004039c8 sw s0, 0x34(fp)               |     *(arg_34h) = s0;
    0x004039cc lw t8, 0x20(fp)               |     t8 = *(arg_20h);
    0x004039d0 lw t8, (t8)                   |     t8 = *(t8);
    0x004039d4 addiu t8, t8, 0x11            |     t8 += 0x11;
    0x004039d8 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x004039dc lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x004039e0 lw t8, (t8)                   |     t8 = *(t8);
    0x004039e4 addiu t8, t8, 0x1b4           |     t8 += 0x1b4;
    0x004039e8 lw t8, (t8)                   |     t8 = *(t8);
    0x004039ec addiu v0, fp, 0x60            |     v0 = fp + 0x60;
    0x004039f0 move a0, v0                   |     a0 = v0;
    0x004039f4 lw a1, 0x34(fp)               |     a1 = *(arg_34h);
    0x004039f8 move t9, t8                   |     t9 = t8;
    0x004039fc jalr t9                       |     t9 ();
    0x00403a00 nop                           |     
    0x00403a04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a08 addiu t8, fp, 0x60            |     t8 = fp + 0x60;
    0x00403a0c move a0, t8                   |     a0 = t8;
    0x00403a10 lw t8, -0x7e68(gp)            |     t8 = *(gp);
    0x00403a14 move t9, t8                   |     t9 = t8;
    0x00403a18 jalr t9                       |     t9 ();
    0x00403a1c nop                           |     
    0x00403a20 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a24 move t8, v0                   |     t8 = v0;
    0x00403a28 addiu v0, fp, 0xa34           |     v0 = fp + 0xa34;
    0x00403a2c lw v1, 0x38(fp)               |     v1 = *(arg_38h);
    0x00403a30 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x00403a34 move a0, v0                   |     a0 = v0;
    0x00403a38 addiu a1, zero, 0x40          |     a1 = 0x40;
    0x00403a3c lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
                                             |     /* str._s_s */
    0x00403a40 addiu a2, v0, -0x6868         |     a2 = v0 + -0x6868;
    0x00403a44 move a3, t8                   |     a3 = t8;
    0x00403a48 lw t8, -0x7ea0(gp)            |     t8 = sym.imp.snprintf
    0x00403a4c move t9, t8                   |     t9 = t8;
    0x00403a50 jalr t9                       |     t9 ();
    0x00403a54 nop                           |     
    0x00403a58 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a5c addiu t8, fp, 0x60            |     t8 = fp + 0x60;
    0x00403a60 move a0, t8                   |     a0 = t8;
    0x00403a64 lw t8, -0x7eac(gp)            |     t8 = *((gp - 8107));
    0x00403a68 move t9, t8                   |     t9 = t8;
    0x00403a6c jalr t9                       |     t9 ();
    0x00403a70 nop                           |     
    0x00403a74 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a78 addiu t8, fp, 0x60            |     t8 = fp + 0x60;
    0x00403a7c move a0, t8                   |     a0 = t8;
    0x00403a80 lw t8, -0x7f98(gp)            |     t8 = *(gp);
    0x00403a84 move t9, t8                   |     t9 = t8;
    0x00403a88 jalr t9                       |     t9 ();
    0x00403a8c nop                           |     
    0x00403a90 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403a94 addiu v0, fp, 0x60            |     v0 = fp + 0x60;
    0x00403a98 addiu t8, fp, 0xa34           |     t8 = fp + 0xa34;
    0x00403a9c move a0, v0                   |     a0 = v0;
    0x00403aa0 move a1, t8                   |     a1 = t8;
    0x00403aa4 lw t8, -0x7f94(gp)            |     t8 = *(gp);
    0x00403aa8 move t9, t8                   |     t9 = t8;
    0x00403aac jalr t9                       |     t9 ();
    0x00403ab0 nop                           |     
    0x00403ab4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403ab8 move t8, v0                   |     t8 = v0;
    0x00403abc xori t8, t8, 1                |     t8 ^= 1;
    0x00403ac0 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403ac4 beqz t8, 0x403ad8             |         
    0x00403ac8 nop                           |         
    0x00403acc addiu s0, zero, -1            |         s0 = -1;
    0x00403ad0 b 0x404508                    |         goto label_3;
    0x00403ad4 nop                           |         
                                             |     }
    0x00403ad8 addiu t8, fp, 0x60            |     t8 = fp + 0x60;
    0x00403adc move a0, t8                   |     a0 = t8;
    0x00403ae0 lw t8, -0x7f90(gp)            |     t8 = *(gp);
    0x00403ae4 move t9, t8                   |     t9 = t8;
    0x00403ae8 jalr t9                       |     t9 ();
    0x00403aec nop                           |     
    0x00403af0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403af4 sw v0, 0x3c(fp)               |     *(arg_3ch) = v0;
    0x00403af8 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
                                             |     if (t8 < 0) {
    0x00403afc bgez t8, 0x403b10             |         
    0x00403b00 nop                           |         
    0x00403b04 addiu s0, zero, -1            |         s0 = -1;
    0x00403b08 b 0x404508                    |         goto label_3;
    0x00403b0c nop                           |         
                                             |     }
    0x00403b10 addiu t8, fp, 0x614           |     t8 = fp + 0x614;
    0x00403b14 move a0, t8                   |     a0 = t8;
    0x00403b18 lw t8, -0x7e80(gp)            |     t8 = *(gp);
    0x00403b1c move t9, t8                   |     t9 = t8;
    0x00403b20 jalr t9                       |     t9 ();
    0x00403b24 nop                           |     
    0x00403b28 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403b2c lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x00403b30 lw t8, (t8)                   |     t8 = *(t8);
    0x00403b34 addiu t8, t8, 0x25c           |     t8 += 0x25c;
    0x00403b38 lw t8, (t8)                   |     t8 = *(t8);
    0x00403b3c lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x00403b40 move t9, t8                   |     t9 = t8;
    0x00403b44 jalr t9                       |     t9 ();
    0x00403b48 nop                           |     
    0x00403b4c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403b50 move t8, v0                   |     t8 = v0;
    0x00403b54 addiu v0, fp, 0x614           |     v0 = fp + 0x614;
    0x00403b58 move a0, v0                   |     a0 = v0;
    0x00403b5c move a1, t8                   |     a1 = t8;
    0x00403b60 lw t8, -0x7f10(gp)            |     t8 = *(gp);
    0x00403b64 move t9, t8                   |     t9 = t8;
    0x00403b68 jalr t9                       |     t9 ();
    0x00403b6c nop                           |     
    0x00403b70 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403b74 move t8, v0                   |     t8 = v0;
    0x00403b78 srl t8, t8, 0x1f              |     t8 >>= 0x1f;
    0x00403b7c andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403b80 beqz t8, 0x403b94             |         
    0x00403b84 nop                           |         
    0x00403b88 addiu s0, zero, -1            |         s0 = -1;
    0x00403b8c b 0x4044ec                    |         goto label_4;
    0x00403b90 nop                           |         
                                             |     }
    0x00403b94 addiu t8, fp, 0x614           |     t8 = fp + 0x614;
    0x00403b98 move a0, t8                   |     a0 = t8;
    0x00403b9c lw t8, -0x7ecc(gp)            |     t8 = *(gp);
    0x00403ba0 move t9, t8                   |     t9 = t8;
    0x00403ba4 jalr t9                       |     t9 ();
    0x00403ba8 nop                           |     
    0x00403bac lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403bb0 move t8, v0                   |     t8 = v0;
    0x00403bb4 sw t8, 0x40(fp)               |     *(arg_40h) = t8;
    0x00403bb8 lw t8, 0x40(fp)               |     t8 = *(arg_40h);
                                             |     if (t8 < 0) {
    0x00403bbc bgez t8, 0x403bd0             |         
    0x00403bc0 nop                           |         
    0x00403bc4 addiu s0, zero, -1            |         s0 = -1;
    0x00403bc8 b 0x4044ec                    |         goto label_4;
    0x00403bcc nop                           |         
                                             |     }
    0x00403bd0 sw zero, 0x58(fp)             |     *(arg_58h) = 0;
    0x00403bd4 sw zero, 0x5c(fp)             |     *(arg_5ch) = 0;
    0x00403bd8 sw zero, 0x44(fp)             |     *(arg_44h) = 0;
    0x00403bdc sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x00403be0 addiu v0, fp, 0xab4           |     v0 = fp + 0xab4;
    0x00403be4 addiu t8, zero, 0x200         |     t8 = 0x200;
    0x00403be8 move a0, v0                   |     a0 = v0;
    0x00403bec move a1, zero                 |     a1 = 0;
    0x00403bf0 move a2, t8                   |     a2 = t8;
    0x00403bf4 lw t8, -0x7ef4(gp)            |     t8 = sym.imp.memset;
    0x00403bf8 move t9, t8                   |     t9 = t8;
    0x00403bfc jalr t9                       |     t9 ();
    0x00403c00 nop                           |     
    0x00403c04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403c08 addiu t8, fp, 0xf8            |     t8 = fp + 0xf8;
    0x00403c0c move a0, t8                   |     a0 = t8;
    0x00403c10 move a1, zero                 |     a1 = 0;
    0x00403c14 addiu a2, zero, 0x114         |     a2 = 0x114;
    0x00403c18 lw t8, -0x7ef4(gp)            |     t8 = sym.imp.memset;
    0x00403c1c move t9, t8                   |     t9 = t8;
    0x00403c20 jalr t9                       |     t9 ();
    0x00403c24 nop                           |     
    0x00403c28 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403c2c move a0, zero                 |     a0 = 0;
    0x00403c30 lw t8, -0x7ec4(gp)            |     t8 = sym.imp.time;
    0x00403c34 move t9, t8                   |     t9 = t8;
    0x00403c38 jalr t9                       |     t9 ();
    0x00403c3c nop                           |     
    0x00403c40 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403c44 move t8, v0                   |     t8 = v0;
    0x00403c48 addiu t8, t8, 0x1e            |     t8 += 0x1e;
    0x00403c4c sw t8, 0x1fc(fp)              |     *(arg_1fch) = t8;
    0x00403c50 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x00403c54 lw t8, (t8)                   |     t8 = *(t8);
    0x00403c58 addiu t8, t8, 0x260           |     t8 += 0x260;
    0x00403c5c lw t8, (t8)                   |     t8 = *(t8);
    0x00403c60 lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x00403c64 move t9, t8                   |     t9 = t8;
    0x00403c68 jalr t9                       |     t9 ();
    0x00403c6c nop                           |     
    0x00403c70 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403c74 move t8, v0                   |     t8 = v0;
    0x00403c78 move v0, t8                   |     v0 = t8;
    0x00403c7c lw t8, -0x7fd0(gp)            |     t8 = *(gp);
    0x00403c80 sw v0, (t8)                   |     *(t8) = v0;
    0x00403c84 lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str.Initialized */
    0x00403c88 addiu t8, t8, -0x6860         |     t8 += -0x6860;
    0x00403c8c sw t8, 0x6c(fp)               |     *(arg_6ch) = t8;
    0x00403c90 lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str.Changed */
    0x00403c94 addiu t8, t8, -0x6854         |     t8 += -0x6854;
    0x00403c98 sw t8, 0x70(fp)               |     *(arg_70h) = t8;
    0x00403c9c lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str.Deleted */
    0x00403ca0 addiu t8, t8, -0x684c         |     t8 += -0x684c;
    0x00403ca4 sw t8, 0x74(fp)               |     *(arg_74h) = t8;
    0x00403ca8 b 0x4044d0                    |     goto label_5;
    0x00403cac nop                           |     
                                             | label_1:
    0x00403cb0 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
    0x00403cb4 sb zero, (t8)                 |     *(t8) = 0;
    0x00403cb8 b 0x404290                    |     goto label_6;
    0x00403cbc nop                           |     
                                             | label_0:
    0x00403cc0 lw t8, 0x1fc(fp)              |     t8 = *(arg_1fch);
                                             |     if (t8 > 0) {
    0x00403cc4 blez t8, 0x403d44             |         
    0x00403cc8 nop                           |         
    0x00403ccc lw s0, 0x1fc(fp)              |         s0 = *(arg_1fch);
    0x00403cd0 move a0, zero                 |         a0 = 0;
    0x00403cd4 lw t8, -0x7ec4(gp)            |         t8 = sym.imp.time;
    0x00403cd8 move t9, t8                   |         t9 = t8;
    0x00403cdc jalr t9                       |         t9 ();
    0x00403ce0 nop                           |         
    0x00403ce4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403ce8 move t8, v0                   |         t8 = v0;
    0x00403cec subu t8, s0, t8               |         __asm ("subu t8, s0, t8");
    0x00403cf0 addiu t8, t8, -1              |         t8 += -1;
    0x00403cf4 sw t8, 0x48(fp)               |         *(arg_48h) = t8;
    0x00403cf8 lw t8, 0x48(fp)               |         t8 = *(arg_48h);
                                             |         if (t8 > 0) {
    0x00403cfc blez t8, 0x403d14             |             
    0x00403d00 nop                           |             
    0x00403d04 lw t8, 0x48(fp)               |             t8 = *(arg_48h);
    0x00403d08 sw t8, 0x58(fp)               |             *(arg_58h) = t8;
    0x00403d0c b 0x403d4c                    |             goto label_7;
    0x00403d10 nop                           |             
                                             |         }
    0x00403d14 addiu t8, fp, 0xf8            |         t8 = fp + 0xf8;
    0x00403d18 move a0, t8                   |         a0 = t8;
    0x00403d1c lw t8, -0x7f8c(gp)            |         t8 = sym.terminationSubscription_NotifySubscriptionInfo_;
    0x00403d20 move t9, t8                   |         t9 = t8;
    0x00403d24 jalr t9                       |         t9 ();
    0x00403d28 nop                           |         
    0x00403d2c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00403d30 lw t8, -0x7fd8(gp)            |         t8 = *(gp);
    0x00403d34 addiu v0, zero, 1             |         v0 = 1;
    0x00403d38 sb v0, (t8)                   |         *(t8) = v0;
    0x00403d3c b 0x4042a8                    |         goto label_8;
    0x00403d40 nop                           |         
                                             |     }
    0x00403d44 addiu t8, zero, 0xa           |     t8 = 0xa;
    0x00403d48 sw t8, 0x58(fp)               |     *(arg_58h) = t8;
                                             | label_7:
    0x00403d4c sw zero, 0x5c(fp)             |     *(arg_5ch) = 0;
    0x00403d50 addiu t8, fp, 0x78            |     t8 = fp + 0x78;
    0x00403d54 sw t8, 0x4c(fp)               |     *(arg_4ch) = t8;
    0x00403d58 sw zero, 0x30(fp)             |     *(arg_30h) = 0;
    0x00403d5c b 0x403d84                    |     goto label_9;
    0x00403d60 nop                           |     
                                             |     do {
    0x00403d64 lw v0, 0x4c(fp)               |         v0 = *(arg_4ch);
    0x00403d68 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x00403d6c sll t8, t8, 2                 |         t8 <<= 2;
    0x00403d70 addu t8, v0, t8               |         t8 = v0 + t8;
    0x00403d74 sw zero, (t8)                 |         *(t8) = 0;
    0x00403d78 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x00403d7c addiu t8, t8, 1               |         t8++;
    0x00403d80 sw t8, 0x30(fp)               |         *(arg_30h) = t8;
                                             | label_9:
    0x00403d84 addiu v0, zero, 0x20          |         v0 = 0x20;
    0x00403d88 lw t8, 0x30(fp)               |         t8 = *(arg_30h);
    0x00403d8c sltu t8, t8, v0               |         t8 = (t8 < v0) ? 1 : 0;
    0x00403d90 bnez t8, 0x403d64             |         
                                             |     } while (t8 != 0);
    0x00403d94 nop                           |     
    0x00403d98 lw v0, 0x40(fp)               |     v0 = *(arg_40h);
    0x00403d9c addiu t8, zero, 0x20          |     t8 = 0x20;
    0x00403da0 divu zero, v0, t8             |     __asm ("divu zero, v0, t8");
                                             |     if (t8 == 0) {
    0x00403da4 bnez t8, 0x403dac             |         
    0x00403da8 break 7                       |         __asm ("break 7");
                                             |     }
    0x00403dac mfhi t8                       |     __asm ("mfhi t8");
    0x00403db0 mflo v0                       |     __asm ("mflo v0");
    0x00403db4 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x00403db8 addiu v1, fp, 0xcb8           |     v1 = fp + 0xcb8;
    0x00403dbc addu t8, v1, t8               |     t8 = v1 + t8;
    0x00403dc0 lw v1, -0xc40(t8)             |     v1 = *((t8 - 784));
    0x00403dc4 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x00403dc8 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x00403dcc divu zero, a0, t8             |     __asm ("divu zero, a0, t8");
                                             |     if (t8 == 0) {
    0x00403dd0 bnez t8, 0x403dd8             |         
    0x00403dd4 break 7                       |         __asm ("break 7");
                                             |     }
    0x00403dd8 mfhi t8                       |     __asm ("mfhi t8");
    0x00403ddc addiu a0, zero, 1             |     a0 = 1;
    0x00403de0 sllv t8, a0, t8               |     t8 = a0 << t8;
    0x00403de4 or v1, v1, t8                 |     v1 |= t8;
    0x00403de8 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x00403dec addiu t9, fp, 0xcb8           |     t9 = fp + 0xcb8;
    0x00403df0 addu t8, t9, t8               |     t8 = t9 + t8;
    0x00403df4 sw v1, -0xc40(t8)             |     *((t8 - 3136)) = v1;
    0x00403df8 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x00403dfc addiu t8, zero, 0x20          |     t8 = 0x20;
    0x00403e00 divu zero, v0, t8             |     __asm ("divu zero, v0, t8");
                                             |     if (t8 == 0) {
    0x00403e04 bnez t8, 0x403e0c             |         
    0x00403e08 break 7                       |         __asm ("break 7");
                                             |     }
    0x00403e0c mfhi t8                       |     __asm ("mfhi t8");
    0x00403e10 mflo v0                       |     __asm ("mflo v0");
    0x00403e14 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x00403e18 addiu v1, fp, 0xcb8           |     v1 = fp + 0xcb8;
    0x00403e1c addu t8, v1, t8               |     t8 = v1 + t8;
    0x00403e20 lw v1, -0xc40(t8)             |     v1 = *((t8 - 784));
    0x00403e24 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x00403e28 addiu t8, zero, 0x20          |     t8 = 0x20;
    0x00403e2c divu zero, a0, t8             |     __asm ("divu zero, a0, t8");
                                             |     if (t8 == 0) {
    0x00403e30 bnez t8, 0x403e38             |         
    0x00403e34 break 7                       |         __asm ("break 7");
                                             |     }
    0x00403e38 mfhi t8                       |     __asm ("mfhi t8");
    0x00403e3c addiu a0, zero, 1             |     a0 = 1;
    0x00403e40 sllv t8, a0, t8               |     t8 = a0 << t8;
    0x00403e44 or v1, v1, t8                 |     v1 |= t8;
    0x00403e48 sll t8, v0, 2                 |     t8 = v0 << 2;
    0x00403e4c addiu t9, fp, 0xcb8           |     t9 = fp + 0xcb8;
    0x00403e50 addu t8, t9, t8               |     t8 = t9 + t8;
    0x00403e54 sw v1, -0xc40(t8)             |     *((t8 - 3136)) = v1;
    0x00403e58 lw v0, 0x40(fp)               |     v0 = *(arg_40h);
    0x00403e5c lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
    0x00403e60 slt t8, t8, v0                |     t8 = (t8 < v0) ? 1 : 0;
                                             |     if (t8 != 0) {
    0x00403e64 beqz t8, 0x403e78             |         
    0x00403e68 nop                           |         
    0x00403e6c lw t8, 0x40(fp)               |         t8 = *(arg_40h);
    0x00403e70 b 0x403e7c                    |         goto label_10;
    0x00403e74 nop                           |         
                                             |     }
    0x00403e78 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
                                             | label_10:
    0x00403e7c sw t8, 0x44(fp)               |     *(arg_44h) = t8;
    0x00403e80 lw t8, 0x44(fp)               |     t8 = *(arg_44h);
    0x00403e84 addiu v0, t8, 1               |     v0 = t8 + 1;
    0x00403e88 addiu t8, fp, 0x78            |     t8 = fp + 0x78;
    0x00403e8c addiu v1, fp, 0x58            |     v1 = fp + 0x58;
    0x00403e90 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x00403e94 move a0, v0                   |     a0 = v0;
    0x00403e98 move a1, t8                   |     a1 = t8;
    0x00403e9c move a2, zero                 |     a2 = 0;
    0x00403ea0 move a3, zero                 |     a3 = 0;
    0x00403ea4 lw t8, -0x7eb0(gp)            |     t8 = sym.imp.select;
    0x00403ea8 move t9, t8                   |     t9 = t8;
    0x00403eac jalr t9                       |     t9 ();
    0x00403eb0 nop                           |     
    0x00403eb4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403eb8 move t8, v0                   |     t8 = v0;
    0x00403ebc sw t8, 0x50(fp)               |     *(arg_50h) = t8;
    0x00403ec0 lw t8, 0x50(fp)               |     t8 = *(arg_50h);
    0x00403ec4 slt t8, zero, t8              |     t8 = (0 < t8) ? 1 : 0;
    0x00403ec8 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00403ecc beqz t8, 0x404290             |         
    0x00403ed0 nop                           |         
    0x00403ed4 lw v0, 0x3c(fp)               |         v0 = *(arg_3ch);
    0x00403ed8 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x00403edc divu zero, v0, t8             |         __asm ("divu zero, v0, t8");
                                             |         if (t8 == 0) {
    0x00403ee0 bnez t8, 0x403ee8             |             
    0x00403ee4 break 7                       |             __asm ("break 7");
                                             |         }
    0x00403ee8 mfhi t8                       |         __asm ("mfhi t8");
    0x00403eec mflo t8                       |         __asm ("mflo t8");
    0x00403ef0 sll t8, t8, 2                 |         t8 <<= 2;
    0x00403ef4 addiu v0, fp, 0xcb8           |         v0 = fp + 0xcb8;
    0x00403ef8 addu t8, v0, t8               |         t8 = v0 + t8;
    0x00403efc lw v0, -0xc40(t8)             |         v0 = *((t8 - 784));
    0x00403f00 lw v1, 0x3c(fp)               |         v1 = *(arg_3ch);
    0x00403f04 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x00403f08 divu zero, v1, t8             |         __asm ("divu zero, v1, t8");
                                             |         if (t8 == 0) {
    0x00403f0c bnez t8, 0x403f14             |             
    0x00403f10 break 7                       |             __asm ("break 7");
                                             |         }
    0x00403f14 mfhi t8                       |         __asm ("mfhi t8");
    0x00403f18 srav t8, v0, t8               |         __asm ("srav t8, v0, t8");
    0x00403f1c andi t8, t8, 1                |         t8 &= 1;
                                             |         if (t8 != 0) {
    0x00403f20 beqz t8, 0x404160             |             
    0x00403f24 nop                           |             
    0x00403f28 addiu v1, fp, 0x60            |             v1 = fp + 0x60;
    0x00403f2c addiu v0, fp, 0xab4           |             v0 = fp + 0xab4;
    0x00403f30 addiu t8, fp, 0x2c            |             t8 = fp + 0x2c;
    0x00403f34 sw zero, 0x10(sp)             |             *(var_10h) = 0;
    0x00403f38 sw zero, 0x14(sp)             |             *(var_14h) = 0;
    0x00403f3c move a0, v1                   |             a0 = v1;
    0x00403f40 move a1, v0                   |             a1 = v0;
    0x00403f44 addiu a2, zero, 0x200         |             a2 = 0x200;
    0x00403f48 move a3, t8                   |             a3 = t8;
    0x00403f4c lw t8, -0x7e90(gp)            |             t8 = *(gp);
    0x00403f50 move t9, t8                   |             t9 = t8;
    0x00403f54 jalr t9                       |             t9 ();
    0x00403f58 nop                           |             
    0x00403f5c lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00403f60 move t8, v0                   |             t8 = v0;
    0x00403f64 sw t8, 0x54(fp)               |             *(arg_54h) = t8;
    0x00403f68 lw t8, 0x54(fp)               |             t8 = *(arg_54h);
    0x00403f6c slt t8, zero, t8              |             t8 = (0 < t8) ? 1 : 0;
    0x00403f70 andi t8, t8, 0xff             |             t8 &= 0xff;
                                             |             if (t8 == 0) {
    0x00403f74 beqz t8, 0x404290             |                 goto label_6;
                                             |             }
    0x00403f78 nop                           |             
    0x00403f7c addiu t8, fp, 0xab4           |             t8 = fp + 0xab4;
    0x00403f80 lw t8, (t8)                   |             t8 = *(t8);
                                             |             if (t8 == 0) {
    0x00403f84 bnez t8, 0x403ff4             |                 
    0x00403f88 nop                           |                 
    0x00403f8c addiu v0, fp, 0xab4           |                 v0 = fp + 0xab4;
    0x00403f90 addiu t8, fp, 0xf8            |                 t8 = fp + 0xf8;
    0x00403f94 move a0, v0                   |                 a0 = v0;
    0x00403f98 move a1, t8                   |                 a1 = t8;
    0x00403f9c lw t8, -0x7f88(gp)            |                 t8 = sym.unsubscribeSubscription_UnsubscribeSubscription__NotifySubscriptionInfo_;
    0x00403fa0 move t9, t8                   |                 t9 = t8;
    0x00403fa4 jalr t9                       |                 t9 ();
    0x00403fa8 nop                           |                 
    0x00403fac lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403fb0 lw v0, 0x2c(fp)               |                 v0 = *(arg_2ch);
    0x00403fb4 addiu v1, fp, 0x60            |                 v1 = fp + 0x60;
    0x00403fb8 addiu t8, fp, 0xab4           |                 t8 = fp + 0xab4;
    0x00403fbc move a0, v1                   |                 a0 = v1;
    0x00403fc0 move a1, v0                   |                 a1 = v0;
    0x00403fc4 move a2, t8                   |                 a2 = t8;
    0x00403fc8 addiu a3, zero, 8             |                 a3 = 8;
    0x00403fcc lw t8, -0x7f24(gp)            |                 t8 = *(gp);
    0x00403fd0 move t9, t8                   |                 t9 = t8;
    0x00403fd4 jalr t9                       |                 t9 ();
    0x00403fd8 nop                           |                 
    0x00403fdc lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x00403fe0 lw t8, -0x7fd8(gp)            |                 t8 = *(gp);
    0x00403fe4 addiu v0, zero, 1             |                 v0 = 1;
    0x00403fe8 sb v0, (t8)                   |                 *(t8) = v0;
    0x00403fec b 0x40413c                    |                 goto label_11;
    0x00403ff0 nop                           |                 
                                             |             }
    0x00403ff4 addiu t8, fp, 0xab4           |             t8 = fp + 0xab4;
    0x00403ff8 lw v0, (t8)                   |             v0 = *(t8);
    0x00403ffc addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 == t8) {
    0x00404000 bne v0, t8, 0x404064          |                 
    0x00404004 nop                           |                 
    0x00404008 addiu v0, fp, 0xab4           |                 v0 = fp + 0xab4;
    0x0040400c addiu t8, fp, 0xf8            |                 t8 = fp + 0xf8;
    0x00404010 move a0, v0                   |                 a0 = v0;
    0x00404014 move a1, t8                   |                 a1 = t8;
    0x00404018 lw t8, -0x7f84(gp)            |                 t8 = sym.subscribeSubscription_SubscribeSubscription__NotifySubscriptionInfo_;
    0x0040401c move t9, t8                   |                 t9 = t8;
    0x00404020 jalr t9                       |                 t9 ();
    0x00404024 nop                           |                 
    0x00404028 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x0040402c lw v0, 0x2c(fp)               |                 v0 = *(arg_2ch);
    0x00404030 addiu v1, fp, 0x60            |                 v1 = fp + 0x60;
    0x00404034 addiu t8, fp, 0xab4           |                 t8 = fp + 0xab4;
    0x00404038 move a0, v1                   |                 a0 = v1;
    0x0040403c move a1, v0                   |                 a1 = v0;
    0x00404040 move a2, t8                   |                 a2 = t8;
    0x00404044 addiu a3, zero, 0x114         |                 a3 = 0x114;
    0x00404048 lw t8, -0x7f24(gp)            |                 t8 = *(gp);
    0x0040404c move t9, t8                   |                 t9 = t8;
    0x00404050 jalr t9                       |                 t9 ();
    0x00404054 nop                           |                 
    0x00404058 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x0040405c b 0x40413c                    |                 goto label_11;
    0x00404060 nop                           |                 
                                             |             }
    0x00404064 addiu t8, fp, 0xab4           |             t8 = fp + 0xab4;
    0x00404068 lw v0, (t8)                   |             v0 = *(t8);
    0x0040406c addiu t8, zero, 2             |             t8 = 2;
                                             |             if (v0 == t8) {
    0x00404070 bne v0, t8, 0x4040d4          |                 
    0x00404074 nop                           |                 
    0x00404078 addiu v0, fp, 0xab4           |                 v0 = fp + 0xab4;
    0x0040407c addiu t8, fp, 0xf8            |                 t8 = fp + 0xf8;
    0x00404080 move a0, v0                   |                 a0 = v0;
    0x00404084 move a1, t8                   |                 a1 = t8;
    0x00404088 lw t8, -0x7f80(gp)            |                 t8 = sym.renewSubscription_RenewSubscription__NotifySubscriptionInfo_;
    0x0040408c move t9, t8                   |                 t9 = t8;
    0x00404090 jalr t9                       |                 t9 ();
    0x00404094 nop                           |                 
    0x00404098 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x0040409c lw v0, 0x2c(fp)               |                 v0 = *(arg_2ch);
    0x004040a0 addiu v1, fp, 0x60            |                 v1 = fp + 0x60;
    0x004040a4 addiu t8, fp, 0xab4           |                 t8 = fp + 0xab4;
    0x004040a8 move a0, v1                   |                 a0 = v1;
    0x004040ac move a1, v0                   |                 a1 = v0;
    0x004040b0 move a2, t8                   |                 a2 = t8;
    0x004040b4 addiu a3, zero, 0x14          |                 a3 = 0x14;
    0x004040b8 lw t8, -0x7f24(gp)            |                 t8 = *(gp);
    0x004040bc move t9, t8                   |                 t9 = t8;
    0x004040c0 jalr t9                       |                 t9 ();
    0x004040c4 nop                           |                 
    0x004040c8 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x004040cc b 0x40413c                    |                 goto label_11;
    0x004040d0 nop                           |                 
                                             |             }
    0x004040d4 addiu t8, fp, 0xab4           |             t8 = fp + 0xab4;
    0x004040d8 lw v0, (t8)                   |             v0 = *(t8);
    0x004040dc addiu t8, zero, 3             |             t8 = 3;
                                             |             if (v0 == t8) {
    0x004040e0 bne v0, t8, 0x40413c          |                 
    0x004040e4 nop                           |                 
    0x004040e8 addiu v0, fp, 0xab4           |                 v0 = fp + 0xab4;
    0x004040ec addiu t8, fp, 0xf8            |                 t8 = fp + 0xf8;
    0x004040f0 move a0, v0                   |                 a0 = v0;
    0x004040f4 move a1, t8                   |                 a1 = t8;
    0x004040f8 lw t8, -0x7f7c(gp)            |                 t8 = sym.synchronizationSubscription_SynchronizationSubscription__NotifySubscriptionInfo_;
    0x004040fc move t9, t8                   |                 t9 = t8;
    0x00404100 jalr t9                       |                 t9 ();
    0x00404104 nop                           |                 
    0x00404108 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
    0x0040410c lw v0, 0x2c(fp)               |                 v0 = *(arg_2ch);
    0x00404110 addiu v1, fp, 0x60            |                 v1 = fp + 0x60;
    0x00404114 addiu t8, fp, 0xab4           |                 t8 = fp + 0xab4;
    0x00404118 move a0, v1                   |                 a0 = v1;
    0x0040411c move a1, v0                   |                 a1 = v0;
    0x00404120 move a2, t8                   |                 a2 = t8;
    0x00404124 addiu a3, zero, 8             |                 a3 = 8;
    0x00404128 lw t8, -0x7f24(gp)            |                 t8 = *(gp);
    0x0040412c move t9, t8                   |                 t9 = t8;
    0x00404130 jalr t9                       |                 t9 ();
    0x00404134 nop                           |                 
    0x00404138 lw gp, 0x18(fp)               |                 gp = *(arg_18h);
                                             |             }
                                             | label_11:
    0x0040413c lw t8, 0x2c(fp)               |             t8 = *(arg_2ch);
    0x00404140 move a0, t8                   |             a0 = t8;
    0x00404144 lw t8, -0x7ed0(gp)            |             t8 = sym.imp.close;
    0x00404148 move t9, t8                   |             t9 = t8;
    0x0040414c jalr t9                       |             t9 ();
    0x00404150 nop                           |             
    0x00404154 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00404158 b 0x404290                    |             goto label_6;
    0x0040415c nop                           |             
                                             |         }
    0x00404160 lw v0, 0x40(fp)               |         v0 = *(arg_40h);
    0x00404164 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x00404168 divu zero, v0, t8             |         __asm ("divu zero, v0, t8");
                                             |         if (t8 == 0) {
    0x0040416c bnez t8, 0x404174             |             
    0x00404170 break 7                       |             __asm ("break 7");
                                             |         }
    0x00404174 mfhi t8                       |         __asm ("mfhi t8");
    0x00404178 mflo t8                       |         __asm ("mflo t8");
    0x0040417c sll t8, t8, 2                 |         t8 <<= 2;
    0x00404180 addiu v0, fp, 0xcb8           |         v0 = fp + 0xcb8;
    0x00404184 addu t8, v0, t8               |         t8 = v0 + t8;
    0x00404188 lw v0, -0xc40(t8)             |         v0 = *((t8 - 784));
    0x0040418c lw v1, 0x40(fp)               |         v1 = *(arg_40h);
    0x00404190 addiu t8, zero, 0x20          |         t8 = 0x20;
    0x00404194 divu zero, v1, t8             |         __asm ("divu zero, v1, t8");
                                             |         if (t8 == 0) {
    0x00404198 bnez t8, 0x4041a0             |             
    0x0040419c break 7                       |             __asm ("break 7");
                                             |         }
    0x004041a0 mfhi t8                       |         __asm ("mfhi t8");
    0x004041a4 srav t8, v0, t8               |         __asm ("srav t8, v0, t8");
    0x004041a8 andi t8, t8, 1                |         t8 &= 1;
                                             |         if (t8 == 0) {
    0x004041ac beqz t8, 0x404290             |             goto label_6;
                                             |         }
    0x004041b0 nop                           |         
    0x004041b4 addiu t8, fp, 0x20c           |         t8 = fp + 0x20c;
    0x004041b8 move a0, t8                   |         a0 = t8;
    0x004041bc move a1, zero                 |         a1 = 0;
    0x004041c0 addiu a2, zero, 0x408         |         a2 = 0x408;
    0x004041c4 lw t8, -0x7ef4(gp)            |         t8 = sym.imp.memset;
    0x004041c8 move t9, t8                   |         t9 = t8;
    0x004041cc jalr t9                       |         t9 ();
    0x004041d0 nop                           |         
    0x004041d4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004041d8 lw t8, -0x7fd0(gp)            |         t8 = *(gp);
    0x004041dc lw v0, (t8)                   |         v0 = *(t8);
    0x004041e0 addiu v1, fp, 0x614           |         v1 = fp + 0x614;
    0x004041e4 addiu t8, fp, 0x20c           |         t8 = fp + 0x20c;
    0x004041e8 sw zero, 0x10(sp)             |         *(var_10h) = 0;
    0x004041ec move a0, v1                   |         a0 = v1;
    0x004041f0 move a1, v0                   |         a1 = v0;
    0x004041f4 move a2, t8                   |         a2 = t8;
    0x004041f8 move a3, zero                 |         a3 = 0;
    0x004041fc lw t8, -0x7e6c(gp)            |         t8 = *(gp);
    0x00404200 move t9, t8                   |         t9 = t8;
    0x00404204 jalr t9                       |         t9 ();
    0x00404208 nop                           |         
    0x0040420c lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404210 move t8, v0                   |         t8 = v0;
    0x00404214 slt t8, zero, t8              |         t8 = (0 < t8) ? 1 : 0;
    0x00404218 andi t8, t8, 0xff             |         t8 &= 0xff;
                                             |         if (t8 != 0) {
    0x0040421c beqz t8, 0x404278             |             
    0x00404220 nop                           |             
    0x00404224 lw v0, 0x20c(fp)              |             v0 = *(arg_20ch);
    0x00404228 lw t8, -0x7fd0(gp)            |             t8 = *(gp);
    0x0040422c lw t8, (t8)                   |             t8 = *(t8);
    0x00404230 and t8, v0, t8                |             t8 = v0 & t8;
                                             |             if (t8 == 0) {
    0x00404234 beqz t8, 0x404290             |                 goto label_6;
                                             |             }
    0x00404238 nop                           |             
    0x0040423c lw v0, 0x204(fp)              |             v0 = *(arg_204h);
    0x00404240 lw t8, 0x20c(fp)              |             t8 = *(arg_20ch);
    0x00404244 or t8, v0, t8                 |             t8 = v0 | t8;
    0x00404248 sw t8, 0x204(fp)              |             *(arg_204h) = t8;
    0x0040424c lw v0, 0xf8(fp)               |             v0 = *(arg_f8h);
    0x00404250 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x00404254 bne v0, t8, 0x404290          |                 goto label_6;
                                             |             }
    0x00404258 nop                           |             
    0x0040425c addiu t8, zero, 1             |             t8 = 1;
    0x00404260 sb t8, 0x208(fp)              |             *(arg_208h) = t8;
    0x00404264 lw t8, -0x7fdc(gp)            |             t8 = *(gp);
    0x00404268 addiu v0, zero, 1             |             v0 = 1;
    0x0040426c sb v0, (t8)                   |             *(t8) = v0;
    0x00404270 b 0x404290                    |             goto label_6;
    0x00404274 nop                           |             
                                             |         }
    0x00404278 addiu a0, zero, 1             |         a0 = 1;
    0x0040427c lw t8, -0x7e70(gp)            |         t8 = sym.imp.sleep;
    0x00404280 move t9, t8                   |         t9 = t8;
    0x00404284 jalr t9                       |         t9 ();
    0x00404288 nop                           |         
    0x0040428c lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
                                             | label_6:
    0x00404290 lw t8, -0x7fdc(gp)            |     t8 = *(gp);
    0x00404294 lbu t8, (t8)                  |     t8 = *(t8);
    0x00404298 xori t8, t8, 1                |     t8 ^= 1;
    0x0040429c andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x004042a0 bnez t8, 0x403cc0             |         goto label_0;
                                             |     }
    0x004042a4 nop                           |     
                                             | label_8:
    0x004042a8 lw v0, 0xf8(fp)               |     v0 = *(arg_f8h);
    0x004042ac addiu t8, zero, 2             |     t8 = 2;
                                             |     if (v0 != t8) {
    0x004042b0 beq v0, t8, 0x4042c4          |         
    0x004042b4 nop                           |         
    0x004042b8 lw t8, 0xf8(fp)               |         t8 = *(arg_f8h);
                                             |         if (t8 != 0) {
    0x004042bc bnez t8, 0x404398             |             goto label_12;
                                             |         }
    0x004042c0 nop                           |         
                                             |     }
    0x004042c4 addiu v0, fp, 0xa74           |     v0 = fp + 0xa74;
    0x004042c8 addiu t8, zero, 0x40          |     t8 = 0x40;
    0x004042cc move a0, v0                   |     a0 = v0;
    0x004042d0 move a1, zero                 |     a1 = 0;
    0x004042d4 move a2, t8                   |     a2 = t8;
    0x004042d8 lw t8, -0x7ef4(gp)            |     t8 = sym.imp.memset;
    0x004042dc move t9, t8                   |     t9 = t8;
    0x004042e0 jalr t9                       |     t9 ();
    0x004042e4 nop                           |     
    0x004042e8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004042ec addiu t8, fp, 0xa74           |     t8 = fp + 0xa74;
    0x004042f0 lw v0, -0x7fcc(gp)            |     v0 = *((gp - 8179));
                                             |     /* str.notifyEngine */
    0x004042f4 addiu v0, v0, -0x6954         |     v0 += -0x6954;
    0x004042f8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x004042fc lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x00404300 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x00404304 move a0, t8                   |     a0 = t8;
    0x00404308 addiu a1, zero, 0x40          |     a1 = 0x40;
    0x0040430c lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str._s_s_s */
    0x00404310 addiu a2, t8, -0x6844         |     a2 = t8 + -0x6844;
    0x00404314 lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str._tmp_ */
    0x00404318 addiu a3, t8, -0x683c         |     a3 = t8 + -0x683c;
    0x0040431c lw t8, -0x7ea0(gp)            |     t8 = sym.imp.snprintf
    0x00404320 move t9, t8                   |     t9 = t8;
    0x00404324 jalr t9                       |     t9 ();
    0x00404328 nop                           |     
    0x0040432c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00404330 addiu t8, fp, 0xa74           |     t8 = fp + 0xa74;
    0x00404334 move a0, t8                   |     a0 = t8;
    0x00404338 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.unlink;
    0x0040433c move t9, t8                   |     t9 = t8;
    0x00404340 jalr t9                       |     t9 ();
    0x00404344 nop                           |     
    0x00404348 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040434c lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x00404350 lw t8, -0x7ed0(gp)            |     t8 = sym.imp.close;
    0x00404354 move t9, t8                   |     t9 = t8;
    0x00404358 jalr t9                       |     t9 ();
    0x0040435c nop                           |     
    0x00404360 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00404364 addiu t8, fp, 0xa34           |     t8 = fp + 0xa34;
    0x00404368 move a0, t8                   |     a0 = t8;
    0x0040436c lw t8, -0x7ef0(gp)            |     t8 = sym.imp.unlink;
    0x00404370 move t9, t8                   |     t9 = t8;
    0x00404374 jalr t9                       |     t9 ();
    0x00404378 nop                           |     
    0x0040437c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00404380 lw a0, 0x40(fp)               |     a0 = *(arg_40h);
    0x00404384 lw t8, -0x7ed0(gp)            |     t8 = sym.imp.close;
    0x00404388 move t9, t8                   |     t9 = t8;
    0x0040438c jalr t9                       |     t9 ();
    0x00404390 nop                           |     
    0x00404394 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_12:
    0x00404398 lbu t8, 0x208(fp)             |     t8 = *(arg_208h);
                                             |     if (t8 != 0) {
    0x0040439c beqz t8, 0x404418             |         
    0x004043a0 nop                           |         
    0x004043a4 lbu t8, 0x200(fp)             |         t8 = *(arg_200h);
    0x004043a8 sll t8, t8, 2                 |         t8 <<= 2;
    0x004043ac addiu v0, fp, 0xcb8           |         v0 = fp + 0xcb8;
    0x004043b0 addu t8, v0, t8               |         t8 = v0 + t8;
    0x004043b4 lw t8, -0xc4c(t8)             |         t8 = *((t8 - 787));
    0x004043b8 addiu v0, fp, 0xf8            |         v0 = fp + 0xf8;
    0x004043bc addiu v1, v0, 4               |         v1 = v0 + 4;
    0x004043c0 addiu v0, fp, 0xf8            |         v0 = fp + 0xf8;
    0x004043c4 addiu v0, v0, 0x84            |         v0 += 0x84;
    0x004043c8 addiu a0, fp, 0xf8            |         a0 = fp + 0xf8;
    0x004043cc addiu a0, a0, 0x10c           |         a0 += 0x10c;
    0x004043d0 sw a0, 0x10(sp)               |         *(var_10h) = a0;
    0x004043d4 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x004043d8 sw a0, 0x14(sp)               |         *(var_14h) = a0;
    0x004043dc lw a0, 0x38(fp)               |         a0 = *(arg_38h);
    0x004043e0 move a1, v1                   |         a1 = v1;
    0x004043e4 move a2, v0                   |         a2 = v0;
    0x004043e8 move a3, t8                   |         a3 = t8;
    0x004043ec lw t8, -0x7f78(gp)            |         t8 = sym.notifyClient_char_const__char_const__char_const__char_const__int__BaseOnvif_;
    0x004043f0 move t9, t8                   |         t9 = t8;
    0x004043f4 jalr t9                       |         t9 ();
    0x004043f8 nop                           |         
    0x004043fc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00404400 lbu t8, 0x200(fp)             |         t8 = *(arg_200h);
                                             |         if (t8 == 0) {
    0x00404404 bnez t8, 0x404414             |             
    0x00404408 nop                           |             
    0x0040440c addiu t8, zero, 1             |             t8 = 1;
    0x00404410 sb t8, 0x200(fp)              |             *(arg_200h) = t8;
                                             |         }
    0x00404414 sb zero, 0x208(fp)            |         *(arg_208h) = 0;
                                             |     }
    0x00404418 lw v0, 0xf8(fp)               |     v0 = *(arg_f8h);
    0x0040441c addiu t8, zero, 2             |     t8 = 2;
                                             |     if (v0 != t8) {
    0x00404420 beq v0, t8, 0x404434          |         
    0x00404424 nop                           |         
    0x00404428 lw t8, 0xf8(fp)               |         t8 = *(arg_f8h);
                                             |         if (t8 != 0) {
    0x0040442c bnez t8, 0x4044d0             |             goto label_5;
                                             |         }
    0x00404430 nop                           |         
                                             |     }
    0x00404434 addiu t8, fp, 0x28            |     t8 = fp + 0x28;
    0x00404438 move a0, t8                   |     a0 = t8;
    0x0040443c move a1, zero                 |     a1 = 0;
    0x00404440 addiu a2, zero, 1             |     a2 = 1;
    0x00404444 lw t8, -0x7ef4(gp)            |     t8 = sym.imp.memset;
    0x00404448 move t9, t8                   |     t9 = t8;
    0x0040444c jalr t9                       |     t9 ();
    0x00404450 nop                           |     
    0x00404454 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00404458 lw t8, 0xf8(fp)               |     t8 = *(arg_f8h);
    0x0040445c andi t8, t8, 0xff             |     t8 &= 0xff;
    0x00404460 sb t8, 0x28(fp)               |     *(arg_28h) = t8;
    0x00404464 addiu t8, fp, 0xa74           |     t8 = fp + 0xa74;
    0x00404468 lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x0040446c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00404470 move a0, t8                   |     a0 = t8;
    0x00404474 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00404478 lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str._s_s */
    0x0040447c addiu a2, t8, -0x6868         |     a2 = t8 + -0x6868;
    0x00404480 lw t8, -0x7fcc(gp)            |     t8 = *((gp - 8179));
                                             |     /* str.Notify */
    0x00404484 addiu a3, t8, -0x6834         |     a3 = t8 + -0x6834;
    0x00404488 lw t8, -0x7ea0(gp)            |     t8 = sym.imp.snprintf
    0x0040448c move t9, t8                   |     t9 = t8;
    0x00404490 jalr t9                       |     t9 ();
    0x00404494 nop                           |     
    0x00404498 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040449c lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x004044a0 lw t8, (t8)                   |     t8 = *(t8);
    0x004044a4 addiu t8, t8, 0x34            |     t8 += 0x34;
    0x004044a8 lw t8, (t8)                   |     t8 = *(t8);
    0x004044ac addiu v1, fp, 0xa74           |     v1 = fp + 0xa74;
    0x004044b0 addiu v0, fp, 0x28            |     v0 = fp + 0x28;
    0x004044b4 lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x004044b8 move a1, v1                   |     a1 = v1;
    0x004044bc move a2, v0                   |     a2 = v0;
    0x004044c0 move t9, t8                   |     t9 = t8;
    0x004044c4 jalr t9                       |     t9 ();
    0x004044c8 nop                           |     
    0x004044cc lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_5:
    0x004044d0 lw t8, -0x7fd8(gp)            |     t8 = *(gp);
    0x004044d4 lbu t8, (t8)                  |     t8 = *(t8);
    0x004044d8 xori t8, t8, 1                |     t8 ^= 1;
    0x004044dc andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x004044e0 bnez t8, 0x403cb0             |         goto label_1;
                                             |     }
    0x004044e4 nop                           |     
    0x004044e8 move s0, zero                 |     s0 = 0;
                                             | label_4:
    0x004044ec addiu t8, fp, 0x614           |     t8 = fp + 0x614;
    0x004044f0 move a0, t8                   |     a0 = t8;
    0x004044f4 lw t8, -0x7f14(gp)            |     t8 = *(gp);
    0x004044f8 move t9, t8                   |     t9 = t8;
    0x004044fc jalr t9                       |     t9 ();
    0x00404500 nop                           |     
    0x00404504 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_3:
    0x00404508 addiu t8, fp, 0x60            |     t8 = fp + 0x60;
    0x0040450c move a0, t8                   |     a0 = t8;
    0x00404510 lw t8, -0x7f74(gp)            |     t8 = *(gp);
    0x00404514 move t9, t8                   |     t9 = t8;
    0x00404518 jalr t9                       |     t9 ();
    0x0040451c nop                           |     
    0x00404520 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_2:
    0x00404524 move t8, s0                   |     t8 = s0;
    0x00404528 move v0, t8                   |     v0 = t8;
    0x0040452c lw t8, -0x7e60(gp)            |     t8 = *((gp - 8088));
    0x00404530 lw v1, 0xcb4(fp)              |     v1 = *(arg_cb4h);
    0x00404534 lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x00404538 beq v1, t8, 0x404634          |         
    0x0040453c nop                           |         
    0x00404540 b 0x404624                    |         goto label_13;
    0x00404544 nop                           |         
                                             | label_13:
    0x00404624 lw t8, -0x7ebc(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x00404628 move t9, t8                   |         t9 = t8;
    0x0040462c jalr t9                       |         t9 ();
    0x00404630 nop                           |         
                                             |     }
    0x00404634 move sp, fp                   |     
    0x00404638 lw ra, 0xcc4(sp)              |     ra = *(var_cc4h);
    0x0040463c lw fp, 0xcc0(sp)              |     fp = *(var_cc0h);
    0x00404640 lw s1, 0xcbc(sp)              |     s1 = *(var_cbch);
    0x00404644 lw s0, 0xcb8(sp)              |     s0 = *(var_cb8h);
    0x00404648 addiu sp, sp, 0xcc8           |     
    0x0040464c jr ra                         |     return v1;
    0x00404650 nop                           |     
                                             | }
    ; assembly                                                                               | /* r2dec pseudo code output */
                                                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/notifyEngine @ 0x402158 */
                                                                                             | #include <stdint.h>
                                                                                             |  
    ; (fcn) sym.subscribeSubscription_SubscribeSubscription__NotifySubscriptionInfo_ ()      | void subscribeSubscription_SubscribeSubscription_NotifySubscriptionInfo_ () {
                                                                                             |     /* subscribeSubscription(SubscribeSubscription*, NotifySubscriptionInfo*) */
    0x00402158 lui gp, 2                                                                     |     
    0x0040215c addiu gp, gp, 0x1238                                                          |     
    0x00402160 addu gp, gp, t9                                                               |     gp += t9;
    0x00402164 addiu sp, sp, -0x30                                                           |     
    0x00402168 sw ra, 0x2c(sp)                                                               |     *(var_2ch) = ra;
    0x0040216c sw fp, 0x28(sp)                                                               |     *(var_28h) = fp;
    0x00402170 move fp, sp                                                                   |     fp = sp;
    0x00402174 sw gp, 0x10(sp)                                                               |     *(var_10h) = gp;
    0x00402178 sw a0, 0x1c(fp)                                                               |     *(arg_1ch) = a0;
    0x0040217c sw a1, 0x18(fp)                                                               |     *(arg_18h) = a1;
    0x00402180 lw t8, -0x7e60(gp)                                                            |     t8 = *((gp - 8088));
    0x00402184 lw t8, (t8)                                                                   |     t8 = *(t8);
    0x00402188 sw t8, 0x24(fp)                                                               |     *(arg_24h) = t8;
    0x0040218c lw t8, 0x18(fp)                                                               |     t8 = *(arg_18h);
    0x00402190 lw v0, (t8)                                                                   |     v0 = *(t8);
    0x00402194 addiu t8, zero, 1                                                             |     t8 = 1;
                                                                                             |     if (v0 != t8) {
    0x00402198 beq v0, t8, 0x4022b4                                                          |         
    0x0040219c nop                                                                           |         
    0x004021a0 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x004021a4 lw v0, (t8)                                                                   |         v0 = *(t8);
    0x004021a8 addiu t8, zero, 1                                                             |         t8 = 1;
                                                                                             |         if (v0 != t8) {
    0x004021ac bne v0, t8, 0x4022b4                                                          |             goto label_0;
                                                                                             |         }
    0x004021b0 nop                                                                           |         
    0x004021b4 lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x004021b8 addiu v0, zero, 1                                                             |         v0 = 1;
    0x004021bc sw v0, (t8)                                                                   |         *(t8) = v0;
    0x004021c0 lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x004021c4 addiu v0, t8, 4                                                               |         v0 = t8 + 4;
    0x004021c8 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x004021cc addiu t8, t8, 8                                                               |         t8 += 8;
    0x004021d0 move a0, v0                                                                   |         a0 = v0;
    0x004021d4 addiu a1, zero, 0x80                                                          |         a1 = 0x80;
    0x004021d8 lw v0, -0x7fcc(gp)                                                            |         v0 = *((gp - 8179));
                                                                                             |         /* esilref: '&s' */
    0x004021dc addiu a2, v0, -0x6a98                                                         |         a2 = v0 + -0x6a98;
    0x004021e0 move a3, t8                                                                   |         a3 = t8;
    0x004021e4 lw t8, -0x7ea0(gp)                                                            |         t8 = sym.imp.snprintf
    0x004021e8 move t9, t8                                                                   |         t9 = t8;
    0x004021ec jalr t9                                                                       |         t9 ();
    0x004021f0 nop                                                                           |         
    0x004021f4 lw gp, 0x10(fp)                                                               |         gp = *(arg_10h);
    0x004021f8 lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x004021fc addiu v0, t8, 0x84                                                            |         v0 = t8 + 0x84;
    0x00402200 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x00402204 addiu t8, t8, 0x88                                                            |         t8 += 0x88;
    0x00402208 move a0, v0                                                                   |         a0 = v0;
    0x0040220c addiu a1, zero, 0x80                                                          |         a1 = 0x80;
    0x00402210 lw v0, -0x7fcc(gp)                                                            |         v0 = *((gp - 8179));
                                                                                             |         /* esilref: '&s' */
    0x00402214 addiu a2, v0, -0x6a98                                                         |         a2 = v0 + -0x6a98;
    0x00402218 move a3, t8                                                                   |         a3 = t8;
    0x0040221c lw t8, -0x7ea0(gp)                                                            |         t8 = sym.imp.snprintf
    0x00402220 move t9, t8                                                                   |         t9 = t8;
    0x00402224 jalr t9                                                                       |         t9 ();
    0x00402228 nop                                                                           |         
    0x0040222c lw gp, 0x10(fp)                                                               |         gp = *(arg_10h);
    0x00402230 lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x00402234 sb zero, 0x108(t8)                                                            |         *((t8 + 264)) = 0;
    0x00402238 lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x0040223c lw t8, 0x10c(t8)                                                              |         t8 = *((t8 + 67));
                                                                                             |         if (t8 > 0) {
    0x00402240 blez t8, 0x402260                                                             |             
    0x00402244 nop                                                                           |             
    0x00402248 lw t8, 0x18(fp)                                                               |             t8 = *(arg_18h);
    0x0040224c addiu v0, zero, 1                                                             |             v0 = 1;
    0x00402250 sb v0, 0x110(t8)                                                              |             *((t8 + 272)) = v0;
    0x00402254 lw t8, -0x7fdc(gp)                                                            |             t8 = *(gp);
    0x00402258 addiu v0, zero, 1                                                             |             v0 = 1;
    0x0040225c sb v0, (t8)                                                                   |             *(t8) = v0;
                                                                                             |         }
    0x00402260 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x00402264 lw v1, 0x10c(t8)                                                              |         v1 = *((t8 + 67));
    0x00402268 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x0040226c addiu v0, t8, 0x108                                                           |         v0 = t8 + 0x108;
    0x00402270 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x00402274 addiu t8, t8, 0x110                                                           |         t8 += 0x110;
    0x00402278 move a0, v1                                                                   |         a0 = v1;
    0x0040227c move a1, v0                                                                   |         a1 = v0;
    0x00402280 move a2, t8                                                                   |         a2 = t8;
    0x00402284 lw a3, 0x18(fp)                                                               |         a3 = *(arg_18h);
    0x00402288 lw t8, -0x7fc8(gp)                                                            |         t8 = sym.updateTerminationTime_int__long__long__NotifySubscriptionInfo_;
    0x0040228c move t9, t8                                                                   |         t9 = t8;
    0x00402290 jalr t9                                                                       |         t9 ();
    0x00402294 nop                                                                           |         
    0x00402298 lw gp, 0x10(fp)                                                               |         gp = *(arg_10h);
    0x0040229c lw t8, 0x18(fp)                                                               |         t8 = *(arg_18h);
    0x004022a0 lw v0, (t8)                                                                   |         v0 = *(t8);
    0x004022a4 lw t8, 0x1c(fp)                                                               |         t8 = *(arg_1ch);
    0x004022a8 sw v0, 4(t8)                                                                  |         *((t8 + 4)) = v0;
    0x004022ac b 0x4022c0                                                                    |         goto label_1;
    0x004022b0 nop                                                                           |         
                                                                                             |     }
                                                                                             | label_0:
    0x004022b4 lw t8, 0x1c(fp)                                                               |     t8 = *(arg_1ch);
    0x004022b8 addiu v0, zero, 3                                                             |     v0 = 3;
    0x004022bc sw v0, 4(t8)                                                                  |     *((t8 + 4)) = v0;
                                                                                             | label_1:
    0x004022c0 lw t8, -0x7e60(gp)                                                            |     t8 = *((gp - 8088));
    0x004022c4 lw v0, 0x24(fp)                                                               |     v0 = *(arg_24h);
    0x004022c8 lw t8, (t8)                                                                   |     t8 = *(t8);
                                                                                             |     if (v0 != t8) {
    0x004022cc beq v0, t8, 0x4022e4                                                          |         
    0x004022d0 nop                                                                           |         
    0x004022d4 lw t8, -0x7ebc(gp)                                                            |         t8 = sym.imp.__stack_chk_fail;
    0x004022d8 move t9, t8                                                                   |         t9 = t8;
    0x004022dc jalr t9                                                                       |         t9 ();
    0x004022e0 nop                                                                           |         
                                                                                             |     }
    0x004022e4 move sp, fp                                                                   |     
    0x004022e8 lw ra, 0x2c(sp)                                                               |     ra = *(var_2ch);
    0x004022ec lw fp, 0x28(sp)                                                               |     fp = *(var_28h);
    0x004022f0 addiu sp, sp, 0x30                                                            |     
    0x004022f4 jr ra                                                                         |     return v0;
    0x004022f8 nop                                                                           |     
                                                                                             | }

[*] Function printf used 6 times notifyEngine