[*] Binary protection state of tz_dst
Full RELRO Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of tz_dst
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/tz_dst @ 0x401fbc */
| #include <stdint.h>
|
; (fcn) aav.0x00401fbc () | void aav_0x00401fbc () {
0x00401fbc lui gp, 2 |
0x00401fc0 addiu gp, gp, 0x3064 |
0x00401fc4 addu gp, gp, t9 | gp += t9;
0x00401fc8 addiu sp, sp, -0x88 |
0x00401fcc sw ra, 0x84(sp) | *(var_84h) = ra;
0x00401fd0 sw fp, 0x80(sp) | *(var_80h) = fp;
0x00401fd4 sw s0, 0x7c(sp) | *(var_7ch) = s0;
0x00401fd8 move fp, sp | fp = sp;
0x00401fdc sw gp, 0x10(sp) | *(var_10h) = gp;
0x00401fe0 sw a0, 0x24(fp) | *(arg_24h) = a0;
0x00401fe4 sw a1, 0x20(fp) | *(arg_20h) = a1;
0x00401fe8 sw a2, 0x1c(fp) | *(arg_1ch) = a2;
0x00401fec lw t8, -0x7ec0(gp) | t8 = *((gp - 8112));
0x00401ff0 lw t8, (t8) | t8 = *(t8);
0x00401ff4 sw t8, 0x74(fp) | *(arg_74h) = t8;
0x00401ff8 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00401ffc move a0, t8 | a0 = t8;
0x00402000 lw t8, -0x7fcc(gp) | t8 = *(gp);
0x00402004 move t9, t8 | t9 = t8;
0x00402008 jalr t9 | t9 ();
0x0040200c nop |
0x00402010 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402014 lw t8, 0x1c(fp) | t8 = *(arg_1ch);
0x00402018 lbu t8, (t8) | t8 = *(t8);
| if (t8 == 0) {
0x0040201c bnez t8, 0x402034 |
0x00402020 nop |
0x00402024 lw t8, 0x24(fp) | t8 = *(arg_24h);
0x00402028 sb zero, (t8) | *(t8) = 0;
0x0040202c b 0x4027e8 | goto label_0;
0x00402030 nop |
| }
0x00402034 addiu t8, fp, 0x34 | t8 = fp + 0x34;
0x00402038 move a0, t8 | a0 = t8;
0x0040203c lw t8, -0x7f54(gp) | t8 = *(gp);
0x00402040 move t9, t8 | t9 = t8;
0x00402044 jalr t9 | t9 ();
0x00402048 nop |
0x0040204c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402050 addiu v0, fp, 0x30 | v0 = fp + 0x30;
0x00402054 addiu t8, fp, 0x34 | t8 = fp + 0x34;
0x00402058 move a0, v0 | a0 = v0;
0x0040205c lw a1, 0x20(fp) | a1 = *(arg_20h);
0x00402060 move a2, t8 | a2 = t8;
0x00402064 lw t8, -0x7f18(gp) | t8 = *(gp);
0x00402068 move t9, t8 | t9 = t8;
0x0040206c jalr t9 | t9 ();
0x00402070 nop |
0x00402074 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402078 addiu v0, fp, 0x30 | v0 = fp + 0x30;
0x0040207c addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402080 move a0, v0 | a0 = v0;
0x00402084 move a1, t8 | a1 = t8;
0x00402088 addiu a2, zero, 0x3a | a2 = 0x3a;
0x0040208c lw t8, -0x7edc(gp) | t8 = sym.imp.seperate_std::string_const__std::vector_std::string__std::allocator_std::string_____char_;
0x00402090 move t9, t8 | t9 = t8;
0x00402094 jalr t9 | t9 ();
0x00402098 nop |
0x0040209c lw gp, 0x10(fp) | gp = *(arg_10h);
0x004020a0 move t8, v0 | t8 = v0;
0x004020a4 sw t8, 0x38(fp) | *(arg_38h) = t8;
0x004020a8 addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x004020ac move a0, t8 | a0 = t8;
0x004020b0 lw t8, -0x7ef4(gp) | t8 = *((gp - 8125));
0x004020b4 move t9, t8 | t9 = t8;
0x004020b8 jalr t9 | t9 ();
0x004020bc nop |
0x004020c0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004020c4 addiu t8, fp, 0x34 | t8 = fp + 0x34;
0x004020c8 move a0, t8 | a0 = t8;
0x004020cc lw t8, -0x7f38(gp) | t8 = *(gp);
0x004020d0 move t9, t8 | t9 = t8;
0x004020d4 jalr t9 | t9 ();
0x004020d8 nop |
0x004020dc lw gp, 0x10(fp) | gp = *(arg_10h);
0x004020e0 lw t8, 0x38(fp) | t8 = *(arg_38h);
| if (t8 != 0) {
0x004020e4 beqz t8, 0x4027a8 |
0x004020e8 nop |
0x004020ec addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004020f0 move a0, t8 | a0 = t8;
0x004020f4 move a1, zero | a1 = 0;
0x004020f8 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004020fc move t9, t8 | t9 = t8;
0x00402100 jalr t9 | t9 ();
0x00402104 nop |
0x00402108 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040210c move t8, v0 | t8 = v0;
0x00402110 move a0, t8 | a0 = t8;
0x00402114 move a1, zero | a1 = 0;
0x00402118 lw t8, -0x7ecc(gp) | t8 = *(gp);
0x0040211c move t9, t8 | t9 = t8;
0x00402120 jalr t9 | t9 ();
0x00402124 nop |
0x00402128 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040212c move t8, v0 | t8 = v0;
0x00402130 lb t8, (t8) | t8 = *(t8);
0x00402134 xori t8, t8, 0x2d | t8 ^= 0x2d;
0x00402138 sltiu t8, t8, 1 | t8 = (t8 < 1) ? 1 : 0;
0x0040213c sb t8, 0x2e(fp) | *(arg_2eh) = t8;
0x00402140 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402144 move a0, t8 | a0 = t8;
0x00402148 move a1, zero | a1 = 0;
0x0040214c lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00402150 move t9, t8 | t9 = t8;
0x00402154 jalr t9 | t9 ();
0x00402158 nop |
0x0040215c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402160 move t8, v0 | t8 = v0;
0x00402164 move a0, t8 | a0 = t8;
0x00402168 move a1, zero | a1 = 0;
0x0040216c lw t8, -0x7ecc(gp) | t8 = *(gp);
0x00402170 move t9, t8 | t9 = t8;
0x00402174 jalr t9 | t9 ();
0x00402178 nop |
0x0040217c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402180 move t8, v0 | t8 = v0;
0x00402184 lb v0, (t8) | v0 = *(t8);
0x00402188 addiu t8, zero, 0x2d | t8 = 0x2d;
| if (v0 != t8) {
0x0040218c beq v0, t8, 0x4021e8 |
0x00402190 nop |
0x00402194 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402198 move a0, t8 | a0 = t8;
0x0040219c move a1, zero | a1 = 0;
0x004021a0 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004021a4 move t9, t8 | t9 = t8;
0x004021a8 jalr t9 | t9 ();
0x004021ac nop |
0x004021b0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004021b4 move t8, v0 | t8 = v0;
0x004021b8 move a0, t8 | a0 = t8;
0x004021bc move a1, zero | a1 = 0;
0x004021c0 lw t8, -0x7ecc(gp) | t8 = *(gp);
0x004021c4 move t9, t8 | t9 = t8;
0x004021c8 jalr t9 | t9 ();
0x004021cc nop |
0x004021d0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004021d4 move t8, v0 | t8 = v0;
0x004021d8 lb v0, (t8) | v0 = *(t8);
0x004021dc addiu t8, zero, 0x2b | t8 = 0x2b;
| if (v0 != t8) {
0x004021e0 bne v0, t8, 0x402250 | goto label_1;
| }
0x004021e4 nop |
| }
0x004021e8 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004021ec move a0, t8 | a0 = t8;
0x004021f0 move a1, zero | a1 = 0;
0x004021f4 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004021f8 move t9, t8 | t9 = t8;
0x004021fc jalr t9 | t9 ();
0x00402200 nop |
0x00402204 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402208 move t8, v0 | t8 = v0;
0x0040220c move a0, t8 | a0 = t8;
0x00402210 lw t8, -0x7ec8(gp) | t8 = *(gp);
0x00402214 move t9, t8 | t9 = t8;
0x00402218 jalr t9 | t9 ();
0x0040221c nop |
0x00402220 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402224 move t8, v0 | t8 = v0;
0x00402228 addiu t8, t8, 1 | t8++;
0x0040222c move a0, t8 | a0 = t8;
0x00402230 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x00402234 move t9, t8 | t9 = t8;
0x00402238 jalr t9 | t9 ();
0x0040223c nop |
0x00402240 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402244 move t8, v0 | t8 = v0;
0x00402248 b 0x4022ac | goto label_2;
0x0040224c nop |
| label_1:
0x00402250 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402254 move a0, t8 | a0 = t8;
0x00402258 move a1, zero | a1 = 0;
0x0040225c lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00402260 move t9, t8 | t9 = t8;
0x00402264 jalr t9 | t9 ();
0x00402268 nop |
0x0040226c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402270 move t8, v0 | t8 = v0;
0x00402274 move a0, t8 | a0 = t8;
0x00402278 lw t8, -0x7ec8(gp) | t8 = *(gp);
0x0040227c move t9, t8 | t9 = t8;
0x00402280 jalr t9 | t9 ();
0x00402284 nop |
0x00402288 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040228c move t8, v0 | t8 = v0;
0x00402290 move a0, t8 | a0 = t8;
0x00402294 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x00402298 move t9, t8 | t9 = t8;
0x0040229c jalr t9 | t9 ();
0x004022a0 nop |
0x004022a4 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004022a8 move t8, v0 | t8 = v0;
| label_2:
0x004022ac sw t8, 0x3c(fp) | *(arg_3ch) = t8;
0x004022b0 lw t8, 0x38(fp) | t8 = *(arg_38h);
0x004022b4 sltiu t8, t8, 2 | t8 = (t8 < 2) ? 1 : 0;
| if (t8 == 0) {
0x004022b8 bnez t8, 0x402324 |
0x004022bc nop |
0x004022c0 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004022c4 move a0, t8 | a0 = t8;
0x004022c8 addiu a1, zero, 1 | a1 = 1;
0x004022cc lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004022d0 move t9, t8 | t9 = t8;
0x004022d4 jalr t9 | t9 ();
0x004022d8 nop |
0x004022dc lw gp, 0x10(fp) | gp = *(arg_10h);
0x004022e0 move t8, v0 | t8 = v0;
0x004022e4 move a0, t8 | a0 = t8;
0x004022e8 lw t8, -0x7ec8(gp) | t8 = *(gp);
0x004022ec move t9, t8 | t9 = t8;
0x004022f0 jalr t9 | t9 ();
0x004022f4 nop |
0x004022f8 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004022fc move t8, v0 | t8 = v0;
0x00402300 move a0, t8 | a0 = t8;
0x00402304 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x00402308 move t9, t8 | t9 = t8;
0x0040230c jalr t9 | t9 ();
0x00402310 nop |
0x00402314 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402318 move t8, v0 | t8 = v0;
0x0040231c b 0x402328 | goto label_3;
0x00402320 nop |
| }
0x00402324 move t8, zero | t8 = 0;
| label_3:
0x00402328 sw t8, 0x40(fp) | *(arg_40h) = t8;
0x0040232c lbu t8, 0x2e(fp) | t8 = *(arg_2eh);
| if (t8 != 0) {
0x00402330 beqz t8, 0x402358 |
0x00402334 nop |
0x00402338 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x0040233c addiu t8, zero, -0x3c | t8 = -0x3c;
0x00402340 mult v0, t8 | __asm ("mult v0, t8");
0x00402344 lw t8, 0x40(fp) | t8 = *(arg_40h);
0x00402348 mflo v0 | __asm ("mflo v0");
0x0040234c subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x00402350 b 0x402370 | goto label_4;
0x00402354 nop |
| }
0x00402358 lw t8, 0x3c(fp) | t8 = *(arg_3ch);
0x0040235c sll t8, t8, 2 | t8 <<= 2;
0x00402360 sll v0, t8, 4 | v0 = t8 << 4;
0x00402364 subu v0, v0, t8 | __asm ("subu v0, v0, t8");
0x00402368 lw t8, 0x40(fp) | t8 = *(arg_40h);
0x0040236c addu t8, v0, t8 | t8 = v0 + t8;
| label_4:
0x00402370 sw t8, 0x44(fp) | *(arg_44h) = t8;
0x00402374 addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x00402378 move a0, t8 | a0 = t8;
0x0040237c lw t8, -0x7f54(gp) | t8 = *(gp);
0x00402380 move t9, t8 | t9 = t8;
0x00402384 jalr t9 | t9 ();
0x00402388 nop |
0x0040238c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402390 addiu v0, fp, 0x34 | v0 = fp + 0x34;
0x00402394 addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x00402398 move a0, v0 | a0 = v0;
0x0040239c lw a1, 0x1c(fp) | a1 = *(arg_1ch);
0x004023a0 move a2, t8 | a2 = t8;
0x004023a4 lw t8, -0x7f18(gp) | t8 = *(gp);
0x004023a8 move t9, t8 | t9 = t8;
0x004023ac jalr t9 | t9 ();
0x004023b0 nop |
0x004023b4 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004023b8 addiu v0, fp, 0x34 | v0 = fp + 0x34;
0x004023bc addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004023c0 move a0, v0 | a0 = v0;
0x004023c4 move a1, t8 | a1 = t8;
0x004023c8 addiu a2, zero, 0x3a | a2 = 0x3a;
0x004023cc lw t8, -0x7edc(gp) | t8 = sym.imp.seperate_std::string_const__std::vector_std::string__std::allocator_std::string_____char_;
0x004023d0 move t9, t8 | t9 = t8;
0x004023d4 jalr t9 | t9 ();
0x004023d8 nop |
0x004023dc lw gp, 0x10(fp) | gp = *(arg_10h);
0x004023e0 move t8, v0 | t8 = v0;
0x004023e4 xori t8, t8, 2 | t8 ^= 2;
0x004023e8 sltiu t8, t8, 1 | t8 = (t8 < 1) ? 1 : 0;
0x004023ec andi s0, t8, 0xff | s0 = t8 & 0xff;
0x004023f0 addiu t8, fp, 0x34 | t8 = fp + 0x34;
0x004023f4 move a0, t8 | a0 = t8;
0x004023f8 lw t8, -0x7ef4(gp) | t8 = *((gp - 8125));
0x004023fc move t9, t8 | t9 = t8;
0x00402400 jalr t9 | t9 ();
0x00402404 nop |
0x00402408 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040240c addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x00402410 move a0, t8 | a0 = t8;
0x00402414 lw t8, -0x7f38(gp) | t8 = *(gp);
0x00402418 move t9, t8 | t9 = t8;
0x0040241c jalr t9 | t9 ();
0x00402420 nop |
0x00402424 lw gp, 0x10(fp) | gp = *(arg_10h);
| if (s0 != 0) {
0x00402428 beqz s0, 0x4027a0 |
0x0040242c nop |
0x00402430 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402434 move a0, t8 | a0 = t8;
0x00402438 move a1, zero | a1 = 0;
0x0040243c lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00402440 move t9, t8 | t9 = t8;
0x00402444 jalr t9 | t9 ();
0x00402448 nop |
0x0040244c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402450 move t8, v0 | t8 = v0;
0x00402454 move a0, t8 | a0 = t8;
0x00402458 move a1, zero | a1 = 0;
0x0040245c lw t8, -0x7ecc(gp) | t8 = *(gp);
0x00402460 move t9, t8 | t9 = t8;
0x00402464 jalr t9 | t9 ();
0x00402468 nop |
0x0040246c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402470 move t8, v0 | t8 = v0;
0x00402474 lb t8, (t8) | t8 = *(t8);
0x00402478 xori t8, t8, 0x2d | t8 ^= 0x2d;
0x0040247c sltiu t8, t8, 1 | t8 = (t8 < 1) ? 1 : 0;
0x00402480 sb t8, 0x2f(fp) | *(arg_2fh) = t8;
0x00402484 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402488 move a0, t8 | a0 = t8;
0x0040248c move a1, zero | a1 = 0;
0x00402490 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00402494 move t9, t8 | t9 = t8;
0x00402498 jalr t9 | t9 ();
0x0040249c nop |
0x004024a0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004024a4 move t8, v0 | t8 = v0;
0x004024a8 move a0, t8 | a0 = t8;
0x004024ac move a1, zero | a1 = 0;
0x004024b0 lw t8, -0x7ecc(gp) | t8 = *(gp);
0x004024b4 move t9, t8 | t9 = t8;
0x004024b8 jalr t9 | t9 ();
0x004024bc nop |
0x004024c0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004024c4 move t8, v0 | t8 = v0;
0x004024c8 lb v0, (t8) | v0 = *(t8);
0x004024cc addiu t8, zero, 0x2d | t8 = 0x2d;
| if (v0 != t8) {
0x004024d0 beq v0, t8, 0x40252c |
0x004024d4 nop |
0x004024d8 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004024dc move a0, t8 | a0 = t8;
0x004024e0 move a1, zero | a1 = 0;
0x004024e4 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004024e8 move t9, t8 | t9 = t8;
0x004024ec jalr t9 | t9 ();
0x004024f0 nop |
0x004024f4 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004024f8 move t8, v0 | t8 = v0;
0x004024fc move a0, t8 | a0 = t8;
0x00402500 move a1, zero | a1 = 0;
0x00402504 lw t8, -0x7ecc(gp) | t8 = *(gp);
0x00402508 move t9, t8 | t9 = t8;
0x0040250c jalr t9 | t9 ();
0x00402510 nop |
0x00402514 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402518 move t8, v0 | t8 = v0;
0x0040251c lb v0, (t8) | v0 = *(t8);
0x00402520 addiu t8, zero, 0x2b | t8 = 0x2b;
| if (v0 != t8) {
0x00402524 bne v0, t8, 0x402594 | goto label_5;
| }
0x00402528 nop |
| }
0x0040252c addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402530 move a0, t8 | a0 = t8;
0x00402534 move a1, zero | a1 = 0;
0x00402538 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x0040253c move t9, t8 | t9 = t8;
0x00402540 jalr t9 | t9 ();
0x00402544 nop |
0x00402548 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040254c move t8, v0 | t8 = v0;
0x00402550 move a0, t8 | a0 = t8;
0x00402554 lw t8, -0x7ec8(gp) | t8 = *(gp);
0x00402558 move t9, t8 | t9 = t8;
0x0040255c jalr t9 | t9 ();
0x00402560 nop |
0x00402564 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402568 move t8, v0 | t8 = v0;
0x0040256c addiu t8, t8, 1 | t8++;
0x00402570 move a0, t8 | a0 = t8;
0x00402574 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x00402578 move t9, t8 | t9 = t8;
0x0040257c jalr t9 | t9 ();
0x00402580 nop |
0x00402584 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402588 move t8, v0 | t8 = v0;
0x0040258c b 0x4025f0 | goto label_6;
0x00402590 nop |
| label_5:
0x00402594 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x00402598 move a0, t8 | a0 = t8;
0x0040259c move a1, zero | a1 = 0;
0x004025a0 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x004025a4 move t9, t8 | t9 = t8;
0x004025a8 jalr t9 | t9 ();
0x004025ac nop |
0x004025b0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004025b4 move t8, v0 | t8 = v0;
0x004025b8 move a0, t8 | a0 = t8;
0x004025bc lw t8, -0x7ec8(gp) | t8 = *(gp);
0x004025c0 move t9, t8 | t9 = t8;
0x004025c4 jalr t9 | t9 ();
0x004025c8 nop |
0x004025cc lw gp, 0x10(fp) | gp = *(arg_10h);
0x004025d0 move t8, v0 | t8 = v0;
0x004025d4 move a0, t8 | a0 = t8;
0x004025d8 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x004025dc move t9, t8 | t9 = t8;
0x004025e0 jalr t9 | t9 ();
0x004025e4 nop |
0x004025e8 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004025ec move t8, v0 | t8 = v0;
| label_6:
0x004025f0 sw t8, 0x48(fp) | *(arg_48h) = t8;
0x004025f4 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004025f8 move a0, t8 | a0 = t8;
0x004025fc addiu a1, zero, 1 | a1 = 1;
0x00402600 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00402604 move t9, t8 | t9 = t8;
0x00402608 jalr t9 | t9 ();
0x0040260c nop |
0x00402610 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402614 move t8, v0 | t8 = v0;
0x00402618 move a0, t8 | a0 = t8;
0x0040261c lw t8, -0x7ec8(gp) | t8 = *(gp);
0x00402620 move t9, t8 | t9 = t8;
0x00402624 jalr t9 | t9 ();
0x00402628 nop |
0x0040262c lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402630 move t8, v0 | t8 = v0;
0x00402634 move a0, t8 | a0 = t8;
0x00402638 lw t8, -0x7f50(gp) | t8 = sym.imp.atoi;
0x0040263c move t9, t8 | t9 = t8;
0x00402640 jalr t9 | t9 ();
0x00402644 nop |
0x00402648 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040264c sw v0, 0x4c(fp) | *(arg_4ch) = v0;
0x00402650 lbu t8, 0x2f(fp) | t8 = *(arg_2fh);
| if (t8 != 0) {
0x00402654 beqz t8, 0x40267c |
0x00402658 nop |
0x0040265c lw v0, 0x48(fp) | v0 = *(arg_48h);
0x00402660 addiu t8, zero, -0x3c | t8 = -0x3c;
0x00402664 mult v0, t8 | __asm ("mult v0, t8");
0x00402668 lw t8, 0x4c(fp) | t8 = *(arg_4ch);
0x0040266c mflo v0 | __asm ("mflo v0");
0x00402670 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x00402674 b 0x402694 | goto label_7;
0x00402678 nop |
| }
0x0040267c lw t8, 0x48(fp) | t8 = *(arg_48h);
0x00402680 sll t8, t8, 2 | t8 <<= 2;
0x00402684 sll v0, t8, 4 | v0 = t8 << 4;
0x00402688 subu v0, v0, t8 | __asm ("subu v0, v0, t8");
0x0040268c lw t8, 0x4c(fp) | t8 = *(arg_4ch);
0x00402690 addu t8, v0, t8 | t8 = v0 + t8;
| label_7:
0x00402694 sw t8, 0x50(fp) | *(arg_50h) = t8;
0x00402698 lw v0, 0x44(fp) | v0 = *(arg_44h);
0x0040269c lw t8, 0x50(fp) | t8 = *(arg_50h);
0x004026a0 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x004026a4 sw t8, 0x54(fp) | *(arg_54h) = t8;
0x004026a8 lw t8, 0x54(fp) | t8 = *(arg_54h);
| if (t8 < 0) {
0x004026ac bgez t8, 0x402734 |
0x004026b0 nop |
0x004026b4 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x004026b8 negu t8, t8 | __asm ("negu t8, t8");
0x004026bc sw t8, 0x54(fp) | *(arg_54h) = t8;
0x004026c0 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x004026c4 lui v0, 0x8888 | v0 = 0x88888889;
0x004026c8 ori v0, v0, 0x8889 |
0x004026cc mult t8, v0 | __asm ("mult t8, v0");
0x004026d0 mfhi v0 | __asm ("mfhi v0");
0x004026d4 addu v0, v0, t8 | v0 += t8;
0x004026d8 sra v0, v0, 5 | v0 >>= 5;
0x004026dc sra t8, t8, 0x1f | t8 >>= 0x1f;
0x004026e0 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x004026e4 sw t8, 0x58(fp) | *(arg_58h) = t8;
0x004026e8 lw v0, 0x58(fp) | v0 = *(arg_58h);
0x004026ec addiu t8, zero, -0x3c | t8 = -0x3c;
0x004026f0 mult v0, t8 | __asm ("mult v0, t8");
0x004026f4 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x004026f8 mflo v0 | __asm ("mflo v0");
0x004026fc addu t8, v0, t8 | t8 = v0 + t8;
0x00402700 sw t8, 0x5c(fp) | *(arg_5ch) = t8;
0x00402704 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x00402708 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
| /* str.__02d:_02d */
0x0040270c addiu a1, t8, -0x6d68 | a1 = t8 + -0x6d68;
0x00402710 lw a2, 0x58(fp) | a2 = *(arg_58h);
0x00402714 lw a3, 0x5c(fp) | a3 = *(arg_5ch);
0x00402718 lw t8, -0x7f3c(gp) | t8 = sym.imp.sprintf
0x0040271c move t9, t8 | t9 = t8;
0x00402720 jalr t9 | t9 ();
0x00402724 nop |
0x00402728 lw gp, 0x10(fp) | gp = *(arg_10h);
0x0040272c b 0x4027a0 | goto label_8;
0x00402730 nop |
| }
0x00402734 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x00402738 lui v0, 0x8888 | v0 = 0x88888889;
0x0040273c ori v0, v0, 0x8889 |
0x00402740 mult t8, v0 | __asm ("mult t8, v0");
0x00402744 mfhi v0 | __asm ("mfhi v0");
0x00402748 addu v0, v0, t8 | v0 += t8;
0x0040274c sra v0, v0, 5 | v0 >>= 5;
0x00402750 sra t8, t8, 0x1f | t8 >>= 0x1f;
0x00402754 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x00402758 sw t8, 0x60(fp) | *(arg_60h) = t8;
0x0040275c lw v0, 0x60(fp) | v0 = *(arg_60h);
0x00402760 addiu t8, zero, -0x3c | t8 = -0x3c;
0x00402764 mult v0, t8 | __asm ("mult v0, t8");
0x00402768 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x0040276c mflo v0 | __asm ("mflo v0");
0x00402770 addu t8, v0, t8 | t8 = v0 + t8;
0x00402774 sw t8, 0x64(fp) | *(arg_64h) = t8;
0x00402778 lw a0, 0x24(fp) | a0 = *(arg_24h);
0x0040277c lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
| /* str._02d:_02d */
0x00402780 addiu a1, t8, -0x6d5c | a1 = t8 + -0x6d5c;
0x00402784 lw a2, 0x60(fp) | a2 = *(arg_60h);
0x00402788 lw a3, 0x64(fp) | a3 = *(arg_64h);
0x0040278c lw t8, -0x7f3c(gp) | t8 = sym.imp.sprintf
0x00402790 move t9, t8 | t9 = t8;
0x00402794 jalr t9 | t9 ();
0x00402798 nop |
0x0040279c lw gp, 0x10(fp) | gp = *(arg_10h);
| }
| label_8:
0x004027a0 b 0x4027e8 | goto label_0;
0x004027a4 nop |
| }
0x004027a8 lw t8, -0x7f10(gp) | t8 = *((gp - 8132));
0x004027ac lw t8, (t8) | t8 = *(t8);
0x004027b0 move a0, t8 | a0 = t8;
0x004027b4 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
| /* str.OOPS__Invalid_std_offset:__s_n */
0x004027b8 addiu a1, t8, -0x6d50 | a1 = t8 + -0x6d50;
0x004027bc lw a2, 0x20(fp) | a2 = *(arg_20h);
0x004027c0 lw t8, -0x7f34(gp) | t8 = sym.imp.fprintf;
0x004027c4 move t9, t8 | t9 = t8;
0x004027c8 jalr t9 | t9 ();
0x004027cc nop |
0x004027d0 lw gp, 0x10(fp) | gp = *(arg_10h);
0x004027d4 addiu a0, zero, 1 | a0 = 1;
0x004027d8 lw t8, -0x7f40(gp) | t8 = sym.imp.exit;
0x004027dc move t9, t8 | t9 = t8;
0x004027e0 jalr t9 | t9 ();
0x004027e4 nop |
| label_0:
0x004027e8 addiu t8, fp, 0x68 | t8 = fp + 0x68;
0x004027ec move a0, t8 | a0 = t8;
0x004027f0 lw t8, -0x7fc4(gp) | t8 = *(gp);
0x004027f4 move t9, t8 | t9 = t8;
0x004027f8 jalr t9 | t9 ();
0x004027fc nop |
0x00402800 lw gp, 0x10(fp) | gp = *(arg_10h);
0x00402804 lw t8, -0x7ec0(gp) | t8 = *((gp - 8112));
0x00402808 lw v0, 0x74(fp) | v0 = *(arg_74h);
0x0040280c lw t8, (t8) | t8 = *(t8);
| if (v0 != t8) {
0x00402810 beq v0, t8, 0x40291c |
0x00402814 nop |
0x00402818 b 0x40290c | goto label_9;
0x0040281c nop |
| label_9:
0x0040290c lw t8, -0x7f08(gp) | t8 = sym.imp.__stack_chk_fail;
0x00402910 move t9, t8 | t9 = t8;
0x00402914 jalr t9 | t9 ();
0x00402918 nop |
| }
0x0040291c move sp, fp |
0x00402920 lw ra, 0x84(sp) | ra = *(var_84h);
0x00402924 lw fp, 0x80(sp) | fp = *(var_80h);
0x00402928 lw s0, 0x7c(sp) | s0 = *(var_7ch);
0x0040292c addiu sp, sp, 0x88 |
0x00402930 jr ra | return v0;
0x00402934 nop |
| }
[*] Function sprintf used 3 times tz_dst