[*] Binary protection state of basic_device.so
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of basic_device.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/upnp_plugins/basic_device.so @ 0x10e0 */
| #include <stdint.h>
|
; (fcn) fcn.000010e0 () | void fcn_000010e0 (int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_2ch;
| r0 = arg1;
| r1 = arg2;
0x000010e0 movwhs fp, 0x5f0 | __asm ("movwhs fp, 0x5f0");
0x000010e4 sub sp, 0x34 |
0x000010e6 ldr r2, [pc, 0xac] |
0x000010e8 mov r7, r0 | r7 = r0;
0x000010ea mov r5, r1 | r5 = r1;
0x000010ec str r3, [sp, 8] | var_8h = r3;
0x000010ee add r6, sp, 0xc | r6 += var_ch;
0x000010f0 ldr r3, [pc, 0xa4] | r3 = *(0x1198);
0x000010f2 add r2, pc | r2 = 0x228c;
0x000010f4 ldr.w lr, [pc, 0xa4] |
0x000010f8 mov ip, r6 |
0x000010fa ldr r4, [pc, 0xa4] |
0x000010fc ldr r3, [r2, r3] |
0x000010fe add lr, pc | lr += pc;
0x00001100 add r4, pc | r4 = 0x22a6;
0x00001102 ldr r3, [r3] | r3 = *(0x228c);
0x00001104 str r3, [sp, 0x2c] | var_2ch = r3;
0x00001106 mov.w r3, 0 | r3 = 0;
0x0000110a ldr r3, [pc, 0x98] |
0x0000110c str r4, [sp] | *(sp) = r4;
0x0000110e add r3, pc | r3 = 0x22b8;
0x00001110 str r3, [sp, 4] | var_4h = r3;
0x00001112 ldm.w lr!, {r0, r1, r2, r3} | r0 = *(lr!);
| r1 = *((lr! + 4));
| r2 = *((lr! + 8));
| r3 = *((lr! + 12));
0x00001116 stm.w ip!, {r0, r1, r2, r3} | *(ip!) = r0;
| *((ip! + 4)) = r1;
| *((ip! + 8)) = r2;
| *((ip! + 12)) = r3;
0x0000111a ldm.w lr, {r0, r1, r2, r3} | r0 = *(lr);
| r1 = *((lr + 4));
| r2 = *((lr + 8));
| r3 = *((lr + 12));
0x0000111e stm.w ip, {r0, r1, r2, r3} | *(ip) = r0;
| *((ip + 4)) = r1;
| *((ip + 8)) = r2;
| *((ip + 12)) = r3;
0x00001122 mov r2, r4 | r2 = r4;
0x00001124 ldr r3, [pc, 0x80] |
0x00001126 mov r0, r7 | r0 = r7;
0x00001128 add r1, sp, 8 | r1 += var_8h;
0x0000112a add r3, pc | r3 = 0x22d6;
0x0000112c blx 0xd20 | r0 = sd_bus_error_free ();
0x00001130 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x00001132 blt 0x115e | goto label_1;
| }
0x00001134 ldr r0, [sp, 8] | r0 = var_8h;
0x00001136 mov r1, r6 | r1 = r6;
0x00001138 blx 0xd14 | r0 = sd_bus_message_new_method_call ();
0x0000113c subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 < r0) {
0x0000113e blt 0x1174 | goto label_2;
| }
0x00001140 ldr r3, [sp, 8] | r3 = var_8h;
0x00001142 str r3, [r5] | *(r5) = r3;
| do {
| label_0:
0x00001144 ldr r2, [pc, 0x64] |
0x00001146 ldr r3, [pc, 0x50] | r3 = *(0x119a);
0x00001148 add r2, pc | r2 = 0x22f8;
0x0000114a ldr r3, [r2, r3] | r3 = *(0x22f8);
0x0000114c ldr r2, [r3] | r2 = *(0x22f8);
0x0000114e ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x00001150 eors r2, r3 | r2 ^= r3;
0x00001152 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001156 bne 0x1190 | goto label_3;
| }
0x00001158 mov r0, r4 | r0 = r4;
0x0000115a add sp, 0x34 |
0x0000115c pop {r4, r5, r6, r7, pc} |
| label_1:
0x0000115e rsbs r0, r4, 0 | r0 = r4 - ;
0x00001160 blx 0xb94 | strerror (r0);
0x00001164 ldr r2, [pc, 0x48] |
0x00001166 mov r3, r0 | r3 = r0;
0x00001168 movs r1, 1 | r1 = 1;
0x0000116a movs r0, 3 | r0 = 3;
0x0000116c add r2, pc | r2 = "Memory allocation failed";
0x0000116e blx 0xca8 | sd_bus_message_read ();
0x00001172 b 0x1144 |
| } while (1);
| label_2:
0x00001174 rsbs r0, r4, 0 | r0 = r4 - ;
0x00001176 blx 0xb94 | strerror (r0);
0x0000117a ldr r2, [pc, 0x38] |
0x0000117c mov r3, r0 | r3 = r0;
0x0000117e movs r1, 1 | r1 = 1;
0x00001180 movs r0, 3 | r0 = 3;
0x00001182 add r2, pc | r2 = 0x233c;
0x00001184 blx 0xca8 | sd_bus_message_read ();
0x00001188 ldr r0, [sp, 8] | r0 = var_8h;
0x0000118a blx 0xc34 | fcn_00000c34 ();
0x0000118e b 0x1144 | goto label_0;
| label_3:
0x00001190 blx 0xcf0 | fprintf_chk ()
0x00001194 cmp r6, 0x46 |
0x00001196 movs r0, r0 |
0x00001198 lsls r4, r7, 2 | r4 = r7 << 2;
0x0000119a movs r0, r0 |
0x0000119c cmp r7, 2 |
0x0000119e movs r0, r0 |
0x000011a0 lsrs r4, r3, 0x17 | r4 = r3 >> 0x17;
0x000011a2 movs r0, r0 |
0x000011a4 lsrs r2, r5, 0x17 | r2 = r5 >> 0x17;
0x000011a6 movs r0, r0 |
0x000011a8 lsrs r6, r2, 0x16 | r6 = r2 >> 0x16;
0x000011aa movs r0, r0 |
0x000011ac cmp r5, 0xf0 |
0x000011ae movs r0, r0 |
0x000011b0 lsrs r0, r2, 0x16 | r0 = r2 >> 0x16;
0x000011b2 movs r0, r0 |
0x000011b4 lsrs r2, r4, 0x16 | r2 = r4 >> 0x16;
0x000011b6 movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/upnp_plugins/basic_device.so @ 0x1934 */
| #include <stdint.h>
|
; (fcn) fcn.00001934 () | void fcn_00001934 (int16_t arg1) {
| int16_t var_4h;
| int16_t var_204h;
| r0 = arg1;
0x00001934 blmi 0xbd41f4 | __asm ("blmi aav.0x000025f8");
0x00001938 push.w {r4, r5, r6, r7, r8, sb, lr} |
0x0000193c sub.w sp, sp, 0x20c |
0x00001940 add r2, pc | r2 += pc;
0x00001942 ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001944 ldr r3, [r3] | r3 = *(r3);
0x00001946 str r3, [sp, 0x204] | var_204h = r3;
0x00001948 mov.w r3, 0 | r3 = 0;
0x0000194c ldrb r3, [r0] | r3 = *(r0);
0x0000194e cmp r3, 0 |
| if (r3 == 0) {
0x00001950 beq 0x19e6 | goto label_3;
| }
0x00001952 ldr r6, [pc, 0xa4] |
0x00001954 mov sb, r0 | sb = r0;
0x00001956 ldr.w r8, [pc, 0xa4] |
0x0000195a mov.w ip, 0 |
0x0000195e ldr r7, [pc, 0xa0] |
0x00001960 add r5, sp, 4 | r5 += var_4h;
0x00001962 add r6, pc | r6 = 0x3360;
0x00001964 add r8, pc | r8 = 0x3366;
0x00001966 add r7, pc | r7 = 0x336c;
0x00001968 b 0x198c | goto label_4;
| label_0:
0x0000196a cmp r3, 0x26 |
| if (r3 == 0x26) {
0x0000196c beq 0x19d8 | goto label_5;
| }
0x0000196e mov r1, sb | r1 = sb;
0x00001970 movs r2, 1 | r2 = 1;
| do {
| label_2:
0x00001972 add.w r4, r2, ip | r4 = r2 + ip;
0x00001976 cmp.w r4, 0x200 |
| if (r4 >= 0x200) {
0x0000197a bge 0x19b0 | goto label_6;
| }
| label_1:
0x0000197c add.w r0, r5, ip | r0 = r5 + ip;
0x00001980 blx 0xc5c | fcn_00000c5c ();
0x00001984 ldrb r3, [sb, 1]! | r3 = *((sb += 1));
0x00001988 mov ip, r4 |
| if (r3 == 0) {
0x0000198a cbz r3, 0x19b0 | goto label_6;
| }
| label_4:
0x0000198c sub.w r2, r3, 0x20 | r2 = r3 - 0x20;
0x00001990 cmp r2, 0x5e |
0x00001992 itt hi |
| if (r2 <= 0x5e) {
0x00001994 movhi r2, 1 | r2 = 1;
| }
| if (r2 <= 0x5e) {
0x00001996 movhi r1, r6 | r1 = r6;
| }
0x00001998 bhi 0x1972 |
| } while (r2 > 0x5e);
0x0000199a cmp r3, 0x3c |
| if (r3 == 0x3c) {
0x0000199c beq 0x19e0 | goto label_7;
| }
0x0000199e cmp r3, 0x3e |
| if (r3 != 0x3e) {
0x000019a0 bne 0x196a | goto label_0;
| }
0x000019a2 movs r2, 4 | r2 = 4;
0x000019a4 mov r1, r7 | r1 = r7;
0x000019a6 add.w r4, r2, ip | r4 = r2 + ip;
0x000019aa cmp.w r4, 0x200 |
| if (r4 < 0x200) {
0x000019ae blt 0x197c | goto label_1;
| }
| do {
| label_6:
0x000019b0 movs r3, 0 | r3 = 0;
0x000019b2 mov r0, r5 | r0 = r5;
0x000019b4 strb.w r3, [r5, ip] | *((r5 + ip)) = r3;
0x000019b8 blx 0xccc | sd_bus_message_enter_container ();
0x000019bc ldr r2, [pc, 0x44] |
0x000019be ldr r3, [pc, 0x34] | r3 = *(0x19f6);
0x000019c0 add r2, pc | r2 = 0x33c8;
0x000019c2 ldr r3, [r2, r3] | r3 = *(0x33c8);
0x000019c4 ldr r2, [r3] | r2 = *(0x33c8);
0x000019c6 ldr r3, [sp, 0x204] | r3 = var_204h;
0x000019c8 eors r2, r3 | r2 ^= r3;
0x000019ca mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x000019ce bne 0x19ec | goto label_8;
| }
0x000019d0 add.w sp, sp, 0x20c |
0x000019d4 pop.w {r4, r5, r6, r7, r8, sb, pc} |
| label_5:
0x000019d8 ldr r1, [pc, 0x2c] |
0x000019da movs r2, 5 | r2 = 5;
0x000019dc add r1, pc | r1 = 0x33e8;
0x000019de b 0x1972 | goto label_2;
| label_7:
0x000019e0 movs r2, 4 | r2 = 4;
0x000019e2 mov r1, r8 | r1 = r8;
0x000019e4 b 0x1972 | goto label_2;
| label_3:
0x000019e6 mov ip, r3 |
0x000019e8 add r5, sp, 4 | r5 += var_4h;
0x000019ea b 0x19b0 |
| } while (1);
| label_8:
0x000019ec blx 0xcf0 | fprintf_chk ()
0x000019f0 movs r5, 0xf8 | r5 = 0xf8;
0x000019f2 movs r0, r0 |
0x000019f4 lsls r4, r7, 2 | r4 = r7 << 2;
0x000019f6 movs r0, r0 |
0x000019f8 lsrs r6, r5, 5 | r6 = r5 >> 5;
0x000019fa movs r0, r0 |
0x000019fc lsrs r0, r6, 5 | r0 = r6 >> 5;
0x000019fe movs r0, r0 |
0x00001a00 lsrs r6, r6, 5 | r6 >>= 5;
0x00001a02 movs r0, r0 |
0x00001a04 movs r5, 0x78 | r5 = 0x78;
0x00001a06 movs r0, r0 |
0x00001a08 lsrs r0, r1, 4 | r0 = r1 >> 4;
0x00001a0a movs r0, r0 |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/upnp_plugins/basic_device.so @ 0x1a0c */
| #include <stdint.h>
|
; (fcn) sym.createRootDescDoc () | void createRootDescDoc (int16_t arg1) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_58h;
| int16_t var_6ch;
| r0 = arg1;
0x00001a0c blmi 0xfe254434 | __asm ("blmi aav.0x00002522");
0x00001a10 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00001a14 sub sp, 0x74 |
0x00001a16 add r2, pc | r2 += pc;
0x00001a18 ldr r5, [r0, 0x1c] | r5 = *((r0 + 0x1c));
0x00001a1a mov r4, r0 | r4 = r0;
0x00001a1c ldr r3, [r2, r3] | r3 = *((r2 + r3));
0x00001a1e ldr r3, [r3] | r3 = *(r3);
0x00001a20 str r3, [sp, 0x6c] | var_6ch = r3;
0x00001a22 mov.w r3, 0 | r3 = 0;
0x00001a26 cmp r5, 0 |
| if (r5 == 0) {
0x00001a28 beq 0x1b1a | goto label_5;
| }
0x00001a2a ldrb r3, [r5] | r3 = *(r5);
0x00001a2c cmp r3, 0 |
0x00001a2e beq 0x1b1a |
| while (1) {
0x00001a30 mov r0, r5 | r0 = r5;
0x00001a32 ldr r6, [pc, 0x204] |
0x00001a34 bl 0x1934 | fcn_00001934 (r0);
0x00001a38 str r0, [r4, 0x1c] | *((r4 + 0x1c)) = r0;
0x00001a3a mov r0, r5 | r0 = r5;
0x00001a3c blx 0xc1c | fcn_00000c1c ();
0x00001a40 ldr r1, [pc, 0x1f8] |
0x00001a42 add r6, pc | r6 = 0x3680;
0x00001a44 mov r0, r6 | r0 = r6;
0x00001a46 add r1, pc | r1 = 0x3686;
0x00001a48 blx 0xc68 | r0 = fcn_00000c68 ();
0x00001a4c mov r5, r0 | r5 = r0;
0x00001a4e cmp r0, 0 |
| if (r0 == 0) {
0x00001a50 beq.w 0x1c10 | goto label_6;
| }
0x00001a54 ldr r2, [r4, 4] | r2 = *((r4 + 4));
0x00001a56 add.w ip, sp, 0x58 |
0x00001a5a ldr r6, [pc, 0x1e4] |
0x00001a5c ldr r3, [r4] | r3 = *(r4);
0x00001a5e str r2, [sp, 0x50] | var_50h = r2;
0x00001a60 ldr r2, [r4, 8] | r2 = *((r4 + 8));
0x00001a62 add r6, pc | r6 = 0x36a8;
0x00001a64 ldrd r0, r1, [r6] | __asm ("ldrd r0, r1, [r6]");
0x00001a68 str r3, [sp, 0x4c] | var_4ch = r3;
0x00001a6a str r2, [sp, 0x54] | var_54h = r2;
0x00001a6c ldr r2, [r6, 8] | r2 = *(0x36b0);
0x00001a6e ldr r3, [pc, 0x1d4] |
0x00001a70 ldr.w r8, [r4, 0x1c] | r8 = *((r4 + 0x1c));
0x00001a74 orr.w fp, r0, r2 |
0x00001a78 ldr r2, [r6, 0xc] | r2 = *(0x36b4);
0x00001a7a add r3, pc | r3 = 0x36c4;
0x00001a7c ldr r7, [r4, 0x14] | r7 = *((r4 + 0x14));
0x00001a7e ldr.w sb, [r4, 0xc] | sb = *((r4 + 0xc));
0x00001a82 orr.w lr, r1, r2 | lr = r1 | r2;
0x00001a86 ldm r3, {r0, r1, r2, r3} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
| r3 = *((r3 + 12));
0x00001a88 orrs.w lr, fp, lr | lr = fp | lr;
0x00001a8c ldr.w sl, [r4, 0x18] | sl = *((r4 + 0x18));
0x00001a90 stm.w ip, {r0, r1, r2, r3} | *(ip) = r0;
| *((ip + 4)) = r1;
| *((ip + 8)) = r2;
| *((ip + 12)) = r3;
| if (lr == fp) {
0x00001a94 beq 0x1b4e | goto label_7;
| }
| label_2:
0x00001a96 ldr r1, [pc, 0x1b0] |
0x00001a98 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00001a9a add r1, pc | r1 = 0x36e8;
0x00001a9c blx 0xd60 | r0 = fcn_00000d60 ();
0x00001aa0 cmp r0, 0 |
| if (r0 == 0) {
0x00001aa2 beq 0x1b3c | goto label_8;
| }
0x00001aa4 ldr r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x00001aa6 ldr.w fp, [pc, 0x1a4] |
0x00001aaa cmp r3, 1 |
0x00001aac add fp, pc | fp = 0x36fe;
| if (r3 == 1) {
0x00001aae beq 0x1b48 | goto label_9;
| }
| label_0:
0x00001ab0 ldr r6, [pc, 0x19c] |
0x00001ab2 add r6, pc | r6 = 0x3706;
| label_1:
0x00001ab4 blx 0xbe8 | UpnpGetServerIpAddress ();
0x00001ab8 ldr r3, [sp, 0x54] | r3 = var_54h;
0x00001aba movs r1, 1 | r1 = 1;
0x00001abc ldr r2, [pc, 0x194] |
0x00001abe strd r6, r0, [sp, 0x2c] | __asm ("strd r6, r0, [var_30h]");
0x00001ac2 str r3, [sp, 0xc] | var_ch = r3;
0x00001ac4 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00001ac6 add r2, pc | r2 = 0x371e;
0x00001ac8 ldr r0, [pc, 0x18c] |
0x00001aca str.w sl, [sp, 0x18] | __asm ("str.w sl, [var_18h]");
0x00001ace str r3, [sp, 8] | var_8h = r3;
0x00001ad0 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00001ad2 add r0, pc | r0 = 0x372e;
0x00001ad4 str.w sb, [sp, 0x10] | __asm ("str.w sb, [var_10h]");
0x00001ad8 adds r0, 0x10 | r0 += 0x10;
0x00001ada str r3, [sp] | *(sp) = r3;
0x00001adc ldr r3, [r4, 0x20] | r3 = *((r4 + 0x20));
0x00001ade str r2, [sp, 0x28] | var_28h = r2;
0x00001ae0 ldr r2, [pc, 0x178] |
0x00001ae2 str r3, [sp, 0x34] | var_34h = r3;
0x00001ae4 mov r3, r8 | r3 = r8;
0x00001ae6 str r0, [sp, 0x1c] | var_1ch = r0;
0x00001ae8 mov r0, r5 | r0 = r5;
0x00001aea add r2, pc | r2 = 0x374a;
0x00001aec strd fp, fp, [sp, 0x20] | __asm ("strd fp, fp, [var_0hx20]");
0x00001af0 str r7, [sp, 0x14] | var_14h = r7;
0x00001af2 str r7, [sp, 4] | var_4h = r7;
0x00001af4 blx 0xcfc | UpnpSetWebServerRootDir ();
0x00001af8 mov r0, r5 | r0 = r5;
0x00001afa blx 0xbd0 | fclose (r0);
0x00001afe movs r0, 1 | r0 = 1;
| label_3:
0x00001b00 ldr r2, [pc, 0x15c] |
0x00001b02 ldr r3, [pc, 0x130] | r3 = *(0x1c36);
0x00001b04 add r2, pc | r2 = 0x3768;
0x00001b06 ldr r3, [r2, r3] | r3 = *(0x3768);
0x00001b08 ldr r2, [r3] | r2 = *(0x3768);
0x00001b0a ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00001b0c eors r2, r3 | r2 ^= r3;
0x00001b0e mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001b12 bne 0x1c0c | goto label_10;
| }
0x00001b14 add sp, 0x74 |
0x00001b16 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_5:
0x00001b1a mov r0, r5 | r0 = r5;
0x00001b1c blx 0xc1c | fcn_00000c1c ();
0x00001b20 ldr r0, [r4, 0x18] | r0 = *((r4 + 0x18));
0x00001b22 movs r1, 1 | r1 = 1;
0x00001b24 ldr r2, [pc, 0x13c] |
0x00001b26 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x00001b28 str r0, [sp] | *(sp) = r0;
0x00001b2a add.w r0, r4, 0x1c | r0 = r4 + 0x1c;
0x00001b2e add r2, pc | r2 = 0x3796;
0x00001b30 blx 0xc28 | r0 = fcn_00000c28 ();
0x00001b34 cmp r0, 0 |
| if (r0 < 0) {
0x00001b36 blt 0x1bee | goto label_11;
| }
0x00001b38 ldr r5, [r4, 0x1c] | r5 = *((r4 + 0x1c));
0x00001b3a b 0x1a30 |
| }
| label_8:
0x00001b3c ldr r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x00001b3e ldr.w fp, [pc, 0x128] |
0x00001b42 cmp r3, 1 |
0x00001b44 add fp, pc | fp = 0x37b2;
| if (r3 != 1) {
0x00001b46 bne 0x1ab0 | goto label_0;
| }
| label_9:
0x00001b48 ldr r6, [pc, 0x120] |
0x00001b4a add r6, pc | r6 = 0x37ba;
0x00001b4c b 0x1ab4 | goto label_1;
| label_7:
0x00001b4e str r6, [sp] | *(sp) = r6;
0x00001b50 blx 0xce4 | r0 = stack_chk_fail ();
0x00001b54 cmp r0, 0 |
0x00001b56 bne 0x1bfe |
| while (1) {
0x00001b58 ldr r0, [pc, 0x114] |
0x00001b5a movs r3, 0x25 | r3 = 0x25;
0x00001b5c ldr r6, [pc, 0x114] |
0x00001b5e movs r2, 1 | r2 = 1;
0x00001b60 mov r1, r3 | r1 = r3;
0x00001b62 add r0, pc | r0 = 0x37d6;
0x00001b64 ldrb.w ip, [r0, 0xf] | ip = *((r0 + 0xf));
0x00001b68 add r6, pc | r6 = 0x37e0;
0x00001b6a adds r0, 0x10 | r0 += 0x10;
0x00001b6c str.w ip, [sp, 0x40] | __asm ("str.w ip, [var_40h]");
0x00001b70 ldrb ip, [r0, -0x2] | ip = *((r0 - 0x2));
0x00001b74 str.w ip, [sp, 0x3c] | __asm ("str.w ip, [var_3ch]");
0x00001b78 ldrb ip, [r0, -0x3] | ip = *((r0 - 0x3));
0x00001b7c str.w ip, [sp, 0x38] | __asm ("str.w ip, [var_38h]");
0x00001b80 ldrb ip, [r0, -0x4] | ip = *((r0 - 0x4));
0x00001b84 str.w ip, [sp, 0x34] | __asm ("str.w ip, [var_34h]");
0x00001b88 ldrb ip, [r0, -0x5] | ip = *((r0 - 0x5));
0x00001b8c str.w ip, [sp, 0x30] | __asm ("str.w ip, [var_30h]");
0x00001b90 ldrb ip, [r0, -0x6] | ip = *((r0 - 0x6));
0x00001b94 str.w ip, [sp, 0x2c] | __asm ("str.w ip, [var_2ch]");
0x00001b98 ldrb ip, [r0, -0x7] | ip = *((r0 - 0x7));
0x00001b9c str.w ip, [sp, 0x28] | __asm ("str.w ip, [var_28h]");
0x00001ba0 ldrb ip, [r0, -0x8] | ip = *((r0 - 0x8));
0x00001ba4 str.w ip, [sp, 0x24] | __asm ("str.w ip, [var_24h]");
0x00001ba8 ldrb ip, [r0, -0x9] | ip = *((r0 - 0x9));
0x00001bac str.w ip, [sp, 0x20] | __asm ("str.w ip, [var_20h]");
0x00001bb0 ldrb ip, [r0, -0xa] | ip = *((r0 - 0xa));
0x00001bb4 str.w ip, [sp, 0x1c] | __asm ("str.w ip, [var_1ch]");
0x00001bb8 ldrb ip, [r0, -0xb] | ip = *((r0 - 0xb));
0x00001bbc str.w ip, [sp, 0x18] | __asm ("str.w ip, [var_18h]");
0x00001bc0 ldrb ip, [r0, -0xc] | ip = *((r0 - 0xc));
0x00001bc4 str.w ip, [sp, 0x14] | __asm ("str.w ip, [var_14h]");
0x00001bc8 ldrb ip, [r0, -0xd] | ip = *((r0 - 0xd));
0x00001bcc str.w ip, [sp, 0x10] | __asm ("str.w ip, [var_10h]");
0x00001bd0 ldrb ip, [r0, -0xe] | ip = *((r0 - 0xe));
0x00001bd4 str.w ip, [sp, 0xc] | __asm ("str.w ip, [var_ch]");
0x00001bd8 ldrb ip, [r0, -0xf] | ip = *((r0 - 0xf));
0x00001bdc str.w ip, [sp, 8] | __asm ("str.w ip, [var_8h]");
0x00001be0 ldrb ip, [r0, -0x10] | ip = *((r0 - 0x10));
0x00001be4 strd r6, ip, [sp] | __asm ("strd r6, ip, [sp]");
0x00001be8 blx 0xc8c | fcn_00000c8c ();
0x00001bec b 0x1a96 | goto label_2;
| label_11:
0x00001bee ldr r2, [pc, 0x88] |
0x00001bf0 movs r1, 1 | r1 = 1;
0x00001bf2 movs r0, 2 | r0 = 2;
0x00001bf4 add r2, pc | r2 = 0x3872;
0x00001bf6 blx 0xca8 | sd_bus_message_read ();
| label_4:
0x00001bfa movs r0, 0 | r0 = 0;
0x00001bfc b 0x1b00 | goto label_3;
0x00001bfe ldr r2, [pc, 0x7c] |
0x00001c00 movs r1, 1 | r1 = 1;
0x00001c02 movs r0, 3 | r0 = 3;
0x00001c04 add r2, pc | r2 = 0x3886;
0x00001c06 blx 0xca8 | sd_bus_message_read ();
0x00001c0a b 0x1b58 |
| }
| label_10:
0x00001c0c blx 0xcf0 | fprintf_chk ()
| label_6:
0x00001c10 blx 0xd6c | r0 = fcn_00000d6c ();
0x00001c14 ldr r0, [r0] | r0 = *(r0);
0x00001c16 blx 0xb94 | strerror (r0);
0x00001c1a ldr r2, [pc, 0x64] |
0x00001c1c mov r4, r0 | r4 = r0;
0x00001c1e mov r3, r6 | r3 = r6;
0x00001c20 movs r1, 1 | r1 = 1;
0x00001c22 movs r0, 2 | r0 = 2;
0x00001c24 str r4, [sp] | *(sp) = r4;
0x00001c26 add r2, pc | r2 = 0x38ac;
0x00001c28 blx 0xca8 | sd_bus_message_read ();
0x00001c2c b 0x1bfa | goto label_4;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/upnp_plugins/basic_device.so @ 0x11f8 */
| #include <stdint.h>
|
; (fcn) sym.readConfigBasicDevice () | void readConfigBasicDevice (int16_t arg1, int16_t arg2) {
| int16_t var_6ch;
| int16_t var_0h;
| int16_t var_4h_2;
| int16_t var_8h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| size_t nitems;
| FILE * stream;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| int16_t var_54h;
| int16_t var_64h;
| r0 = arg1;
| r1 = arg2;
0x000011f8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000011fc mov r5, r1 | r5 = r1;
0x000011fe ldr.w r1, [pc, 0x670] | r1 = *(0x00001870);
0x00001202 sub sp, 0x6c |
0x00001204 movs r3, 0 | r3 = 0;
0x00001206 mov r4, r0 | r4 = r0;
0x00001208 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x0000120c add r0, sp, 0x24 | r0 += var_24h;
0x0000120e ldr.w r2, [pc, 0x664] |
0x00001212 add r1, pc | r1 += pc;
0x00001214 vstr d16, [sp, 0x38] | __asm ("vstr d16, [sp, 0x38]");
0x00001216 lsrs r6, r1, 0xc | r6 = r1 >> 0xc;
0x00001218 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x0000121a ldr r2, [r2] | r2 = *(0x1876);
0x0000121c str r2, [sp, 0x64] | var_64h = r2;
0x0000121e mov.w r2, 0 | r2 = 0;
0x00001222 str r3, [sp, 0x24] | var_24h = r3;
0x00001224 str r3, [sp, 0x40] | var_40h = r3;
0x00001226 blx 0xc74 | r0 = fcn_00000c74 ();
0x0000122a cmp r0, 0 |
| if (r0 < 0) {
0x0000122c blt.w 0x15ac | goto label_18;
| }
0x00001230 ldr.w r6, [pc, 0x644] |
0x00001234 add.w sl, r4, 0x1c | sl = r4 + 0x1c;
0x00001238 ldr.w r7, [pc, 0x640] |
0x0000123c add.w sb, sp, 0x38 | sb += var_38h;
0x00001240 ldr.w r8, [pc, 0x63c] |
0x00001244 add r6, pc | r6 = 0x2ac0;
0x00001246 ldr r0, [sp, 0x24] | r0 = var_24h;
0x00001248 add r7, pc | r7 = 0x2ac8;
0x0000124a mov r1, r6 | r1 = r6;
0x0000124c add r8, pc | r8 = 0x2ad0;
0x0000124e mov r3, r6 | r3 = r6;
0x00001250 mov r2, r7 | r2 = r7;
0x00001252 str.w sl, [sp, 8] | __asm ("str.w sl, [var_8h]");
0x00001256 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x0000125a str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h_2]");
0x0000125e blx 0xbf4 | r0 = sd_bus_get_property_string ();
0x00001262 adds r1, r0, 4 | r1 = r0 + 4;
| if (r1 == r0) {
0x00001264 beq.w 0x16c2 | goto label_19;
| }
| label_12:
0x00001268 ldr r3, [r5] | r3 = *(r5);
0x0000126a cmp r3, 1 |
| if (r3 == 1) {
0x0000126c beq.w 0x13e2 | goto label_11;
| }
0x00001270 cmp r0, 0 |
| if (r0 < 0) {
0x00001272 blt.w 0x1656 | goto label_20;
| }
| label_10:
0x00001276 ldr r6, [sp, 0x24] | r6 = var_24h;
0x00001278 add.w r8, sp, 0x2c | r8 += var_2ch;
0x0000127c vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00001280 movs r3, 0 | r3 = 0;
0x00001282 mov r1, r8 | r1 = r8;
0x00001284 strd r3, r3, [sp, 0x28] | __asm ("strd r3, r3, [var_2ch]");
0x00001288 mov r0, r6 | r0 = r6;
0x0000128a str r3, [sp, 0x50] | var_50h = r3;
0x0000128c vstr d16, [sp, 0x48] | __asm ("vstr d16, [sp, 0x48]");
0x00001290 bl 0x10e0 | r0 = fcn_000010e0 (r0, r1);
0x00001294 cmp r0, 0 |
| if (r0 < 0) {
0x00001296 blt.w 0x1466 | goto label_14;
| }
0x0000129a ldr.w sl, [sp, 0x2c] | sl = var_2ch;
0x0000129e add r7, sp, 0x28 | r7 += var_28h;
0x000012a0 add r5, sp, 0x48 | r5 += var_48h;
0x000012a2 movs r2, 0 | r2 = 0;
0x000012a4 mov r0, r6 | r0 = r6;
0x000012a6 movs r3, 0 | r3 = 0;
0x000012a8 mov r1, sl | r1 = sl;
0x000012aa str r7, [sp, 4] | var_4h_2 = r7;
0x000012ac str r5, [sp] | *(sp) = r5;
0x000012ae blx 0xc00 | r0 = sd_bus_call ();
0x000012b2 adds r2, r0, 4 | r2 = r0 + 4;
| if (r2 == r0) {
0x000012b4 beq.w 0x1734 | goto label_21;
| }
| label_15:
0x000012b8 cmp r0, 0 |
| if (r0 < 0) {
0x000012ba blt.w 0x16fe | goto label_22;
| }
0x000012be ldr.w r2, [pc, 0x5c4] |
0x000012c2 movs r1, 0x61 | r1 = 0x61;
0x000012c4 ldr r0, [sp, 0x28] | r0 = var_28h;
0x000012c6 add r2, pc | r2 = 0x2b50;
0x000012c8 blx 0xcd8 | r0 = sd_id128_get_machine_app_specific ();
0x000012cc cmp r0, 0 |
| if (r0 < 0) {
0x000012ce blt.w 0x1450 | goto label_23;
| }
0x000012d2 ldr.w r6, [pc, 0x5b4] |
0x000012d6 add r7, sp, 0x34 | r7 += stream;
0x000012d8 ldr.w sl, [pc, 0x5b0] |
0x000012dc ldr.w fp, [pc, 0x5b0] |
0x000012e0 str.w r8, [sp, 0x14] | __asm ("str.w r8, [var_14h]");
0x000012e4 add r6, pc | r6 = 0x2b72;
0x000012e6 add sl, pc | sl = 0x2b76;
0x000012e8 mov r8, r4 | r8 = r4;
0x000012ea add fp, pc | fp = 0x2b7e;
0x000012ec b 0x1366 |
| while (r0 != 0) {
0x000012ee mov r1, fp | r1 = fp;
0x000012f0 mov r0, r5 | r0 = r5;
0x000012f2 blx 0xd60 | r0 = fcn_00000d60 ();
0x000012f6 cmp r0, 0 |
| if (r0 == 0) {
0x000012f8 beq.w 0x166c | goto label_24;
| }
0x000012fc ldr.w r1, [pc, 0x594] |
0x00001300 mov r0, r5 | r0 = r5;
0x00001302 add r1, pc | r1 = 0x2b9a;
0x00001304 blx 0xd60 | r0 = fcn_00000d60 ();
0x00001308 cmp r0, 0 |
| if (r0 == 0) {
0x0000130a beq.w 0x1694 | goto label_25;
| }
0x0000130e ldr.w r1, [pc, 0x588] |
0x00001312 mov r0, r5 | r0 = r5;
0x00001314 add r1, pc | r1 = 0x2bb2;
0x00001316 blx 0xd60 | r0 = fcn_00000d60 ();
0x0000131a cmp r0, 0 |
| if (r0 == 0) {
0x0000131c beq.w 0x16a0 | goto label_26;
| }
0x00001320 ldr.w r1, [pc, 0x578] |
0x00001324 mov r0, r5 | r0 = r5;
0x00001326 add r1, pc | r1 = 0x2bc6;
0x00001328 blx 0xd60 | r0 = fcn_00000d60 ();
0x0000132c cmp r0, 0 |
| if (r0 == 0) {
0x0000132e beq.w 0x16f2 | goto label_27;
| }
0x00001332 ldr.w r1, [pc, 0x56c] |
0x00001336 mov r0, r5 | r0 = r5;
0x00001338 add r1, pc | r1 = 0x2bde;
0x0000133a blx 0xd60 | r0 = fcn_00000d60 ();
0x0000133e cmp r0, 0 |
| if (r0 == 0) {
0x00001340 beq.w 0x1728 | goto label_28;
| }
0x00001344 ldr.w r1, [pc, 0x55c] |
0x00001348 mov r0, r5 | r0 = r5;
0x0000134a add r1, pc | r1 = 0x2bf2;
0x0000134c blx 0xd60 | r0 = fcn_00000d60 ();
0x00001350 cmp r0, 0 |
| if (r0 != 0) {
0x00001352 bne.w 0x1716 | goto label_29;
| }
0x00001356 mov r0, r4 | r0 = r4;
0x00001358 blx 0xccc | sd_bus_message_enter_container ();
0x0000135c str.w r0, [r8, 0x18] | __asm ("str.w r0, [r8, 0x18]");
| label_0:
0x00001360 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00001362 blx 0xc40 | fcn_00000c40 ();
0x00001366 movs r3, 0 | r3 = 0;
0x00001368 ldr r0, [sp, 0x28] | r0 = var_28h;
0x0000136a mov r2, r6 | r2 = r6;
0x0000136c movs r1, 0x65 | r1 = 0x65;
0x0000136e strd r3, r3, [sp, 0x30] | __asm ("strd r3, r3, [stream]");
0x00001372 blx 0xcd8 | r0 = sd_id128_get_machine_app_specific ();
0x00001376 cmp r0, 0 |
| if (r0 < 0) {
0x00001378 blt.w 0x17a8 | goto label_30;
| }
0x0000137c ldr r0, [sp, 0x28] | r0 = var_28h;
| if (r0 == 0) {
0x0000137e beq.w 0x17dc | goto label_31;
| }
0x00001382 mov r3, r7 | r3 = r7;
0x00001384 add r2, sp, 0x30 | r2 += nitems;
0x00001386 mov r1, r6 | r1 = r6;
0x00001388 blx 0xcb4 | r0 = fwrite (r0, r1, r2, r3);
0x0000138c cmp r0, 0 |
| if (r0 < 0) {
0x0000138e blt.w 0x181e | goto label_32;
| }
0x00001392 ldr r5, [sp, 0x30] | r5 = nitems;
0x00001394 mov r1, sl | r1 = sl;
0x00001396 mov r0, r5 | r0 = r5;
0x00001398 blx 0xd60 | fcn_00000d60 ();
0x0000139c ldr r4, [sp, 0x34] | r4 = stream;
0x0000139e cmp r0, 0 |
0x000013a0 bne 0x12ee |
| }
0x000013a2 mov r0, r4 | r0 = r4;
0x000013a4 blx 0xccc | sd_bus_message_enter_container ();
0x000013a8 str.w r0, [r8, 4] | __asm ("str.w r0, [r8, 4]");
0x000013ac b 0x1360 | goto label_0;
| do {
0x000013ae ldr.w r2, [pc, 0x4f8] |
0x000013b2 movs r1, 1 | r1 = 1;
0x000013b4 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x000013b6 movs r0, 3 | r0 = 3;
0x000013b8 add r2, pc | r2 = 0x2c66;
0x000013ba blx 0xca8 | sd_bus_message_read ();
0x000013be movs r3, 0 | r3 = 0;
0x000013c0 mov r0, r5 | r0 = r5;
0x000013c2 str r3, [sp, 0x14] | var_14h = r3;
0x000013c4 mov r5, r3 | r5 = r3;
0x000013c6 blx 0xd2c | fcn_00000d2c ();
0x000013ca ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x000013cc mov fp, r5 |
| label_17:
0x000013ce ldr r0, [sp, 0x14] | r0 = var_14h;
0x000013d0 blx 0xc1c | fcn_00000c1c ();
0x000013d4 mov r0, fp | r0 = fp;
0x000013d6 blx 0xc1c | fcn_00000c1c ();
| if (r7 != 0) {
0x000013da cbz r7, 0x13e2 |
0x000013dc mov r0, r7 | r0 = r7;
0x000013de blx 0xc34 | fcn_00000c34 ();
| }
| label_11:
0x000013e2 ldr r3, [r4] | r3 = *(r4);
0x000013e4 cmp r3, 0 |
| if (r3 == 0) {
0x000013e6 beq.w 0x15cc | goto label_33;
| }
| label_2:
0x000013ea ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000013ec cmp r3, 0 |
| if (r3 == 0) {
0x000013ee beq.w 0x15de | goto label_34;
| }
| label_3:
0x000013f2 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000013f4 cmp r3, 0 |
| if (r3 == 0) {
0x000013f6 beq.w 0x15f0 | goto label_35;
| }
| label_4:
0x000013fa ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000013fc cmp r3, 0 |
| if (r3 == 0) {
0x000013fe beq.w 0x1602 | goto label_36;
| }
| label_5:
0x00001402 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x00001404 cmp r3, 0 |
| if (r3 == 0) {
0x00001406 beq.w 0x1614 | goto label_37;
| }
| label_6:
0x0000140a ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x0000140c cmp r3, 0 |
| if (r3 == 0) {
0x0000140e beq.w 0x1626 | goto label_38;
| }
| label_7:
0x00001412 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x00001414 cmp r3, 0 |
| if (r3 == 0) {
0x00001416 beq.w 0x1638 | goto label_39;
| }
| label_8:
0x0000141a ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x0000141c cmp r3, 0 |
| if (r3 == 0) {
0x0000141e beq.w 0x164a | goto label_40;
| }
| label_9:
0x00001422 ldr r0, [sp, 0x24] | r0 = var_24h;
| if (r0 != 0) {
0x00001424 cbz r0, 0x142a |
0x00001426 blx 0xc98 | fcn_00000c98 ();
| }
0x0000142a mov r0, sb | r0 = sb;
0x0000142c blx 0xd2c | fcn_00000d2c ();
0x00001430 ldr.w r2, [pc, 0x478] |
0x00001434 ldr.w r3, [pc, 0x43c] | r3 = *(0x1874);
0x00001438 add r2, pc | r2 = 0x2ce8;
0x0000143a ldr r3, [r2, r3] | r3 = *(0x2ce8);
0x0000143c ldr r2, [r3] | r2 = *(0x2ce8);
0x0000143e ldr r3, [sp, 0x64] | r3 = var_64h;
0x00001440 eors r2, r3 | r2 ^= r3;
0x00001442 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001446 bne.w 0x186c | goto label_41;
| }
0x0000144a add sp, 0x6c |
0x0000144c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_23:
0x00001450 rsbs r0, r0, 0 | r0 -= ;
0x00001452 blx 0xb94 | strerror (r0);
0x00001456 ldr.w r2, [pc, 0x458] | r2 = sym.imp.sd_bus_message_unref;
0x0000145a mov r3, r0 | r3 = r0;
0x0000145c movs r1, 1 | r1 = 1;
0x0000145e movs r0, 3 | r0 = 3;
0x00001460 add r2, pc | r2 += pc;
0x00001462 blx 0xca8 | sd_bus_message_read ();
| label_14:
0x00001466 add r7, sp, 0x34 | r7 += stream;
| label_13:
0x00001468 ldr r0, [sp, 0x28] | r0 = var_28h;
| if (r0 != 0) {
0x0000146a cbz r0, 0x1470 |
0x0000146c blx 0xc34 | fcn_00000c34 ();
| }
0x00001470 ldr r0, [sp, 0x2c] | r0 = var_2ch;
| if (r0 != 0) {
0x00001472 cbz r0, 0x1478 |
0x00001474 blx 0xc34 | fcn_00000c34 ();
| }
0x00001478 ldr.w r3, [pc, 0x438] | r3 = *(0x000018b4);
0x0000147c add r5, sp, 0x54 | r5 += var_54h;
0x0000147e ldr.w r2, [pc, 0x438] |
0x00001482 mov.w sl, 0 | sl = 0;
0x00001486 ldr.w ip, [pc, 0x434] |
0x0000148a add r3, pc | r3 += pc;
0x0000148c ldr r6, [sp, 0x24] | r6 = var_24h;
0x0000148e add r2, pc | r2 = 0x2d4c;
0x00001490 adds r3, 0x20 | r3 += 0x20;
0x00001492 str r2, [sp, 4] | var_4h_2 = r2;
0x00001494 add ip, pc | ip = 0x2d56;
0x00001496 ldm r3, {r0, r1, r2, r3} | r0 = *(r3);
| r1 = *((r3 + 4));
| r2 = *((r3 + 8));
| r3 = *((r3 + 12));
0x00001498 str.w ip, [sp] | __asm ("str.w ip, [sp]");
0x0000149c vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x000014a0 stm.w r5, {r0, r1, r2, r3} | *(r5) = r0;
| *((r5 + 4)) = r1;
| *((r5 + 8)) = r2;
| *((r5 + 12)) = r3;
0x000014a4 mov r2, ip | r2 = ip;
0x000014a6 ldr.w r3, [pc, 0x418] |
0x000014aa mov r1, r7 | r1 = r7;
0x000014ac mov r0, r6 | r0 = r6;
0x000014ae vstr d16, [sp, 0x48] | __asm ("vstr d16, [sp, 0x48]");
0x000014b2 add r3, pc | r3 = 0x2d78;
0x000014b4 strd sl, sl, [sp, 0x28] | __asm ("strd sl, sl, [var_2ch]");
0x000014b8 str.w sl, [sp, 0x50] | __asm ("str.w sl, [var_50h]");
0x000014bc str.w sl, [sp, 0x34] | __asm ("str.w sl, [stream]");
0x000014c0 blx 0xd20 | r0 = sd_bus_error_free ();
0x000014c4 cmp r0, 0 |
| if (r0 < 0) {
0x000014c6 blt.w 0x16ac | goto label_42;
| }
0x000014ca ldr r0, [sp, 0x34] | r0 = stream;
0x000014cc mov r1, r5 | r1 = r5;
0x000014ce blx 0xd14 | r0 = sd_bus_message_new_method_call ();
0x000014d2 cmp r0, 0 |
| if (r0 < 0) {
0x000014d4 blt.w 0x17e8 | goto label_43;
| }
0x000014d8 ldr r1, [sp, 0x34] | r1 = stream;
0x000014da add.w fp, sp, 0x28 |
0x000014de add r5, sp, 0x48 | r5 += var_48h;
0x000014e0 movs r3, 0 | r3 = 0;
0x000014e2 mov r0, r6 | r0 = r6;
0x000014e4 movs r2, 0 | r2 = 0;
0x000014e6 str.w fp, [sp, 4] | __asm ("str.w fp, [var_4h_2]");
0x000014ea str r5, [sp] | *(sp) = r5;
0x000014ec str r1, [sp, 0x2c] | var_2ch = r1;
0x000014ee str r1, [sp, 0x14] | var_14h = r1;
0x000014f0 blx 0xc00 | r0 = sd_bus_call ();
0x000014f4 adds r3, r0, 4 | r3 = r0 + 4;
0x000014f6 ldr r1, [sp, 0x14] | r1 = var_14h;
| if (r3 == r0) {
0x000014f8 beq.w 0x1760 | goto label_44;
| }
| label_16:
0x000014fc cmp r0, 0 |
0x000014fe blt.w 0x13ae |
| } while (r0 < 0);
0x00001502 ldr r2, [pc, 0x3c0] |
0x00001504 movs r1, 0x61 | r1 = 0x61;
0x00001506 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00001508 add r2, pc | r2 = 0x2dd2;
0x0000150a blx 0xcd8 | r0 = sd_id128_get_machine_app_specific ();
0x0000150e cmp r0, 0 |
| if (r0 < 0) {
0x00001510 blt.w 0x183a | goto label_45;
| }
0x00001514 movs r3, 0 | r3 = 0;
0x00001516 ldr.w r8, [pc, 0x3b0] |
0x0000151a mov fp, r3 |
0x0000151c str r3, [sp, 0x14] | var_14h = r3;
0x0000151e ldr r3, [pc, 0x3ac] |
0x00001520 ldr.w sl, [pc, 0x3ac] | sl = sym.imp.sd_bus_message_new_method_call;
0x00001524 add r8, pc | r8 = 0x2df2;
0x00001526 add r3, pc | r3 = 0x2df8;
0x00001528 add sl, pc | sl += pc;
0x0000152a strd r3, sb, [sp, 0x18] | __asm ("strd r3, sb, [var_1ch]");
0x0000152e b 0x154a |
| while (r0 == 0) {
0x00001530 ldr r1, [pc, 0x3a0] |
0x00001532 mov r0, r6 | r0 = r6;
0x00001534 add r1, pc | r1 = 0x2e0c;
0x00001536 blx 0xd60 | r0 = fcn_00000d60 ();
0x0000153a cmp r0, 0 |
| if (r0 != 0) {
0x0000153c bne.w 0x1666 | goto label_46;
| }
0x00001540 movs r3, 1 | r3 = 1;
0x00001542 str r3, [r4, 0x24] | *((r4 + 0x24)) = r3;
| label_1:
0x00001544 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00001546 blx 0xc40 | fcn_00000c40 ();
0x0000154a movs r3, 0 | r3 = 0;
0x0000154c ldr r0, [sp, 0x28] | r0 = var_28h;
0x0000154e mov r2, r8 | r2 = r8;
0x00001550 movs r1, 0x65 | r1 = 0x65;
0x00001552 strd r3, r3, [sp, 0x30] | __asm ("strd r3, r3, [stream]");
0x00001556 blx 0xcd8 | r0 = sd_id128_get_machine_app_specific ();
0x0000155a subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 < r0) {
0x0000155c blt.w 0x178c | goto label_47;
| }
0x00001560 ldr r0, [sp, 0x28] | r0 = var_28h;
| if (r5 == r0) {
0x00001562 beq.w 0x17c4 | goto label_48;
| }
0x00001566 mov r3, r7 | r3 = r7;
0x00001568 add r2, sp, 0x30 | r2 += nitems;
0x0000156a mov r1, r8 | r1 = r8;
0x0000156c blx 0xcb4 | r0 = fwrite (r0, r1, r2, r3);
0x00001570 cmp r0, 0 |
| if (r0 < 0) {
0x00001572 blt.w 0x1804 | goto label_49;
| }
0x00001576 ldr r5, [sp, 0x30] | r5 = nitems;
0x00001578 mov r1, sl | r1 = sl;
0x0000157a mov r0, r5 | r0 = r5;
0x0000157c blx 0xd60 | fcn_00000d60 ();
0x00001580 ldr r6, [sp, 0x34] | r6 = stream;
0x00001582 mov sb, r0 | sb = r0;
0x00001584 cmp r0, 0 |
0x00001586 beq 0x1530 |
| }
0x00001588 ldr r1, [sp, 0x18] | r1 = var_18h;
0x0000158a mov r0, r5 | r0 = r5;
0x0000158c blx 0xd60 | r0 = fcn_00000d60 ();
0x00001590 cmp r0, 0 |
| if (r0 == 0) {
0x00001592 beq 0x168a | goto label_50;
| }
0x00001594 ldr r1, [pc, 0x340] |
0x00001596 mov r0, r5 | r0 = r5;
0x00001598 add r1, pc | r1 = 0x2e74;
0x0000159a blx 0xd60 | r0 = fcn_00000d60 ();
0x0000159e cmp r0, 0 |
| if (r0 != 0) {
0x000015a0 bne 0x1678 | goto label_51;
| }
0x000015a2 mov r0, r6 | r0 = r6;
0x000015a4 blx 0xccc | sd_bus_message_enter_container ();
0x000015a8 str r0, [sp, 0x14] | var_14h = r0;
0x000015aa b 0x1544 | goto label_1;
| label_18:
0x000015ac rsbs r0, r0, 0 | r0 -= ;
0x000015ae add.w sb, sp, 0x38 | sb += var_38h;
0x000015b2 blx 0xb94 | strerror (r0);
0x000015b6 ldr r2, [pc, 0x324] |
0x000015b8 mov r3, r0 | r3 = r0;
0x000015ba movs r1, 1 | r1 = 1;
0x000015bc movs r0, 3 | r0 = 3;
0x000015be add r2, pc | r2 = 0x2ea0;
0x000015c0 blx 0xca8 | sd_bus_message_read ();
0x000015c4 ldr r3, [r4] | r3 = *(r4);
0x000015c6 cmp r3, 0 |
| if (r3 != 0) {
0x000015c8 bne.w 0x13ea | goto label_2;
| }
| label_33:
0x000015cc ldr r0, [pc, 0x310] |
0x000015ce add r0, pc | r0 = 0x2eb2;
0x000015d0 blx 0xccc | sd_bus_message_enter_container ();
0x000015d4 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x000015d6 str r0, [r4] | *(r4) = r0;
0x000015d8 cmp r3, 0 |
| if (r3 != 0) {
0x000015da bne.w 0x13f2 | goto label_3;
| }
| label_34:
0x000015de ldr r0, [pc, 0x304] |
0x000015e0 add r0, pc | r0 = 0x2eca;
0x000015e2 blx 0xccc | sd_bus_message_enter_container ();
0x000015e6 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000015e8 str r0, [r4, 4] | *((r4 + 4)) = r0;
0x000015ea cmp r3, 0 |
| if (r3 != 0) {
0x000015ec bne.w 0x13fa | goto label_4;
| }
| label_35:
0x000015f0 ldr r0, [pc, 0x2f4] |
0x000015f2 add r0, pc | r0 = 0x2ede;
0x000015f4 blx 0xccc | sd_bus_message_enter_container ();
0x000015f8 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000015fa str r0, [r4, 8] | *((r4 + 8)) = r0;
0x000015fc cmp r3, 0 |
| if (r3 != 0) {
0x000015fe bne.w 0x1402 | goto label_5;
| }
| label_36:
0x00001602 ldr r0, [pc, 0x2e8] |
0x00001604 add r0, pc | r0 = 0x2ef6;
0x00001606 blx 0xccc | sd_bus_message_enter_container ();
0x0000160a ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x0000160c str r0, [r4, 0xc] | *((r4 + 0xc)) = r0;
0x0000160e cmp r3, 0 |
| if (r3 != 0) {
0x00001610 bne.w 0x140a | goto label_6;
| }
| label_37:
0x00001614 ldr r0, [pc, 0x2d8] |
0x00001616 add r0, pc | r0 = 0x2f0a;
0x00001618 blx 0xccc | sd_bus_message_enter_container ();
0x0000161c ldr r3, [r4, 0x14] | r3 = *((r4 + 0x14));
0x0000161e str r0, [r4, 0x10] | *((r4 + 0x10)) = r0;
0x00001620 cmp r3, 0 |
| if (r3 != 0) {
0x00001622 bne.w 0x1412 | goto label_7;
| }
| label_38:
0x00001626 ldr r0, [pc, 0x2cc] |
0x00001628 add r0, pc | r0 = 0x2f22;
0x0000162a blx 0xccc | sd_bus_message_enter_container ();
0x0000162e ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x00001630 str r0, [r4, 0x14] | *((r4 + 0x14)) = r0;
0x00001632 cmp r3, 0 |
| if (r3 != 0) {
0x00001634 bne.w 0x141a | goto label_8;
| }
| label_39:
0x00001638 ldr r0, [pc, 0x2bc] |
0x0000163a add r0, pc | r0 = 0x2f36;
0x0000163c blx 0xccc | sd_bus_message_enter_container ();
0x00001640 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00001642 str r0, [r4, 0x18] | *((r4 + 0x18)) = r0;
0x00001644 cmp r3, 0 |
| if (r3 != 0) {
0x00001646 bne.w 0x1422 | goto label_9;
| }
| label_40:
0x0000164a ldr r0, [pc, 0x2b0] |
0x0000164c add r0, pc | r0 = 0x2f4e;
0x0000164e blx 0xccc | sd_bus_message_enter_container ();
0x00001652 str r0, [r4, 0x1c] | *((r4 + 0x1c)) = r0;
0x00001654 b 0x1422 | goto label_9;
| label_20:
0x00001656 ldr r2, [pc, 0x2a8] |
0x00001658 movs r1, 1 | r1 = 1;
0x0000165a ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x0000165c movs r0, 3 | r0 = 3;
0x0000165e add r2, pc | r2 = 0x2f64;
0x00001660 blx 0xca8 | sd_bus_message_read ();
0x00001664 b 0x1276 | goto label_10;
| label_46:
0x00001666 str.w sb, [r4, 0x24] | __asm ("str.w sb, [r4, 0x24]");
0x0000166a b 0x1544 | goto label_1;
| label_24:
0x0000166c mov r0, r4 | r0 = r4;
0x0000166e blx 0xccc | sd_bus_message_enter_container ();
0x00001672 str.w r0, [r8] | __asm ("str.w r0, [r8]");
0x00001676 b 0x1360 | goto label_0;
| label_51:
0x00001678 ldr r2, [pc, 0x288] |
0x0000167a mov r3, r5 | r3 = r5;
0x0000167c movs r1, 1 | r1 = 1;
0x0000167e movs r0, 4 | r0 = 4;
0x00001680 str r6, [sp] | *(sp) = r6;
0x00001682 add r2, pc | r2 = 0x2f8a;
0x00001684 blx 0xca8 | sd_bus_message_read ();
0x00001688 b 0x1544 | goto label_1;
| label_50:
0x0000168a mov r0, r6 | r0 = r6;
0x0000168c blx 0xccc | r0 = sd_bus_message_enter_container ();
0x00001690 mov fp, r0 |
0x00001692 b 0x1544 | goto label_1;
| label_25:
0x00001694 mov r0, r4 | r0 = r4;
0x00001696 blx 0xccc | sd_bus_message_enter_container ();
0x0000169a str.w r0, [r8, 8] | __asm ("str.w r0, [r8, 8]");
0x0000169e b 0x1360 | goto label_0;
| label_26:
0x000016a0 mov r0, r4 | r0 = r4;
0x000016a2 blx 0xccc | sd_bus_message_enter_container ();
0x000016a6 str.w r0, [r8, 0xc] | __asm ("str.w r0, [r8, 0xc]");
0x000016aa b 0x1360 | goto label_0;
| label_42:
0x000016ac rsbs r0, r0, 0 | r0 -= ;
0x000016ae blx 0xb94 | strerror (r0);
0x000016b2 ldr r2, [pc, 0x254] |
0x000016b4 mov r3, r0 | r3 = r0;
0x000016b6 movs r1, 1 | r1 = 1;
0x000016b8 movs r0, 3 | r0 = 3;
0x000016ba add r2, pc | r2 = 0x2fc8;
0x000016bc blx 0xca8 | sd_bus_message_read ();
0x000016c0 b 0x13e2 | goto label_11;
| label_19:
0x000016c2 mov r0, sb | r0 = sb;
0x000016c4 blx 0xd2c | fcn_00000d2c ();
0x000016c8 ldr r3, [pc, 0x240] |
0x000016ca movs r1, 1 | r1 = 1;
0x000016cc ldr r2, [pc, 0x240] |
0x000016ce movs r0, 7 | r0 = 7;
0x000016d0 add r3, pc | r3 = 0x2fe0;
0x000016d2 add r2, pc | r2 = 0x2fe6;
0x000016d4 blx 0xca8 | sd_bus_message_read ();
0x000016d8 ldr r0, [sp, 0x24] | r0 = var_24h;
0x000016da mov r2, r7 | r2 = r7;
0x000016dc mov r3, r6 | r3 = r6;
0x000016de mov r1, r6 | r1 = r6;
0x000016e0 str.w sl, [sp, 8] | __asm ("str.w sl, [var_8h]");
0x000016e4 str.w r8, [sp] | __asm ("str.w r8, [sp]");
0x000016e8 str.w sb, [sp, 4] | __asm ("str.w sb, [var_4h_2]");
0x000016ec blx 0xbf4 | sd_bus_get_property_string ();
0x000016f0 b 0x1268 | goto label_12;
| label_27:
0x000016f2 mov r0, r4 | r0 = r4;
0x000016f4 blx 0xccc | sd_bus_message_enter_container ();
0x000016f8 str.w r0, [r8, 0x10] | __asm ("str.w r0, [r8, 0x10]");
0x000016fc b 0x1360 | goto label_0;
| label_22:
0x000016fe ldr r2, [pc, 0x214] |
0x00001700 movs r1, 1 | r1 = 1;
0x00001702 ldr r3, [sp, 0x4c] | r3 = var_4ch;
0x00001704 movs r0, 3 | r0 = 3;
0x00001706 add r7, sp, 0x34 | r7 += stream;
0x00001708 add r2, pc | r2 = 0x3022;
0x0000170a blx 0xca8 | sd_bus_message_read ();
0x0000170e mov r0, r5 | r0 = r5;
0x00001710 blx 0xd2c | fcn_00000d2c ();
0x00001714 b 0x1468 | goto label_13;
| label_29:
0x00001716 ldr r2, [pc, 0x200] |
0x00001718 mov r3, r5 | r3 = r5;
0x0000171a movs r1, 1 | r1 = 1;
0x0000171c movs r0, 4 | r0 = 4;
0x0000171e str r4, [sp] | *(sp) = r4;
0x00001720 add r2, pc | r2 = 0x303e;
0x00001722 blx 0xca8 | sd_bus_message_read ();
0x00001726 b 0x1360 | goto label_0;
| label_28:
0x00001728 mov r0, r4 | r0 = r4;
0x0000172a blx 0xccc | sd_bus_message_enter_container ();
0x0000172e str.w r0, [r8, 0x14] | __asm ("str.w r0, [r8, 0x14]");
0x00001732 b 0x1360 | goto label_0;
| label_21:
0x00001734 mov r0, sl | r0 = sl;
0x00001736 blx 0xc34 | fcn_00000c34 ();
0x0000173a mov r0, r5 | r0 = r5;
0x0000173c blx 0xd2c | fcn_00000d2c ();
0x00001740 mov r1, r8 | r1 = r8;
0x00001742 mov r0, r6 | r0 = r6;
0x00001744 bl 0x10e0 | r0 = fcn_000010e0 (r0, r1);
0x00001748 cmp r0, 0 |
| if (r0 < 0) {
0x0000174a blt.w 0x1466 | goto label_14;
| }
0x0000174e ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x00001750 mov r0, r6 | r0 = r6;
0x00001752 movs r2, 0 | r2 = 0;
0x00001754 movs r3, 0 | r3 = 0;
0x00001756 str r7, [sp, 4] | var_4h_2 = r7;
0x00001758 str r5, [sp] | *(sp) = r5;
0x0000175a blx 0xc00 | sd_bus_call ();
0x0000175e b 0x12b8 | goto label_15;
| label_44:
0x00001760 mov r0, r1 | r0 = r1;
0x00001762 blx 0xc34 | fcn_00000c34 ();
0x00001766 mov r0, r5 | r0 = r5;
0x00001768 blx 0xd2c | fcn_00000d2c ();
0x0000176c mov r1, r8 | r1 = r8;
0x0000176e mov r0, r6 | r0 = r6;
0x00001770 bl 0x10e0 | r0 = fcn_000010e0 (r0, r1);
0x00001774 cmp r0, 0 |
| if (r0 < 0) {
0x00001776 blt 0x1862 | goto label_52;
| }
0x00001778 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x0000177a mov r0, r6 | r0 = r6;
0x0000177c movs r2, 0 | r2 = 0;
0x0000177e movs r3, 0 | r3 = 0;
0x00001780 str.w fp, [sp, 4] | __asm ("str.w fp, [var_4h_2]");
0x00001784 str r5, [sp] | *(sp) = r5;
0x00001786 blx 0xc00 | sd_bus_call ();
0x0000178a b 0x14fc | goto label_16;
| label_47:
0x0000178c rsbs r0, r5, 0 | r0 = r5 - ;
0x0000178e ldr.w sb, [sp, 0x1c] | sb = var_1ch;
0x00001792 blx 0xb94 | strerror (r0);
0x00001796 ldr r2, [pc, 0x184] |
0x00001798 mov r3, r0 | r3 = r0;
0x0000179a movs r1, 1 | r1 = 1;
0x0000179c movs r0, 3 | r0 = 3;
0x0000179e add r2, pc | r2 = 0x30c0;
0x000017a0 blx 0xca8 | sd_bus_message_read ();
| do {
0x000017a4 ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x000017a6 b 0x13ce | goto label_17;
| label_30:
0x000017a8 rsbs r0, r0, 0 | r0 -= ;
0x000017aa mov r4, r8 | r4 = r8;
0x000017ac ldr.w r8, [sp, 0x14] | r8 = var_14h;
0x000017b0 blx 0xb94 | strerror (r0);
0x000017b4 ldr r2, [pc, 0x168] |
0x000017b6 mov r3, r0 | r3 = r0;
0x000017b8 movs r1, 1 | r1 = 1;
0x000017ba movs r0, 3 | r0 = 3;
0x000017bc add r2, pc | r2 = 0x30e0;
0x000017be blx 0xca8 | sd_bus_message_read ();
0x000017c2 b 0x1468 | goto label_13;
| label_48:
0x000017c4 ldr.w sb, [sp, 0x1c] | sb = var_1ch;
0x000017c8 blx 0xc40 | fcn_00000c40 ();
0x000017cc ldr r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x000017ce cmp r3, 0 |
| if (r3 == 0) {
0x000017d0 beq 0x1858 | goto label_53;
| }
0x000017d2 ldr r3, [sp, 0x14] | r3 = var_14h;
0x000017d4 ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x000017d6 str r5, [sp, 0x14] | var_14h = r5;
0x000017d8 str r3, [r4, 0x20] | *((r4 + 0x20)) = r3;
0x000017da b 0x13ce | goto label_17;
| label_31:
0x000017dc mov r4, r8 | r4 = r8;
0x000017de ldr.w r8, [sp, 0x14] | r8 = var_14h;
0x000017e2 blx 0xc40 | fcn_00000c40 ();
0x000017e6 b 0x1468 | goto label_13;
| label_43:
0x000017e8 rsbs r0, r0, 0 | r0 -= ;
0x000017ea blx 0xb94 | strerror (r0);
0x000017ee ldr r2, [pc, 0x134] |
0x000017f0 mov r3, r0 | r3 = r0;
0x000017f2 movs r1, 1 | r1 = 1;
0x000017f4 movs r0, 3 | r0 = 3;
0x000017f6 add r2, pc | r2 = 0x3120;
0x000017f8 blx 0xca8 | sd_bus_message_read ();
0x000017fc ldr r0, [sp, 0x34] | r0 = stream;
0x000017fe blx 0xc34 | fcn_00000c34 ();
0x00001802 b 0x13e2 | goto label_11;
| label_49:
0x00001804 rsbs r0, r0, 0 | r0 -= ;
0x00001806 ldr.w sb, [sp, 0x1c] | sb = var_1ch;
0x0000180a blx 0xb94 | strerror (r0);
0x0000180e ldr r2, [pc, 0x118] |
0x00001810 mov r3, r0 | r3 = r0;
0x00001812 movs r1, 1 | r1 = 1;
0x00001814 movs r0, 3 | r0 = 3;
0x00001816 add r2, pc | r2 = 0x3144;
0x00001818 blx 0xca8 | sd_bus_message_read ();
0x0000181c b 0x17a4 |
| } while (1);
| label_32:
0x0000181e rsbs r0, r0, 0 | r0 -= ;
0x00001820 mov r4, r8 | r4 = r8;
0x00001822 ldr.w r8, [sp, 0x14] | r8 = var_14h;
0x00001826 blx 0xb94 | strerror (r0);
0x0000182a ldr r2, [pc, 0x100] |
0x0000182c mov r3, r0 | r3 = r0;
0x0000182e movs r1, 1 | r1 = 1;
0x00001830 movs r0, 3 | r0 = 3;
0x00001832 add r2, pc | r2 = 0x3164;
0x00001834 blx 0xca8 | sd_bus_message_read ();
0x00001838 b 0x1468 | goto label_13;
| label_45:
0x0000183a rsbs r0, r0, 0 | r0 -= ;
0x0000183c blx 0xb94 | strerror (r0);
0x00001840 ldr r2, [pc, 0xec] |
0x00001842 mov r3, r0 | r3 = r0;
0x00001844 movs r1, 1 | r1 = 1;
0x00001846 movs r0, 3 | r0 = 3;
0x00001848 add r2, pc | r2 = 0x317c;
0x0000184a blx 0xca8 | sd_bus_message_read ();
0x0000184e movs r3, 0 | r3 = 0;
0x00001850 ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x00001852 mov fp, r3 |
0x00001854 str r3, [sp, 0x14] | var_14h = r3;
0x00001856 b 0x13ce | goto label_17;
| label_53:
0x00001858 str.w fp, [r4, 0x20] | __asm ("str.w fp, [r4, 0x20]");
0x0000185c mov fp, r3 |
0x0000185e ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x00001860 b 0x13ce | goto label_17;
| label_52:
0x00001862 ldr r7, [sp, 0x2c] | r7 = var_2ch;
0x00001864 mov fp, sl |
0x00001866 str.w sl, [sp, 0x14] | __asm ("str.w sl, [var_14h]");
0x0000186a b 0x13ce | goto label_17;
| label_41:
0x0000186c blx 0xcf0 | fprintf_chk ()
0x00001870 cmp r5, 0x26 |
0x00001872 movs r0, r0 |
0x00001874 lsls r4, r7, 2 | r4 = r7 << 2;
0x00001876 movs r0, r0 |
0x00001878 lsrs r0, r5, 0x14 | r0 = r5 >> 0x14;
0x0000187a movs r0, r0 |
0x0000187c lsrs r4, r6, 0x14 | r4 = r6 >> 0x14;
0x0000187e movs r0, r0 |
0x00001880 lsrs r0, r0, 0x15 | r0 >>= 0x15;
0x00001882 movs r0, r0 |
0x00001884 lsrs r2, r0, 0x17 | r2 = r0 >> 0x17;
0x00001886 movs r0, r0 |
0x00001888 lsrs r0, r2, 0x17 | r0 = r2 >> 0x17;
0x0000188a movs r0, r0 |
0x0000188c lsrs r6, r2, 0x18 | r6 = r2 >> 0x18;
0x0000188e movs r0, r0 |
0x00001890 lsrs r2, r4, 0x18 | r2 = r4 >> 0x18;
0x00001892 movs r0, r0 |
0x00001894 lsrs r2, r2, 0x18 | r2 >>= 0x18;
0x00001896 movs r0, r0 |
0x00001898 lsrs r0, r2, 0x18 | r0 = r2 >> 0x18;
0x0000189a movs r0, r0 |
0x0000189c lsrs r6, r0, 0x18 | r6 = r0 >> 0x18;
0x0000189e movs r0, r0 |
0x000018a0 lsrs r0, r0, 0x18 | r0 >>= 0x18;
0x000018a2 movs r0, r0 |
0x000018a4 lsrs r6, r6, 0x17 | r6 >>= 0x17;
0x000018a6 movs r0, r0 |
0x000018a8 lsrs r4, r5, 0x18 | r4 = r5 >> 0x18;
0x000018aa movs r0, r0 |
0x000018ac cmp r3, 0 |
0x000018ae movs r0, r0 |
0x000018b0 lsrs r0, r6, 0x10 | r0 = r6 >> 0x10;
0x000018b2 movs r0, r0 |
0x000018b4 cmp r3, 0x76 |
0x000018b6 movs r0, r0 |
0x000018b8 lsrs r2, r3, 0x14 | r2 = r3 >> 0x14;
0x000018ba movs r0, r0 |
0x000018bc lsrs r0, r7, 0x13 | r0 = r7 >> 0x13;
0x000018be movs r0, r0 |
0x000018c0 lsrs r6, r7, 0x12 | r6 = r7 >> 0x12;
0x000018c2 movs r0, r0 |
0x000018c4 lsrs r0, r0, 0xe | r0 >>= 0xe;
0x000018c6 movs r0, r0 |
0x000018c8 lsrs r0, r2, 0xe | r0 = r2 >> 0xe;
0x000018ca movs r0, r0 |
0x000018cc lsrs r2, r7, 0x14 | r2 = r7 >> 0x14;
0x000018ce movs r0, r0 |
0x000018d0 lsrs r4, r2, 0x14 | r4 = r2 >> 0x14;
0x000018d2 movs r0, r0 |
0x000018d4 lsrs r4, r4, 0x14 | r4 >>= 0x14;
0x000018d6 movs r0, r0 |
0x000018d8 lsrs r0, r3, 0x13 | r0 = r3 >> 0x13;
0x000018da movs r0, r0 |
0x000018dc lsrs r2, r1, 6 | r2 = r1 >> 6;
0x000018de movs r0, r0 |
0x000018e0 lsrs r2, r2, 0x13 | r2 >>= 0x13;
0x000018e2 movs r0, r0 |
0x000018e4 lsrs r0, r1, 0x13 | r0 = r1 >> 0x13;
0x000018e6 movs r0, r0 |
0x000018e8 lsrs r6, r7, 0x12 | r6 = r7 >> 0x12;
0x000018ea movs r0, r0 |
0x000018ec lsrs r0, r6, 8 | r0 = r6 >> 8;
0x000018ee movs r0, r0 |
0x000018f0 lsrs r6, r3, 8 | r6 = r3 >> 8;
0x000018f2 movs r0, r0 |
0x000018f4 lsrs r4, r2, 0x12 | r4 = r2 >> 0x12;
0x000018f6 movs r0, r0 |
0x000018f8 lsrs r2, r7, 7 | r2 = r7 >> 7;
0x000018fa movs r0, r0 |
0x000018fc lsrs r0, r5, 7 | r0 = r5 >> 7;
0x000018fe movs r0, r0 |
0x00001900 lsrs r2, r3, 7 | r2 = r3 >> 7;
0x00001902 movs r0, r0 |
0x00001904 lsrs r2, r7, 0xf | r2 = r7 >> 0xf;
0x00001906 movs r0, r0 |
0x00001908 lsrs r6, r7, 0xb | r6 = r7 >> 0xb;
0x0000190a movs r0, r0 |
0x0000190c lsrs r4, r1, 3 | r4 = r1 >> 3;
0x0000190e movs r0, r0 |
0x00001910 lsrs r6, r1, 5 | r6 = r1 >> 5;
0x00001912 movs r0, r0 |
0x00001914 lsrs r0, r3, 5 | r0 = r3 >> 5;
0x00001916 movs r0, r0 |
0x00001918 lsrs r0, r6, 8 | r0 = r6 >> 8;
0x0000191a movs r0, r0 |
0x0000191c lsrs r6, r5, 9 | r6 = r5 >> 9;
0x0000191e movs r0, r0 |
0x00001920 lsrs r4, r7, 3 | r4 = r7 >> 3;
0x00001922 movs r0, r0 |
0x00001924 lsls r6, r5, 0x1c | r6 = r5 << 0x1c;
0x00001926 movs r0, r0 |
0x00001928 lsrs r6, r0, 3 | r6 = r0 >> 3;
0x0000192a movs r0, r0 |
0x0000192c lsrs r2, r5, 2 | r2 = r5 >> 2;
0x0000192e movs r0, r0 |
0x00001930 lsrs r0, r1, 1 | r0 = r1 >> 1;
0x00001932 movs r0, r0 |
| }
[*] Function fprintf used 5 times basic_device.so