[*] Binary protection state of vdo-mask-client
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of vdo-mask-client
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/vdo-mask-client @ 0xa60 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main () {
| /* [13] -r-x section size 5312 named .text */
0x00000a60 lui gp, 2 |
0x00000a64 addiu gp, gp, -0x5a50 |
0x00000a68 addu gp, gp, t9 | gp += t9;
0x00000a6c addiu sp, sp, -0x2f0 |
0x00000a70 addiu v0, zero, 2 | v0 = 2;
0x00000a74 sw s2, 0x2d0(sp) | *(var_2d0h) = s2;
0x00000a78 lw s2, -0x7f74(gp) | s2 = *((gp - 8157));
0x00000a7c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00000a80 sw s1, 0x2cc(sp) | *(var_2cch) = s1;
0x00000a84 lw v1, (s2) | v1 = *(s2);
0x00000a88 addiu s1, zero, -1 | s1 = -1;
0x00000a8c sw v1, 0x2c4(sp) | *(var_2c4h) = v1;
0x00000a90 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000a94 sw ra, 0x2ec(sp) | *(var_2ech) = ra;
0x00000a98 addiu v1, v1, 0x214c | v1 += 0x214c;
0x00000a9c sw v1, 0x84(sp) | *(var_84h) = v1;
0x00000aa0 addiu v1, sp, 0x38 | v1 = sp + 0x38;
0x00000aa4 sw v1, 0x94(sp) | *(var_94h) = v1;
0x00000aa8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000aac sw a0, 0x2f0(sp) | *(arg_2f0h) = a0;
0x00000ab0 addiu v1, v1, 0x2150 | v1 += str.Channel_ID;
0x00000ab4 sw v1, 0x98(sp) | *(var_98h) = v1;
0x00000ab8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000abc sw a1, 0x2c(sp) | *(var_2ch) = a1;
0x00000ac0 addiu v1, v1, 0x217c | v1 += 0x217c;
0x00000ac4 sw v1, 0xa0(sp) | *(var_a0h) = v1;
0x00000ac8 addiu v1, zero, 0x61 | v1 = 0x61;
0x00000acc sb v1, 0xa4(sp) | *(var_a4h) = v1;
0x00000ad0 addiu v1, sp, 0x3c | v1 = sp + 0x3c;
0x00000ad4 sw v1, 0xb0(sp) | *(var_b0h) = v1;
0x00000ad8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000adc sw v0, 0x90(sp) | *(var_90h) = v0;
0x00000ae0 addiu v1, v1, 0x215c | v1 += str.Mask_square_area_index;
0x00000ae4 sw v1, 0xb4(sp) | *(var_b4h) = v1;
0x00000ae8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000aec sw v0, 0xac(sp) | *(var_ach) = v0;
0x00000af0 addiu v1, v1, 0x2174 | v1 += str.polygon_area;
0x00000af4 sw v1, 0xbc(sp) | *(var_bch) = v1;
0x00000af8 addiu v1, zero, 0x70 | v1 = 0x70;
0x00000afc sb v1, 0xc0(sp) | *(var_c0h) = v1;
0x00000b00 addiu v1, sp, 0x4c | v1 = sp + 0x4c;
0x00000b04 sw v1, 0xcc(sp) | *(var_cch) = v1;
0x00000b08 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b0c sw v0, 0xc8(sp) | *(var_c8h) = v0;
0x00000b10 addiu v1, v1, 0x2184 | v1 += str.Mask_polygon_area_index;
0x00000b14 sw v1, 0xd0(sp) | *(var_d0h) = v1;
0x00000b18 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b1c sw fp, 0x2e8(sp) | *(var_2e8h) = fp;
0x00000b20 addiu v1, v1, 0x219c | v1 += str.clear;
0x00000b24 sw s7, 0x2e4(sp) | *(var_2e4h) = s7;
0x00000b28 sw s6, 0x2e0(sp) | *(var_2e0h) = s6;
0x00000b2c sw s5, 0x2dc(sp) | *(var_2dch) = s5;
0x00000b30 sw s4, 0x2d8(sp) | *(var_2d8h) = s4;
0x00000b34 sw s3, 0x2d4(sp) | *(var_2d4h) = s3;
0x00000b38 sw s0, 0x2c8(sp) | *(var_2c8h) = s0;
0x00000b3c sw zero, 0x34(sp) | *(var_34h) = 0;
0x00000b40 sw s1, 0x38(sp) | *(var_38h) = s1;
0x00000b44 sw v1, 0xd8(sp) | *(var_d8h) = v1;
0x00000b48 addiu v1, zero, 0x63 | v1 = 0x63;
0x00000b4c sb v1, 0xdc(sp) | *(var_dch) = v1;
0x00000b50 addiu v1, sp, 0x40 | v1 = sp + 0x40;
0x00000b54 sw v1, 0xe8(sp) | *(var_e8h) = v1;
0x00000b58 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b5c sw v0, 0x138(sp) | *(var_138h) = v0;
0x00000b60 addiu v1, v1, 0x21a4 | v1 += str.Clear_mask_area;
0x00000b64 sw v1, 0xec(sp) | *(var_ech) = v1;
0x00000b68 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b6c addiu v0, sp, 0x50 | v0 = sp + 0x50;
0x00000b70 addiu v1, v1, 0x21b4 | v1 += str.clear_all;
0x00000b74 sw v1, 0xf4(sp) | *(var_f4h) = v1;
0x00000b78 addiu v1, zero, 0x64 | v1 = 0x64;
0x00000b7c sb v1, 0xf8(sp) | *(var_f8h) = v1;
0x00000b80 addiu v1, sp, 0x44 | v1 = sp + 0x44;
0x00000b84 sw v1, 0x104(sp) | *(var_104h) = v1;
0x00000b88 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b8c sw v0, 0x13c(sp) | *(var_13ch) = v0;
0x00000b90 addiu v1, v1, 0x21c0 | v1 += str.Clear_all_square_and_polygon_mask_areas;
0x00000b94 sw v1, 0x108(sp) | *(var_108h) = v1;
0x00000b98 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000b9c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000ba0 addiu v1, v1, 0x21e8 | v1 += str.verbose;
0x00000ba4 sw v1, 0x110(sp) | *(var_110h) = v1;
0x00000ba8 addiu v1, zero, 0x76 | v1 = 0x76;
0x00000bac sb v1, 0x114(sp) | *(var_114h) = v1;
0x00000bb0 addiu v1, sp, 0x48 | v1 = sp + 0x48;
0x00000bb4 sw v1, 0x120(sp) | *(var_120h) = v1;
0x00000bb8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000bbc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000bc0 addiu v1, v1, 0x21f0 | v1 += str.Enable_verbose_output;
0x00000bc4 sw v1, 0x124(sp) | *(var_124h) = v1;
0x00000bc8 lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
0x00000bcc lw t9, -0x7fa4(gp) | t9 = sym.imp.g_option_context_new;
0x00000bd0 addiu v1, v1, 0x2208 | v1 += str.points_number;
0x00000bd4 sw v1, 0x12c(sp) | *(var_12ch) = v1;
0x00000bd8 addiu v0, v0, 0x2218 | v0 += str.Number_of_polygon_points;
0x00000bdc addiu v1, zero, 0x62 | v1 = 0x62;
0x00000be0 sb v1, 0x130(sp) | *(var_130h) = v1;
0x00000be4 sw v0, 0x140(sp) | *(var_140h) = v0;
0x00000be8 sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x00000bec sw zero, 0x40(sp) | *(var_40h) = 0;
0x00000bf0 sw zero, 0x44(sp) | *(var_44h) = 0;
0x00000bf4 sw zero, 0x48(sp) | *(var_48h) = 0;
0x00000bf8 sw s1, 0x4c(sp) | *(var_4ch) = s1;
0x00000bfc sw s1, 0x50(sp) | *(var_50h) = s1;
0x00000c00 sb zero, 0x88(sp) | *(var_88h) = 0;
0x00000c04 sw zero, 0x8c(sp) | *(var_8ch) = 0;
0x00000c08 sw zero, 0x9c(sp) | *(var_9ch) = 0;
0x00000c0c sw zero, 0xa8(sp) | *(var_a8h) = 0;
0x00000c10 sw zero, 0xb8(sp) | *(var_b8h) = 0;
0x00000c14 sw zero, 0xc4(sp) | *(var_c4h) = 0;
0x00000c18 addiu a0, a0, 0x2234 | a0 += str._x0___y0___width___height_;
0x00000c1c sw zero, 0xd4(sp) | *(var_d4h) = 0;
0x00000c20 sw zero, 0xe0(sp) | *(var_e0h) = 0;
0x00000c24 sw zero, 0xe4(sp) | *(var_e4h) = 0;
0x00000c28 sw zero, 0xf0(sp) | *(var_f0h) = 0;
0x00000c2c sw zero, 0xfc(sp) | *(var_fch) = 0;
0x00000c30 sw zero, 0x100(sp) | *(var_100h) = 0;
0x00000c34 sw zero, 0x10c(sp) | *(var_10ch) = 0;
0x00000c38 sw zero, 0x118(sp) | *(var_118h) = 0;
0x00000c3c sw zero, 0x11c(sp) | *(var_11ch) = 0;
0x00000c40 sw zero, 0x128(sp) | *(var_128h) = 0;
0x00000c44 sw zero, 0x134(sp) | *(var_134h) = 0;
0x00000c48 sw zero, 0x144(sp) | *(var_144h) = 0;
0x00000c4c sw zero, 0x148(sp) | *(var_148h) = 0;
0x00000c50 sb zero, 0x14c(sp) | *(var_14ch) = 0;
0x00000c54 sw zero, 0x150(sp) | *(var_150h) = 0;
0x00000c58 sw zero, 0x154(sp) | *(var_154h) = 0;
0x00000c5c sw zero, 0x158(sp) | *(var_158h) = 0;
0x00000c60 sw zero, 0x15c(sp) | *(var_15ch) = 0;
0x00000c64 sw zero, 0x160(sp) | *(var_160h) = 0;
0x00000c68 jalr t9 | t9 ();
0x00000c6c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00000c70 beqz v0, 0x1350 | goto label_6;
| }
0x00000c74 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000c78 lw t9, -0x7f80(gp) | t9 = sym.imp.g_option_context_set_summary;
0x00000c7c move a0, v0 | a0 = v0;
0x00000c80 addiu a1, a1, 0x2250 | a1 += str.Query_and_control_masks_using_datacache_api;
0x00000c84 move s0, v0 | s0 = v0;
0x00000c88 jalr t9 | t9 ();
0x00000c8c lw gp, 0x18(sp) | gp = *(var_18h);
0x00000c90 move a0, s0 | a0 = s0;
0x00000c94 addiu s4, sp, 0x34 | s4 = sp + 0x34;
0x00000c98 lw a1, -0x7fdc(gp) | a1 = *((gp - 8183));
0x00000c9c lw t9, -0x7f60(gp) | t9 = sym.imp.g_option_context_set_description;
0x00000ca0 addiu a1, a1, 0x227c | a1 += str.Examples:_n__vdo_mask_client___ch_0__a_0_128_256_640_360_n__vdo_mask_client___ch_0__a_0__c_n__vdo_mask_client___ch_0__p_0__b_4_128_256_568_256_768_616_128_616_n__vdo_mask_client___ch_0__p_1__b_5_628_356_1068_456_1268_616_428_816_200_400_n__vdo_mask_client___ch_0__p_2__b_4_0_0_300_0_300_300_0_300_n__vdo_mask_client___ch_0__p_0__c_n__vdo_mask_client___ch_0__p_1__c_n__vdo_mask_client___ch_0__p_2__c_n__vdo_mask_client___ch_0___clear_all_n;
0x00000ca4 jalr t9 | t9 ();
0x00000ca8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000cac move a2, zero | a2 = 0;
0x00000cb0 addiu a1, sp, 0x84 | a1 = sp + 0x84;
0x00000cb4 lw t9, -0x7f68(gp) | t9 = sym.imp.g_option_context_add_main_entries;
0x00000cb8 move a0, s0 | a0 = s0;
0x00000cbc jalr t9 | t9 ();
0x00000cc0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000cc4 move a3, s4 | a3 = s4;
0x00000cc8 addiu a2, sp, 0x2c | a2 = sp + 0x2c;
0x00000ccc lw t9, -0x7fa0(gp) | t9 = sym.imp.g_option_context_parse;
0x00000cd0 addiu a1, sp, 0x2f0 | a1 = sp + 0x2f0;
0x00000cd4 move a0, s0 | a0 = s0;
0x00000cd8 jalr t9 | t9 ();
0x00000cdc lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00000ce0 beqz v0, 0x12e8 | goto label_7;
| }
0x00000ce4 lw t9, -0x7f70(gp) | t9 = sym.imp.g_option_context_free;
0x00000ce8 move a0, s0 | a0 = s0;
0x00000cec jalr t9 | t9 ();
0x00000cf0 lw v0, 0x38(sp) | v0 = *(var_38h);
0x00000cf4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == s1) {
0x00000cf8 beq v0, s1, 0xff8 | goto label_8;
| }
0x00000cfc lw a3, -0x7fdc(gp) | a3 = *((gp - 8183));
0x00000d00 lw t9, -0x7fb4(gp) | t9 = sym.imp.__sprintf_chk
0x00000d04 addiu s3, sp, 0x2a4 | s3 = sp + 0x2a4;
0x00000d08 addiu a3, a3, 0x2448 | a3 += str._dev_datacache_d;
0x00000d0c addiu a2, zero, 0x20 | a2 = 0x20;
0x00000d10 addiu a1, zero, 1 | a1 = 1;
0x00000d14 move a0, s3 | a0 = s3;
0x00000d18 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00000d1c jalr t9 | t9 ();
0x00000d20 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000d24 addiu a1, zero, 2 | a1 = 2;
0x00000d28 lw t9, -0x7f90(gp) | t9 = sym.imp.open;
0x00000d2c move a0, s3 | a0 = s3;
0x00000d30 jalr t9 | t9 ();
0x00000d34 move s0, v0 | s0 = v0;
0x00000d38 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00000d3c bltz v0, 0x138c | goto label_9;
| }
0x00000d40 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00000d44 lw v0, 0x4c(sp) | v0 = *(var_4ch);
| if (v0 == 0) {
0x00000d48 bnez v0, 0xf78 |
0x00000d4c lw v1, -0x7fdc(gp) | v1 = *((gp - 8183));
| if (v0 == s1) {
0x00000d50 beq v0, s1, 0x102c | goto label_10;
| }
0x00000d54 addiu s5, sp, 0x164 | s5 = sp + 0x164;
0x00000d58 addiu v0, v1, 0x20a4 | v0 = v1 + str.polygon_mask;
0x00000d5c lw t0, 0x20a4(v1) | t0 = *(v1);
0x00000d60 lw a3, 4(v0) | a3 = *((v0 + 1));
0x00000d64 lw v1, 8(v0) | v1 = *((v0 + 2));
0x00000d68 lbu v0, 0xc(v0) | v0 = *((v0 + 12));
0x00000d6c lui a1, 0x401c | a1 = 0x401c0000;
0x00000d70 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x00000d74 sb v0, 0x170(sp) | *(var_170h) = v0;
0x00000d78 move a2, s5 | a2 = s5;
0x00000d7c addiu a1, a1, 0x2b04 | a1 += 0x2b04;
0x00000d80 move a0, s0 | a0 = s0;
0x00000d84 sw t0, 0x164(sp) | *(var_164h) = t0;
0x00000d88 sw a3, 0x168(sp) | *(var_168h) = a3;
0x00000d8c sw v1, 0x16c(sp) | *(var_16ch) = v1;
0x00000d90 sb zero, 0x171(sp) | *(var_171h) = 0;
0x00000d94 sb zero, 0x172(sp) | *(var_172h) = 0;
0x00000d98 sb zero, 0x173(sp) | *(var_173h) = 0;
0x00000d9c sb zero, 0x174(sp) | *(var_174h) = 0;
0x00000da0 sb zero, 0x175(sp) | *(var_175h) = 0;
0x00000da4 sb zero, 0x176(sp) | *(var_176h) = 0;
0x00000da8 sb zero, 0x177(sp) | *(var_177h) = 0;
0x00000dac addiu v0, zero, 0x1084 | v0 = 0x1084;
| label_1:
0x00000db0 sw v0, 0x178(sp) | *(var_178h) = v0;
0x00000db4 addiu v0, zero, 0xa | v0 = 0xa;
0x00000db8 sw v0, 0x17c(sp) | *(var_17ch) = v0;
0x00000dbc jalr t9 | t9 ();
0x00000dc0 move s3, v0 | s3 = v0;
0x00000dc4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00000dc8 bltz v0, 0x13c4 | goto label_11;
| }
0x00000dcc lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00000dd0 addiu v0, zero, -1 | v0 = -1;
0x00000dd4 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (s1 == v0) {
0x00000dd8 beq s1, v0, 0x1098 | goto label_12;
| }
0x00000ddc lw v0, 0x40(sp) | v0 = *(var_40h);
| if (a0 != v0) {
0x00000de0 bne a0, v0, 0x107c | goto label_13;
| }
0x00000de4 lw v0, 0x50(sp) | v0 = *(var_50h);
| if (v0 != 0) {
0x00000de8 bnez v0, 0x1104 | goto label_14;
| }
0x00000dec lw v0, 0x2f0(sp) | v0 = *(arg_2f0h);
| if (v0 != a0) {
0x00000df0 bne v0, a0, 0x1210 | goto label_15;
| }
0x00000df4 slti v0, v0, 5 | v0 = (v0 < 5) ? 1 : 0;
0x00000df8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| if (v0 != 0) {
0x00000dfc bnez v0, 0x1298 | goto label_16;
| }
0x00000e00 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00000e04 lw t9, -0x7f94(gp) | t9 = sym.imp.strtoul;
0x00000e08 move a2, zero | a2 = 0;
0x00000e0c lw a0, 4(v0) | a0 = *((v0 + 1));
0x00000e10 move a1, zero | a1 = 0;
0x00000e14 jalr t9 | t9 ();
0x00000e18 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000e1c lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00000e20 move a2, zero | a2 = 0;
0x00000e24 lw t9, -0x7f94(gp) | t9 = sym.imp.strtoul;
0x00000e28 lw a0, 8(v1) | a0 = *((v1 + 2));
0x00000e2c move a1, zero | a1 = 0;
0x00000e30 move fp, v0 | fp = v0;
0x00000e34 jalr t9 | t9 ();
0x00000e38 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000e3c lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00000e40 move a2, zero | a2 = 0;
0x00000e44 lw t9, -0x7f94(gp) | t9 = sym.imp.strtoul;
0x00000e48 lw a0, 0xc(v1) | a0 = *((v1 + 3));
0x00000e4c move a1, zero | a1 = 0;
0x00000e50 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00000e54 jalr t9 | t9 ();
0x00000e58 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000e5c lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x00000e60 move a2, zero | a2 = 0;
0x00000e64 lw t9, -0x7f94(gp) | t9 = sym.imp.strtoul;
0x00000e68 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x00000e6c move a1, zero | a1 = 0;
0x00000e70 move s6, v0 | s6 = v0;
0x00000e74 jalr t9 | t9 ();
0x00000e78 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x00000e7c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00000e80 sltiu v0, s1, 0x20 | v0 = (s1 < 0x20) ? 1 : 0;
0x00000e84 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00000e88 beqz v0, 0x122c | goto label_17;
| }
0x00000e8c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00000e90 lw t9, -0x7f9c(gp) | t9 = sym.imp.memset;
0x00000e94 addiu a0, v0, 0x2090 | a0 = v0 + str.mask;
0x00000e98 lw a3, 0x2090(v0) | a3 = *(v0);
0x00000e9c lbu v0, 4(a0) | v0 = *((a0 + 4));
0x00000ea0 sw a3, 0x68(sp) | *(var_68h) = a3;
0x00000ea4 addiu a2, zero, 0xf | a2 = 0xf;
0x00000ea8 move a1, zero | a1 = 0;
0x00000eac addiu a0, sp, 0x6d | a0 = sp + 0x6d;
0x00000eb0 sb v0, 0x6c(sp) | *(var_6ch) = v0;
0x00000eb4 jalr t9 | t9 ();
0x00000eb8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000ebc addiu t0, zero, 1 | t0 = 1;
0x00000ec0 sw t0, 0x7c(sp) | *(var_7ch) = t0;
0x00000ec4 lw t9, -0x7f9c(gp) | t9 = sym.imp.memset;
0x00000ec8 sw t0, 0x80(sp) | *(var_80h) = t0;
0x00000ecc addiu a2, zero, 0x140 | a2 = aav.0x00000140;
0x00000ed0 move a1, zero | a1 = 0;
0x00000ed4 move a0, s5 | a0 = s5;
0x00000ed8 jalr t9 | t9 ();
0x00000edc lw gp, 0x18(sp) | gp = *(var_18h);
0x00000ee0 lui a1, 0x401c | a1 = 0x401c0000;
0x00000ee4 addiu a2, sp, 0x68 | a2 = sp + 0x68;
0x00000ee8 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x00000eec addiu a1, a1, 0x2b00 | a1 += 0x2b00;
0x00000ef0 move a0, s0 | a0 = s0;
0x00000ef4 jalr t9 | t9 ();
0x00000ef8 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000efc addiu t0, zero, 1 | t0 = 1;
| if (v0 < 0) {
0x00000f00 bltz v0, 0x1370 | goto label_18;
| }
0x00000f04 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x00000f08 addiu s7, sp, 0x54 | s7 = sp + 0x54;
0x00000f0c lui a1, 0x4014 | a1 = 0x40140000;
0x00000f10 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00000f14 sw zero, 0x64(sp) | *(var_64h) = 0;
0x00000f18 move a2, s7 | a2 = s7;
0x00000f1c addiu a1, a1, 0x2b03 | a1 += 0x2b03;
0x00000f20 move a0, s0 | a0 = s0;
0x00000f24 sw v0, 0x54(sp) | *(var_54h) = v0;
0x00000f28 sw t0, 0x58(sp) | *(var_58h) = t0;
0x00000f2c sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x00000f30 jalr t9 | t9 ();
0x00000f34 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x00000f38 bltz v0, 0x13ac | goto label_19;
| }
| label_5:
0x00000f3c addiu v0, zero, 0xa | v0 = 0xa;
0x00000f40 mul v1, s1, v0 | __asm ("mul v1, s1, v0");
0x00000f44 lw a0, 0x28(sp) | a0 = *(var_28h);
0x00000f48 addu s6, fp, s6 | s6 = fp + s6;
0x00000f4c lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x00000f50 addu v0, v1, s5 | v0 = v1 + s5;
0x00000f54 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00000f58 sh fp, 2(v0) | *((v0 + 1)) = fp;
0x00000f5c addu s1, v1, a0 | s1 = v1 + a0;
0x00000f60 sh v1, 6(v0) | *((v0 + 3)) = v1;
0x00000f64 addiu v1, zero, 1 | v1 = 1;
0x00000f68 sh s6, 4(v0) | *((v0 + 2)) = s6;
0x00000f6c sh s1, 8(v0) | *((v0 + 4)) = s1;
0x00000f70 sb v1, (v0) | *(v0) = v1;
0x00000f74 b 0x11dc | goto label_20;
| }
0x00000f78 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00000f7c addiu t9, t9, 0x1560 | t9 += fcn.00001560;
0x00000f80 move a0, s0 | a0 = s0;
0x00000f84 bal 0x1560 | fcn_00001560 ();
0x00000f88 lw gp, 0x18(sp) | gp = *(var_18h);
0x00000f8c move s1, zero | s1 = 0;
| label_2:
0x00000f90 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00000f94 lw t9, -0x7fa8(gp) | t9 = sym.imp.g_clear_error;
| if (v0 != 0) {
0x00000f98 beqz v0, 0xfa8 |
0x00000f9c move a0, s4 | a0 = s4;
0x00000fa0 jalr t9 | t9 ();
0x00000fa4 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00000fa8 lw t9, -0x7fb0(gp) | t9 = sym.imp.close;
0x00000fac move a0, s0 | a0 = s0;
0x00000fb0 jalr t9 | t9 ();
0x00000fb4 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x00000fb8 lw a0, 0x2c4(sp) | a0 = *(var_2c4h);
0x00000fbc lw v1, (s2) | v1 = *(s2);
0x00000fc0 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x00000fc4 bne a0, v1, 0x13e0 | goto label_21;
| }
0x00000fc8 lw ra, 0x2ec(sp) | ra = *(var_2ech);
0x00000fcc lw fp, 0x2e8(sp) | fp = *(var_2e8h);
0x00000fd0 lw s7, 0x2e4(sp) | s7 = *(var_2e4h);
0x00000fd4 lw s6, 0x2e0(sp) | s6 = *(var_2e0h);
0x00000fd8 lw s5, 0x2dc(sp) | s5 = *(var_2dch);
0x00000fdc lw s4, 0x2d8(sp) | s4 = *(var_2d8h);
0x00000fe0 lw s3, 0x2d4(sp) | s3 = *(var_2d4h);
0x00000fe4 lw s2, 0x2d0(sp) | s2 = *(var_2d0h);
0x00000fe8 lw s1, 0x2cc(sp) | s1 = *(var_2cch);
0x00000fec lw s0, 0x2c8(sp) | s0 = *(var_2c8h);
0x00000ff0 addiu sp, sp, 0x2f0 |
0x00000ff4 jr ra | return v0;
| label_8:
0x00000ff8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00000ffc lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001000 addiu a0, a0, 0x2430 | a0 += str.Please_enter_channel_n;
0x00001004 jalr t9 | t9 ();
0x00001008 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000100c move s1, zero | s1 = 0;
| label_3:
0x00001010 lw v0, 0x34(sp) | v0 = *(var_34h);
0x00001014 lw t9, -0x7fa8(gp) | t9 = sym.imp.g_clear_error;
0x00001018 beqz v0, 0xfb8 |
| } while (v0 == 0);
0x0000101c addiu a0, sp, 0x34 | a0 = sp + 0x34;
0x00001020 jalr t9 | t9 ();
0x00001024 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001028 b 0xfb8 | goto label_0;
| label_10:
0x0000102c lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
0x00001030 lw t9, -0x7f9c(gp) | t9 = sym.imp.memset;
0x00001034 addiu a0, v0, 0x2090 | a0 = v0 + str.mask;
0x00001038 lw v1, 0x2090(v0) | v1 = *(v0);
0x0000103c lbu v0, 4(a0) | v0 = *((a0 + 4));
0x00001040 addiu a2, zero, 0xf | a2 = 0xf;
0x00001044 move a1, zero | a1 = 0;
0x00001048 addiu a0, sp, 0x169 | a0 = sp + 0x169;
0x0000104c sw v1, 0x164(sp) | *(var_164h) = v1;
0x00001050 sb v0, 0x168(sp) | *(var_168h) = v0;
0x00001054 jalr t9 | t9 ();
0x00001058 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000105c addiu s5, sp, 0x164 | s5 = sp + 0x164;
0x00001060 lui a1, 0x401c | a1 = 0x401c0000;
0x00001064 move a2, s5 | a2 = s5;
0x00001068 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x0000106c addiu a1, a1, 0x2b04 | a1 += 0x2b04;
0x00001070 move a0, s0 | a0 = s0;
0x00001074 addiu v0, zero, 0x140 | v0 = aav.0x00000140;
0x00001078 b 0xdb0 | goto label_1;
| label_13:
0x0000107c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001080 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001084 addiu a0, a0, 0x24b8 | a0 += str.Error:_provided_both_square_and_polygon_area_index_n;
0x00001088 jalr t9 | t9 ();
0x0000108c move s1, zero | s1 = 0;
0x00001090 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001094 b 0xf90 | goto label_2;
| label_12:
0x00001098 lw v0, 0x40(sp) | v0 = *(var_40h);
| if (a0 == s1) {
0x0000109c beq a0, s1, 0x12b0 | goto label_22;
| }
0x000010a0 lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
| if (v0 != 0) {
0x000010a4 beqz v0, 0x10c4 |
0x000010a8 move a2, s3 | a2 = s3;
0x000010ac addiu t9, t9, 0x176c | t9 += fcn.0000176c;
0x000010b0 move a1, s0 | a1 = s0;
0x000010b4 bal 0x176c | fcn_0000176c ();
0x000010b8 move s1, zero | s1 = 0;
0x000010bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000010c0 b 0xf90 | goto label_2;
| }
0x000010c4 lw v0, 0x50(sp) | v0 = *(var_50h);
0x000010c8 lw a2, 0x2f0(sp) | a2 = *(arg_2f0h);
| if (v0 == s1) {
0x000010cc beq v0, s1, 0x12cc | goto label_23;
| }
0x000010d0 slti v1, a2, 7 | v1 = (a2 < 7) ? 1 : 0;
0x000010d4 addiu a2, a2, -1 | a2 += -1;
| if (v1 != 0) {
0x000010d8 bnez v1, 0x1294 | goto label_24;
| }
0x000010dc sra a1, a2, 1 | a1 = a2 >> 1;
0x000010e0 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
| if (a1 == v0) {
0x000010e4 beq a1, v0, 0x126c | goto label_25;
| }
0x000010e8 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000010ec move a1, v0 | a1 = v0;
0x000010f0 addiu a0, a0, 0x2570 | a0 += str.Error:_point_numbers_are_not_2x_arguments_number__point_number:__d_arguments_number:__d_n;
0x000010f4 jalr t9 | t9 ();
0x000010f8 move s1, zero | s1 = 0;
0x000010fc lw gp, 0x18(sp) | gp = *(var_18h);
0x00001100 b 0xf90 | goto label_2;
| label_14:
0x00001104 sltiu v0, s1, 0x20 | v0 = (s1 < 0x20) ? 1 : 0;
0x00001108 lw v0, -0x7fdc(gp) | v0 = *((gp - 8183));
| if (v0 == 0) {
0x0000110c beqz v0, 0x122c | goto label_17;
| }
0x00001110 lw t9, -0x7f9c(gp) | t9 = sym.imp.memset;
0x00001114 addiu a0, v0, 0x2090 | a0 = v0 + str.mask;
0x00001118 lw v1, 0x2090(v0) | v1 = *(v0);
0x0000111c lbu v0, 4(a0) | v0 = *((a0 + 4));
0x00001120 sw v1, 0x68(sp) | *(var_68h) = v1;
0x00001124 addiu a2, zero, 0xf | a2 = 0xf;
0x00001128 move a1, zero | a1 = 0;
0x0000112c addiu a0, sp, 0x6d | a0 = sp + 0x6d;
0x00001130 sb v0, 0x6c(sp) | *(var_6ch) = v0;
0x00001134 jalr t9 | t9 ();
0x00001138 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000113c addiu s6, zero, 1 | s6 = 1;
0x00001140 addiu a2, zero, 0x140 | a2 = aav.0x00000140;
0x00001144 lw t9, -0x7f9c(gp) | t9 = sym.imp.memset;
0x00001148 move a1, zero | a1 = 0;
0x0000114c move a0, s5 | a0 = s5;
0x00001150 sw s6, 0x7c(sp) | *(var_7ch) = s6;
0x00001154 sw s6, 0x80(sp) | *(var_80h) = s6;
0x00001158 jalr t9 | t9 ();
0x0000115c lw gp, 0x18(sp) | gp = *(var_18h);
0x00001160 lui a1, 0x401c | a1 = 0x401c0000;
0x00001164 addiu a2, sp, 0x68 | a2 = sp + 0x68;
0x00001168 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x0000116c addiu a1, a1, 0x2b00 | a1 += 0x2b00;
0x00001170 move a0, s0 | a0 = s0;
0x00001174 jalr t9 | t9 ();
0x00001178 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x0000117c bltz v0, 0x132c | goto label_26;
| }
0x00001180 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x00001184 addiu s7, sp, 0x54 | s7 = sp + 0x54;
0x00001188 lui a1, 0x4014 | a1 = 0x40140000;
0x0000118c sw zero, 0x60(sp) | *(var_60h) = 0;
0x00001190 sw zero, 0x64(sp) | *(var_64h) = 0;
0x00001194 move a2, s7 | a2 = s7;
0x00001198 addiu a1, a1, 0x2b03 | a1 += 0x2b03;
0x0000119c move a0, s0 | a0 = s0;
0x000011a0 sw v0, 0x54(sp) | *(var_54h) = v0;
0x000011a4 sw s6, 0x58(sp) | *(var_58h) = s6;
0x000011a8 sw s5, 0x5c(sp) | *(var_5ch) = s5;
0x000011ac jalr t9 | t9 ();
0x000011b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 < 0) {
0x000011b4 bltz v0, 0x1358 | goto label_27;
| }
| do {
| label_4:
0x000011b8 addiu v0, zero, 0xa | v0 = 0xa;
0x000011bc mul v1, s1, v0 | __asm ("mul v1, s1, v0");
0x000011c0 lw t9, -0x7f88(gp) | t9 = sym.imp.ioctl;
0x000011c4 addu s1, v1, s5 | s1 = v1 + s5;
0x000011c8 sb zero, (s1) | *(s1) = 0;
0x000011cc sh zero, 2(s1) | *((s1 + 1)) = 0;
0x000011d0 sh zero, 4(s1) | *((s1 + 2)) = 0;
0x000011d4 sh zero, 6(s1) | *((s1 + 3)) = 0;
0x000011d8 sh zero, 8(s1) | *((s1 + 4)) = 0;
| label_20:
0x000011dc lui a1, 0x8010 | a1 = 0x80100000;
0x000011e0 sw zero, 0x5c(sp) | *(var_5ch) = 0;
0x000011e4 sw zero, 0x60(sp) | *(var_60h) = 0;
0x000011e8 move a2, s7 | a2 = s7;
0x000011ec addiu a1, a1, 0x2b02 | a1 += 0x2b02;
0x000011f0 move a0, s0 | a0 = s0;
0x000011f4 sw s3, 0x54(sp) | *(var_54h) = s3;
0x000011f8 sw s5, 0x58(sp) | *(var_58h) = s5;
0x000011fc jalr t9 | t9 ();
0x00001200 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 >= 0) {
0x00001204 bltz v0, 0x1250 |
0x00001208 move s1, zero | s1 = 0;
0x0000120c b 0xf90 | goto label_2;
| label_15:
0x00001210 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001214 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001218 addiu a0, a0, 0x2518 | a0 += str.Error:_polygon_mask_area_not_provided_n;
0x0000121c jalr t9 | t9 ();
0x00001220 move s1, zero | s1 = 0;
0x00001224 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001228 b 0xf90 | goto label_2;
| label_17:
0x0000122c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001230 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001234 move a1, s1 | a1 = s1;
0x00001238 addiu a2, zero, 0x20 | a2 = 0x20;
0x0000123c addiu a0, a0, 0x2128 | a0 += str.index__d____d__n;
0x00001240 jalr t9 | t9 ();
0x00001244 move s1, zero | s1 = 0;
0x00001248 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000124c b 0xf90 | goto label_2;
| }
0x00001250 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001254 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001258 addiu a0, a0, 0x2074 | a0 += str.datacache_write:__m_n;
0x0000125c jalr t9 | t9 ();
0x00001260 move s1, zero | s1 = 0;
0x00001264 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001268 b 0xf90 | goto label_2;
| label_25:
0x0000126c lw t9, -0x7fdc(gp) | t9 = *((gp - 8183));
0x00001270 lw v0, 0x2c(sp) | v0 = *(var_2ch);
0x00001274 move a3, s3 | a3 = s3;
0x00001278 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x0000127c addiu t9, t9, 0x1a4c | t9 += fcn.00001a4c;
0x00001280 move a2, s0 | a2 = s0;
0x00001284 bal 0x1a4c | fcn_00001a4c ();
0x00001288 move s1, zero | s1 = 0;
0x0000128c lw gp, 0x18(sp) | gp = *(var_18h);
0x00001290 b 0xf90 | goto label_2;
| label_24:
0x00001294 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| label_16:
0x00001298 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x0000129c addiu a0, a0, 0x2540 | a0 += str.Error:_received_too_few_command_line_arguments_n;
0x000012a0 jalr t9 | t9 ();
0x000012a4 move s1, zero | s1 = 0;
0x000012a8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000012ac b 0xf90 | goto label_2;
| label_22:
0x000012b0 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000012b4 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x000012b8 addiu a0, a0, 0x2490 | a0 += str.Error:_mask_area_index_not_provided_n;
0x000012bc jalr t9 | t9 ();
0x000012c0 move s1, zero | s1 = 0;
0x000012c4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000012c8 b 0xf90 | goto label_2;
| label_23:
0x000012cc lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000012d0 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x000012d4 addiu a0, a0, 0x24ec | a0 += str.Error:_polygon_points_number_not_provided_n;
0x000012d8 jalr t9 | t9 ();
0x000012dc move s1, zero | s1 = 0;
0x000012e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000012e4 b 0xf90 | goto label_2;
| label_7:
0x000012e8 lw v0, 0x34(sp) | v0 = *(var_34h);
0x000012ec lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
| if (v0 == 0) {
0x000012f0 beqz v0, 0x1348 | goto label_28;
| }
0x000012f4 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x000012f8 lw a1, 8(v0) | a1 = *((v0 + 2));
0x000012fc addiu a0, a0, 0x242c | a0 += 0x242c;
0x00001300 jalr t9 | t9 ();
0x00001304 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001308 lw t9, -0x7f70(gp) | t9 = sym.imp.g_option_context_free;
0x0000130c move a0, s0 | a0 = s0;
0x00001310 jalr t9 | t9 ();
0x00001314 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001318 lw t9, -0x7fa8(gp) | t9 = sym.imp.g_clear_error;
0x0000131c move a0, s4 | a0 = s4;
0x00001320 jalr t9 | t9 ();
0x00001324 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001328 b 0x1010 | goto label_3;
| label_26:
0x0000132c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001330 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001334 addiu a0, a0, 0x20c0 | a0 += str.failed_to_register_datacache:__m;
0x00001338 jalr t9 | t9 ();
0x0000133c addiu s7, sp, 0x54 | s7 = sp + 0x54;
0x00001340 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001344 b 0x11b8 |
| } while (1);
| label_28:
0x00001348 addiu s1, zero, -1 | s1 = -1;
0x0000134c b 0xfb8 | goto label_0;
| label_6:
0x00001350 addiu s1, zero, -1 | s1 = -1;
0x00001354 b 0x1010 | goto label_3;
| label_27:
0x00001358 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x0000135c lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001360 addiu a0, a0, 0x20e4 | a0 += str.failed_to_read_from_datacache:__m;
0x00001364 jalr t9 | t9 ();
0x00001368 lw gp, 0x18(sp) | gp = *(var_18h);
0x0000136c b 0x11b8 | goto label_4;
| label_18:
0x00001370 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001374 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001378 addiu a0, a0, 0x20c0 | a0 += str.failed_to_register_datacache:__m;
0x0000137c jalr t9 | t9 ();
0x00001380 addiu s7, sp, 0x54 | s7 = sp + 0x54;
0x00001384 lw gp, 0x18(sp) | gp = *(var_18h);
0x00001388 b 0xf3c | goto label_5;
| label_9:
0x0000138c lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x00001390 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x00001394 move a1, s3 | a1 = s3;
0x00001398 addiu a0, a0, 0x245c | a0 += str._s_open_failed:__m_n;
0x0000139c jalr t9 | t9 ();
0x000013a0 addiu s1, zero, -1 | s1 = -1;
0x000013a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000013a8 b 0x1010 | goto label_3;
| label_19:
0x000013ac lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000013b0 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x000013b4 addiu a0, a0, 0x20e4 | a0 += str.failed_to_read_from_datacache:__m;
0x000013b8 jalr t9 | t9 ();
0x000013bc lw gp, 0x18(sp) | gp = *(var_18h);
0x000013c0 b 0xf3c | goto label_5;
| label_11:
0x000013c4 lw a0, -0x7fdc(gp) | a0 = *((gp - 8183));
0x000013c8 lw t9, -0x7f78(gp) | t9 = sym.imp.g_print;
0x000013cc addiu a0, a0, 0x2470 | a0 += str.datacache_create_failed:__m_n;
0x000013d0 jalr t9 | t9 ();
0x000013d4 addiu s1, zero, -1 | s1 = -1;
0x000013d8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000013dc b 0xf90 | goto label_2;
| label_21:
0x000013e0 lw t9, -0x7f84(gp) | t9 = sym.imp.__stack_chk_fail;
0x000013e4 jalr t9 | t9 ();
0x000013e8 nop |
0x000013ec nop |
| }
[*] Function sprintf used 2 times vdo-mask-client