[*] Binary protection state of doorcontrold

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function fprintf tear down of doorcontrold

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0x9dd8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00009dd8 ()                                      | void fcn_00009dd8 (int16_t arg_4h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00009dd8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00009ddc sub sp, 0xc                                       |     
    0x00009dde cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00009de0 beq 0x9e9c                                        |         goto label_6;
                                                                 |     }
    0x00009de2 mov r8, r0                                        |     r8 = r0;
    0x00009de4 mov sb, r1                                        |     sb = r1;
    0x00009de6 ldr r3, [pc, 0xe8]                                |     
    0x00009de8 mov sl, r2                                        |     sl = r2;
    0x00009dea add r3, pc                                        |     r3 = 0x13cc0;
    0x00009dec ldr r0, [r3, 4]                                   |     r0 = *(0x13cc4);
    0x00009dee blx 0x6744                                        |     r0 = fprintf_chk ()
    0x00009df2 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 == 0) {
    0x00009df4 cbz r0, 0x9e1e                                    |         goto label_5;
                                                                 |     }
    0x00009df6 ldr.w fp, [pc, 0xdc]                              |     fp = *(0x00009ed4);
    0x00009dfa add fp, pc                                        |     
                                                                 |     do {
                                                                 | label_4:
    0x00009dfc ldr r6, [r7]                                      |         r6 = *(r7);
    0x00009dfe cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00009e00 beq 0x9e82                                        |             goto label_7;
                                                                 |         }
    0x00009e02 cmp.w sb, 0                                       |         
                                                                 |         if (sb == 0) {
    0x00009e06 beq 0x9e24                                        |             goto label_8;
                                                                 |         }
    0x00009e08 ldr r1, [r6]                                      |         r1 = *(r6);
    0x00009e0a mov r0, sb                                        |         r0 = sb;
    0x00009e0c blx 0x6e48                                        |         r0 = fcn_00006e48 ();
                                                                 |         if (r0 == 0) {
    0x00009e10 cbz r0, 0x9e24                                    |             goto label_8;
                                                                 |         }
                                                                 | label_0:
    0x00009e12 ldr r3, [r6, 4]                                   |         r3 = *((r6 + 4));
    0x00009e14 ldr r7, [r7, 4]                                   |         r7 = *((r7 + 4));
    0x00009e16 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00009e18 beq 0x9eb6                                        |             goto label_9;
                                                                 |         }
    0x00009e1a cmp r7, 0                                         |         
    0x00009e1c bne 0x9dfc                                        |         
                                                                 |     } while (r7 != 0);
                                                                 | label_5:
    0x00009e1e add sp, 0xc                                       |     
    0x00009e20 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x00009e24 ldr r4, [r6, 4]                                   |     r4 = *((r6 + 4));
    0x00009e26 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00009e28 beq 0x9eb4                                        |         goto label_10;
                                                                 |     }
    0x00009e2a ldr r5, [r4]                                      |     r5 = *(r4);
                                                                 |     if (r5 == 0) {
    0x00009e2c cbz r5, 0x9e46                                    |         goto label_11;
                                                                 |     }
                                                                 | label_1:
    0x00009e2e mov r0, r8                                        |     r0 = r8;
    0x00009e30 ldr r4, [r4, 4]                                   |     r4 = *((r4 + 4));
    0x00009e32 bl 0xbf6c                                         |     fcn_0000bf6c (r0, r1, r2);
    0x00009e36 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x00009e38 cmp r3, r0                                        |     
                                                                 |     if (r3 == r0) {
    0x00009e3a beq 0x9e60                                        |         goto label_12;
                                                                 |     }
                                                                 | label_2:
    0x00009e3c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00009e3e beq 0x9e12                                        |         goto label_0;
                                                                 |     }
                                                                 | label_3:
    0x00009e40 ldr r5, [r4]                                      |     r5 = *(r4);
    0x00009e42 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00009e44 bne 0x9e2e                                        |         goto label_1;
                                                                 |     }
                                                                 | label_11:
    0x00009e46 ldr r3, [pc, 0x90]                                |     
    0x00009e48 movw r2, 0x43e                                    |     r2 = 0x43e;
    0x00009e4a tst r6, r7                                        |     
    0x00009e4c ldr r4, [pc, 0x8c]                                |     
    0x00009e4e mov r0, r5                                        |     r0 = r5;
    0x00009e50 ldr r1, [pc, 0x8c]                                |     
    0x00009e52 add r3, pc                                        |     r3 = 0x13d30;
    0x00009e54 add r4, pc                                        |     r4 = 0x13d34;
    0x00009e56 adds r3, 0xdc                                     |     r3 += 0xdc;
    0x00009e58 add r1, pc                                        |     r1 = 0x13d3c;
    0x00009e5a str r4, [sp]                                      |     *(sp) = r4;
    0x00009e5c blx 0x6ec0                                        |     fcn_00006ec0 ();
                                                                 | label_12:
    0x00009e60 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00009e64 beq 0x9e6c                                        |         goto label_13;
                                                                 |     }
    0x00009e66 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00009e68 cmp sl, r3                                        |     
                                                                 |     if (sl != r3) {
    0x00009e6a bne 0x9e3c                                        |         goto label_2;
                                                                 |     }
                                                                 | label_13:
    0x00009e6c ldr r0, [r6, 4]                                   |     r0 = *((r6 + 4));
    0x00009e6e mov r1, r5                                        |     r1 = r5;
    0x00009e70 blx 0x6868                                        |     fcn_00006868 ();
    0x00009e74 str r0, [r6, 4]                                   |     *((r6 + 4)) = r0;
    0x00009e76 mov r0, r5                                        |     r0 = r5;
    0x00009e78 blx 0x6aa4                                        |     g_assertion_message ();
    0x00009e7c cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00009e7e bne 0x9e40                                        |         goto label_3;
                                                                 |     }
    0x00009e80 b 0x9e12                                          |     goto label_0;
                                                                 | label_7:
    0x00009e82 ldr r3, [pc, 0x60]                                |     
    0x00009e84 movw r2, 0x425                                    |     r2 = 0x425;
    0x00009e88 ldr r4, [pc, 0x5c]                                |     
    0x00009e8a mov r0, r6                                        |     r0 = r6;
    0x00009e8c ldr r1, [pc, 0x5c]                                |     
    0x00009e8e add r3, pc                                        |     r3 = 0x13d78;
    0x00009e90 add r4, pc                                        |     r4 = 0x13d7c;
    0x00009e92 adds r3, 0xc4                                     |     r3 += 0xc4;
    0x00009e94 add r1, pc                                        |     r1 = 0x13d84;
    0x00009e96 str r4, [sp]                                      |     *(sp) = r4;
    0x00009e98 blx 0x6ec0                                        |     fcn_00006ec0 ();
                                                                 | label_6:
    0x00009e9c ldr r3, [pc, 0x50]                                |     
    0x00009e9e mov.w r2, 0x420                                   |     r2 = 0x420;
    0x00009ea2 ldr r4, [pc, 0x50]                                |     
    0x00009ea4 ldr r1, [pc, 0x50]                                |     
    0x00009ea6 add r3, pc                                        |     r3 = 0x13d9a;
    0x00009ea8 add r4, pc                                        |     r4 = 0x13da2;
    0x00009eaa adds r3, 0xc4                                     |     r3 += 0xc4;
    0x00009eac add r1, pc                                        |     r1 = 0x13da8;
    0x00009eae str r4, [sp]                                      |     *(sp) = r4;
    0x00009eb0 blx 0x6ec0                                        |     fcn_00006ec0 ();
                                                                 | label_10:
    0x00009eb4 ldr r7, [r7, 4]                                   |     r7 = *((r7 + 4));
                                                                 | label_9:
    0x00009eb6 ldr.w r0, [fp, 4]                                 |     r0 = *(arg_4h);
    0x00009eba mov r1, r6                                        |     r1 = r6;
    0x00009ebc blx 0x6868                                        |     fcn_00006868 ();
    0x00009ec0 str.w r0, [fp, 4]                                 |     __asm ("str.w r0, [arg_4h]");
    0x00009ec4 mov r0, r6                                        |     r0 = r6;
    0x00009ec6 blx 0x6aa4                                        |     g_assertion_message ();
    0x00009eca cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00009ecc bne 0x9dfc                                        |         goto label_4;
                                                                 |     }
    0x00009ece b 0x9e1e                                          |     goto label_5;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0xa58c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000a58c ()                  | void fcn_0000a58c (int16_t arg_90h, int16_t arg_a0h) {
                                             |     int16_t var_0h;
                                             |     int16_t var_8h;
                                             |     int16_t var_ch;
    0x0000a58c ldr r0, [pc, 0xc0]            |     
    0x0000a58e movs r2, 0                    |     r2 = 0;
    0x0000a590 ldr r1, [pc, 0xc0]            |     r1 = *(0xa654);
    0x0000a592 ldr r3, [pc, 0xc4]            |     
    0x0000a594 add r0, pc                    |     r0 = 0x14be8;
    0x0000a596 push {r4, r5, r6, lr}         |     
    0x0000a598 ldr r1, [r0, r1]              |     
    0x0000a59a sub sp, 0x10                  |     
    0x0000a59c add r3, pc                    |     r3 = 0x14bfa;
    0x0000a59e ldr r0, [r3]                  |     r0 = *(0x14bfa);
    0x0000a5a0 ldr r1, [r1]                  |     r1 = *(0x14be8);
    0x0000a5a2 str r1, [sp, 0xc]             |     var_ch = r1;
    0x0000a5a4 mov.w r1, 0                   |     r1 = 0;
    0x0000a5a8 str r2, [sp, 8]               |     var_8h = r2;
    0x0000a5aa blx 0x6744                    |     r0 = fprintf_chk ()
    0x0000a5ae mov r6, r0                    |     r6 = r0;
    0x0000a5b0 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x0000a5b2 beq 0xa630                    |         goto label_0;
                                             |     }
    0x0000a5b4 add r5, sp, 8                 |     r5 += var_8h;
    0x0000a5b6 b 0xa60c                      |     
                                             |     while (r4 != 0) {
    0x0000a5b8 movs r2, 0                    |         r2 = 0;
    0x0000a5ba mov r1, r4                    |         r1 = r4;
    0x0000a5bc mov r0, r5                    |         r0 = r5;
    0x0000a5be bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5c2 movs r2, 0xc                  |         r2 = 0xc;
    0x0000a5c4 mov r1, r4                    |         r1 = r4;
    0x0000a5c6 mov r0, r5                    |         r0 = r5;
    0x0000a5c8 bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5cc movs r2, 0xb                  |         r2 = 0xb;
    0x0000a5ce mov r1, r4                    |         r1 = r4;
    0x0000a5d0 mov r0, r5                    |         r0 = r5;
    0x0000a5d2 bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5d6 movs r2, 0xd                  |         r2 = 0xd;
    0x0000a5d8 mov r1, r4                    |         r1 = r4;
    0x0000a5da mov r0, r5                    |         r0 = r5;
    0x0000a5dc bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5e0 movs r2, 0x14                 |         r2 = 0x14;
    0x0000a5e2 mov r1, r4                    |         r1 = r4;
    0x0000a5e4 mov r0, r5                    |         r0 = r5;
    0x0000a5e6 bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5ea movs r2, 0x13                 |         r2 = 0x13;
    0x0000a5ec mov r1, r4                    |         r1 = r4;
    0x0000a5ee mov r0, r5                    |         r0 = r5;
    0x0000a5f0 bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5f4 movs r2, 0x15                 |         r2 = 0x15;
    0x0000a5f6 mov r1, r4                    |         r1 = r4;
    0x0000a5f8 mov r0, r5                    |         r0 = r5;
    0x0000a5fa bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a5fe movs r2, 0x16                 |         r2 = 0x16;
    0x0000a600 mov r1, r4                    |         r1 = r4;
    0x0000a602 mov r0, r5                    |         r0 = r5;
    0x0000a604 bl 0x9990                     |         fcn_00009990 (r0, r1, r2);
    0x0000a608 ldr r6, [r6, 4]               |         r6 = *((r6 + 4));
                                             |         if (r6 == 0) {
    0x0000a60a cbz r6, 0xa62e                |             goto label_1;
                                             |         }
    0x0000a60c ldr r4, [r6]                  |         r4 = *(r6);
    0x0000a60e cmp r4, 0                     |         
    0x0000a610 bne 0xa5b8                    |         
                                             |     }
    0x0000a612 ldr r3, [pc, 0x48]            |     
    0x0000a614 movw r2, 0x6aa                |     r2 = 0x6aa;
    0x0000a616 str r2, [r5, 0x28]            |     *((r5 + 0x28)) = r2;
    0x0000a618 ldr r5, [pc, 0x44]            |     
    0x0000a61a mov r0, r4                    |     r0 = r4;
    0x0000a61c ldr r1, [pc, 0x44]            |     
    0x0000a61e add r3, pc                    |     
    0x0000a620 add r5, pc                    |     r5 = 0x14c84;
    0x0000a622 add.w r3, r3, 0x16c           |     r3 = 0x14dec;
    0x0000a626 add r1, pc                    |     r1 = 0x14c8e;
    0x0000a628 str r5, [sp]                  |     *(sp) = r5;
    0x0000a62a blx 0x6ec0                    |     fcn_00006ec0 ();
                                             | label_1:
    0x0000a62e ldr r6, [sp, 8]               |     r6 = var_8h;
                                             | label_0:
    0x0000a630 ldr r2, [pc, 0x34]            |     
    0x0000a632 ldr r3, [pc, 0x20]            |     r3 = *(0xa656);
    0x0000a634 add r2, pc                    |     r2 = 0x14ca0;
    0x0000a636 ldr r3, [r2, r3]              |     r3 = *(0x14ca0);
    0x0000a638 ldr r2, [r3]                  |     r2 = *(0x14ca0);
    0x0000a63a ldr r3, [sp, 0xc]             |     r3 = var_ch;
    0x0000a63c eors r2, r3                   |     r2 ^= r3;
    0x0000a63e mov.w r3, 0                   |     r3 = 0;
                                             |     if (r2 == r3) {
    0x0000a642 bne 0xa64a                    |         
    0x0000a644 mov r0, r6                    |         r0 = r6;
    0x0000a646 add sp, 0x10                  |         
    0x0000a648 pop {r4, r5, r6, pc}          |         
                                             |     }
    0x0000a64a blx 0x6a6c                    |     fcn_00006a6c ();
    0x0000a64e nop                           |     
    0x0000a650 str r5, [sp, 0xa0]            |     *(arg_a0h) = r5;
    0x0000a652 movs r3, r0                   |     r3 = r0;
    0x0000a654 lsls r0, r3, 0x11             |     r0 = r3 << 0x11;
    0x0000a656 movs r0, r0                   |     
    0x0000a658 add r4, sp, 0x90              |     r4 += arg_90h;
    0x0000a65a movs r3, r0                   |     r3 = r0;
    0x0000a65c invalid                       |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0xbe70 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000be70 ()                      | void fcn_0000be70 (int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 |     if (? >= ?) {
    0x0000be70 ldrblt r4, [r0, 0xb1d]!           |         r4 = *((r0 += 0xb1d));
                                                 |     }
    0x0000be74 mov r6, r0                        |     r6 = r0;
    0x0000be76 sub sp, 0xc                       |     
    0x0000be78 add r3, pc                        |     r3 += pc;
                                                 |     if (r0 == 0) {
    0x0000be7a cbz r0, 0xbede                    |         goto label_0;
                                                 |     }
    0x0000be7c ldr r2, [pc, 0x6c]                |     r2 = *(0xbeec);
    0x0000be7e mov r7, r1                        |     r7 = r1;
    0x0000be80 ldr r3, [r3, r2]                  |     r3 = *((r3 + r2));
    0x0000be82 ldr r0, [r3]                      |     r0 = *(r3);
    0x0000be84 blx 0x6744                        |     r0 = fprintf_chk ()
    0x0000be88 mov r4, r0                        |     r4 = r0;
                                                 |     if (r0 != 0) {
    0x0000be8a cbnz r0, 0xbe9c                   |         goto label_1;
                                                 |     }
    0x0000be8c b 0xbebe                          |     goto label_2;
                                                 |     do {
    0x0000be8e ldr r0, [r5, 0x18]                |         r0 = *((r5 + 0x18));
    0x0000be90 mov r1, r6                        |         r1 = r6;
    0x0000be92 blx 0x6e48                        |         r0 = fcn_00006e48 ();
                                                 |         if (r0 == 0) {
    0x0000be96 cbz r0, 0xbed8                    |             goto label_3;
                                                 |         }
    0x0000be98 ldr r4, [r4, 4]                   |         r4 = *((r4 + 4));
                                                 |         if (r4 == 0) {
    0x0000be9a cbz r4, 0xbebe                    |             goto label_2;
                                                 |         }
                                                 | label_1:
    0x0000be9c ldr r5, [r4]                      |         r5 = *(r4);
    0x0000be9e cmp r5, 0                         |         
    0x0000bea0 bne 0xbe8e                        |         
                                                 |     } while (r5 != 0);
    0x0000bea2 ldr r3, [pc, 0x4c]                |     
    0x0000bea4 movw r2, 0x641                    |     r2 = 0x641;
    0x0000bea8 ldr r4, [pc, 0x48]                |     
    0x0000beaa mov r0, r5                        |     r0 = r5;
    0x0000beac ldr r1, [pc, 0x48]                |     
    0x0000beae add r3, pc                        |     
    0x0000beb0 add r4, pc                        |     r4 = 0x17da8;
    0x0000beb2 add.w r3, r3, 0x1dc               |     r3 = 0x17f80;
    0x0000beb6 add r1, pc                        |     r1 = 0x17db2;
    0x0000beb8 str r4, [sp]                      |     *(sp) = r4;
    0x0000beba blx 0x6ec0                        |     fcn_00006ec0 ();
                                                 | label_2:
    0x0000bebe bl 0x7530                         |     fcn_00007530 ();
    0x0000bec2 ldr r2, [pc, 0x38]                |     
    0x0000bec4 movs r1, 0                        |     r1 = 0;
    0x0000bec6 mov r3, r6                        |     r3 = r6;
    0x0000bec8 movs r5, 0                        |     r5 = 0;
    0x0000beca add r2, pc                        |     r2 = 0x17dcc;
    0x0000becc blx 0x68dc                        |     r0 = daemon_retval_send ();
    0x0000bed0 mov r1, r0                        |     r1 = r0;
    0x0000bed2 mov r0, r7                        |     r0 = r7;
    0x0000bed4 blx 0x6528                        |     pio_release_device_io ();
                                                 | label_3:
    0x0000bed8 mov r0, r5                        |     r0 = r5;
    0x0000beda add sp, 0xc                       |     
    0x0000bedc pop {r4, r5, r6, r7, pc}          |     
                                                 | label_0:
    0x0000bede mov r5, r0                        |     r5 = r0;
    0x0000bee0 mov r0, r5                        |     r0 = r5;
    0x0000bee2 add sp, 0xc                       |     
    0x0000bee4 pop {r4, r5, r6, r7, pc}          |     
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0xbf00 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000bf00 ()                  | void fcn_0000bf00 (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     r0 = arg1;
                                             |     if (? >= ?) {
    0x0000bf00 ldrlt r4, [r0, -0xb14]        |         r4 = *((r0 - 0xb14));
                                             |     }
    0x0000bf04 mov r4, r0                    |     r4 = r0;
    0x0000bf06 ldr r2, [pc, 0x50]            |     
    0x0000bf08 sub sp, 8                     |     
    0x0000bf0a add r3, pc                    |     r3 += pc;
    0x0000bf0c ldr r0, [r3, 8]               |     r0 = *((r3 + 8));
    0x0000bf0e add r2, pc                    |     r2 = 0x17e6c;
                                             |     if (r0 == 0) {
    0x0000bf10 cbnz r0, 0xbf2c               |         
    0x0000bf12 ldr r3, [pc, 0x48]            |         
    0x0000bf14 movw r2, 0x14f                |         r2 = 0x14f;
    0x0000bf16 asrs r7, r1, 9                |         r7 = r1 >> 9;
    0x0000bf18 ldr r4, [pc, 0x44]            |         
    0x0000bf1a ldr r1, [pc, 0x48]            |         
    0x0000bf1c add r3, pc                    |         
    0x0000bf1e add r4, pc                    |         r4 = 0x17e82;
    0x0000bf20 add.w r3, r3, 0x1ec           |         r3 = 0x1806a;
    0x0000bf24 add r1, pc                    |         r1 = 0x17e8e;
    0x0000bf26 str r4, [sp]                  |         *(sp) = r4;
    0x0000bf28 blx 0x6ec0                    |         fcn_00006ec0 ();
                                             |     }
    0x0000bf2c ldr r3, [pc, 0x38]            |     r3 = *(0xbf68);
    0x0000bf2e ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0000bf30 ldr r0, [r3]                  |     r0 = *(0xbf68);
    0x0000bf32 blx 0x6744                    |     fprintf_chk ()
    0x0000bf34 invalid                       |     
                                             |     if (r0 != 0) {
    0x0000bf38 cbnz r0, 0xbf40               |         goto label_0;
                                             |     }
    0x0000bf3a b 0xbf4c                      |     goto label_1;
                                             |     do {
    0x0000bf3c ldr r3, [r3, 4]               |         r3 = *((r3 + 4));
                                             |         if (r3 == 0) {
    0x0000bf3e cbz r3, 0xbf4c                |             goto label_1;
                                             |         }
                                             | label_0:
    0x0000bf40 ldr r0, [r3]                  |         r0 = *(r3);
    0x0000bf42 ldr r2, [r0]                  |         r2 = *(r0);
    0x0000bf44 cmp r2, r4                    |         
    0x0000bf46 bne 0xbf3c                    |         
                                             |     } while (r2 != r4);
    0x0000bf48 add sp, 8                     |     
    0x0000bf4a pop {r4, pc}                  |     
                                             | label_1:
    0x0000bf4c mov r0, r3                    |     r0 = r3;
    0x0000bf4e add sp, 8                     |     
    0x0000bf50 pop {r4, pc}                  |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0xf22c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0000f22c ()                                      | void fcn_0000f22c (int16_t arg1) {
                                                                 |     r0 = arg1;
                                                                 | label_1:
    0x0000670c bx pc                                             |     return void (*pc)() ();
    0x0000f22c push.w {r3, r4, r5, r6, r7, r8, sb, lr}           |     
    0x0000f230 mov sb, r0                                        |     sb = r0;
    0x0000f232 ldr r3, [pc, 0x90]                                |     
    0x0000f234 ldr r2, [pc, 0x90]                                |     r2 = *(0xf2c8);
    0x0000f236 add r3, pc                                        |     
    0x0000f238 ldr r6, [r0, 0x78]                                |     r6 = *((r0 + 0x78));
    0x0000f23a ldr.w r7, [r0, 0x80]                              |     r7 = *((r0 + 0x80));
    0x0000f23e ldr r3, [r3, r2]                                  |     r3 = *(0x1e500);
    0x0000f240 ldr r0, [r3]                                      |     r0 = *(0x1e500);
    0x0000f242 blx 0x6744                                        |     r0 = fprintf_chk ()
    0x0000f246 mov r4, r0                                        |     r4 = r0;
    0x0000f248 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000f24a beq 0xf2be                                        |         goto label_3;
                                                                 |     }
    0x0000f24c mov.w r8, 0                                       |     r8 = 0;
    0x0000f250 b 0xf256                                          |     
                                                                 |     while (r0 != 0) {
    0x0000f252 ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
                                                                 |         if (r4 == 0) {
    0x0000f254 cbz r4, 0xf27e                                    |             goto label_2;
                                                                 |         }
                                                                 | label_0:
    0x0000f256 ldr r5, [r4]                                      |         r5 = *(r4);
    0x0000f258 mov r0, r5                                        |         r0 = r5;
    0x0000f25a bl 0xe844                                         |         fcn_0000e844 (r0);
    0x0000f25e ldr r1, [r6]                                      |         r1 = *(r6);
    0x0000f260 blx 0x704c                                        |         r0 = fcn_0000704c ();
    0x0000f264 cmp r0, 0                                         |         
    0x0000f266 bne 0xf252                                        |         
                                                                 |     }
    0x0000f268 mov r0, r5                                        |     r0 = r5;
    0x0000f26a bl 0xda94                                         |     r0 = fcn_0000da94 (r0);
    0x0000f26e mov r1, r0                                        |     r1 = r0;
    0x0000f270 mov r0, r8                                        |     r0 = r8;
    0x0000f272 blx 0x6648                                        |     exit (r0);
    0x0000f276 ldr r4, [r4, 4]                                   |     r4 = *((r4 + 4));
    0x0000f278 mov r8, r0                                        |     r8 = r0;
    0x0000f27a cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0000f27c bne 0xf256                                        |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x0000f27e mov r0, r8                                        |     r0 = r8;
    0x0000f280 add.w sb, sb, 0x58                                |     sb += 0x58;
    0x0000f284 blx 0x65d4                                        |     r0 = fcn_000065d4 ();
    0x0000f288 lsls r1, r0, 2                                    |     r1 = r0 << 2;
    0x0000f28a str r0, [r7]                                      |     *(r7) = r0;
    0x0000f28c mov r0, sb                                        |     r0 = sb;
    0x0000f28e blx 0x633c                                        |     nb_malloc ();
    0x0000f292 str r0, [r7, 4]                                   |     *((r7 + 4)) = r0;
    0x0000f294 mov r0, r8                                        |     r0 = r8;
    0x0000f296 blx 0x6744                                        |     r0 = fprintf_chk ()
    0x0000f29a mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x0000f29c cbz r0, 0xf2b4                                    |         goto label_4;
                                                                 |     }
    0x0000f29e movs r5, 0                                        |     r5 = 0;
                                                                 |     do {
    0x0000f2a0 ldr r1, [r4]                                      |         r1 = *(r4);
    0x0000f2a2 mov r0, sb                                        |         r0 = sb;
    0x0000f2a4 ldr r6, [r7, 4]                                   |         r6 = *((r7 + 4));
    0x0000f2a6 blx 0x65c4                                        |         g_list_length ();
    0x0000f2aa ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
    0x0000f2ac str r0, [r6, r5]                                  |         *((r6 + r5)) = r0;
    0x0000f2ae adds r5, 4                                        |         r5 += 4;
    0x0000f2b0 cmp r4, 0                                         |         
    0x0000f2b2 bne 0xf2a0                                        |         
                                                                 |     } while (r4 != 0);
                                                                 | label_4:
    0x0000f2b4 mov r0, r8                                        |     r0 = r8;
    0x0000f2b6 pop.w {r3, r4, r5, r6, r7, r8, sb, lr}            |     
    0x0000f2ba b.w 0x670c                                        |     goto label_1;
                                                                 | label_3:
    0x0000f2be mov r8, r0                                        |     r8 = r0;
    0x0000f2c0 b 0xf27e                                          |     goto label_2;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/doorcontrold @ 0x135b4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000135b4 ()                                      | void fcn_000135b4 (int16_t arg_0h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int32_t var_2ch_2;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_34h_2;
                                                                 |     int32_t var_3ch;
                                                                 |     int32_t var_3ch_2;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_74h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000135b4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000135b8 mov sl, r2                                        |     sl = r2;
    0x000135ba ldr r2, [pc, 0x3c4]                               |     
    0x000135bc mov fp, r3                                        |     
    0x000135be sub sp, 0x7c                                      |     
    0x000135c0 mov r7, r0                                        |     r7 = r0;
    0x000135c2 ldr r3, [pc, 0x3c0]                               |     r3 = *(0x13986);
    0x000135c4 add r2, pc                                        |     r2 = 0x26f4a;
    0x000135c6 str r1, [sp, 8]                                   |     var_8h = r1;
    0x000135c8 ldr r3, [r2, r3]                                  |     
    0x000135ca ldr r3, [r3]                                      |     r3 = *(0x26f4a);
    0x000135cc str r3, [sp, 0x74]                                |     var_74h = r3;
    0x000135ce mov.w r3, 0                                       |     r3 = 0;
    0x000135d2 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x000135d6 beq.w 0x1386e                                     |         goto label_14;
                                                                 |     }
    0x000135da cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x000135de beq.w 0x1388e                                     |         goto label_15;
                                                                 |     }
                                                                 | label_8:
    0x000135e2 ldr.w r3, [fp]                                    |     r3 = *(fp);
                                                                 |     if (r3 != 0) {
    0x000135e6 cbz r3, 0x13600                                   |         
    0x000135e8 ldr r3, [pc, 0x39c]                               |         
    0x000135ea movs r0, 0                                        |         r0 = 0;
    0x000135ec ldr r2, [pc, 0x39c]                               |         
    0x000135ee ldr r1, [pc, 0x3a0]                               |         
    0x000135f0 add r3, pc                                        |         r3 = 0x26f7c;
    0x000135f2 add r2, pc                                        |         r2 = 0x26f82;
    0x000135f4 adds r3, 0x38                                     |         r3 += 0x38;
    0x000135f6 str r2, [sp]                                      |         *(sp) = r2;
    0x000135f8 add r1, pc                                        |         r1 = 0x26f8e;
    0x000135fa movs r2, 0x93                                     |         r2 = 0x93;
    0x000135fc blx 0x6af4                                        |         fcn_00006af4 ();
                                                                 |     }
    0x00013600 movs r4, 0                                        |     r4 = 0;
    0x00013602 str r4, [sp, 0x24]                                |     var_24h = r4;
    0x00013604 bl 0xbe48                                         |     fcn_0000be48 ();
    0x00013608 bl 0x11788                                        |     fcn_00011788 ();
    0x0001360c str r0, [sp, 0x28]                                |     var_28h = r0;
    0x0001360e bl 0x117c8                                        |     fcn_000117c8 ();
    0x00013612 blx 0x6728                                        |     fcn_00006728 ();
    0x00013616 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x0001361a cmp r3, 6                                         |     
                                                                 |     if (r3 == 6) {
    0x0001361c beq.w 0x138a8                                     |         goto label_16;
                                                                 |     }
    0x00013620 ldr r0, [pc, 0x370]                               |     
    0x00013622 subs r7, 4                                        |     r7 -= 4;
    0x00013624 add r0, pc                                        |     r0 = "get_extended_time";
    0x00013626 blx 0x6494                                        |     fcn_00006494 ();
    0x0001362a blx 0x65a0                                        |     durationstr2long ();
    0x0001362e ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00013630 mov r8, r0                                        |     r8 = r0;
    0x00013632 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013634 beq.w 0x13922                                     |         goto label_17;
                                                                 |     }
                                                                 | label_9:
    0x00013638 ldr r3, [pc, 0x35c]                               |     
    0x0001363a movs r2, 1                                        |     r2 = 1;
    0x0001363c add r6, sp, 0x24                                  |     r6 += var_24h;
    0x0001363e add r3, pc                                        |     r3 = 0x26fda;
    0x00013640 str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x00013642 ldr r3, [pc, 0x358]                               |     
    0x00013644 add r3, pc                                        |     r3 = 0x26fe6;
    0x00013646 str r3, [sp, 0x18]                                |     var_18h_2 = r3;
    0x00013648 ldr r3, [pc, 0x354]                               |     
    0x0001364a add r3, pc                                        |     r3 = 0x26fee;
    0x0001364c str r3, [sp, 0x1c]                                |     var_1ch_2 = r3;
    0x0001364e movs r3, 0                                        |     r3 = 0;
    0x00013650 mov sb, r3                                        |     sb = r3;
    0x00013652 strd r2, r3, [sp, 0xc]                            |     __asm ("strd r2, r3, [var_ch]");
    0x00013656 b 0x136a2                                         |     
                                                                 |     while (r3 != 0) {
    0x00013658 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x0001365a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001365c beq.w 0x1386a                                     |             goto label_18;
                                                                 |         }
                                                                 | label_0:
    0x00013660 ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x00013662 movs r1, 0x10                                     |         r1 = 0x10;
    0x00013664 movs r0, 0                                        |         r0 = 0;
    0x00013666 str r3, [sp]                                      |         *(sp) = r3;
    0x00013668 ldrd r3, r2, [sp, 0x14]                           |         __asm ("ldrd r3, r2, [var_14h_2]");
    0x0001366c blx 0x65f4                                        |         g_list_alloc ();
    0x00013670 ldr.w r5, [fp]                                    |         r5 = *(fp);
    0x00013674 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00013676 beq.w 0x1383e                                     |             goto label_19;
                                                                 |         }
    0x0001367a mov r0, r6                                        |         r0 = r6;
    0x0001367c blx 0x6c20                                        |         fcn_00006c20 ();
    0x0001367e invalid                                           |         
                                                                 | label_5:
    0x00013680 ldr.w r3, [fp]                                    |         r3 = *(fp);
                                                                 |         if (r3 != 0) {
    0x00013684 cbz r3, 0x13698                                   |             
    0x00013686 ldr r3, [r3, 8]                                   |             r3 = *((r3 + 8));
    0x00013688 movs r1, 0x40                                     |             r1 = 0x40;
    0x0001368a ldr r2, [pc, 0x318]                               |             
    0x0001368c movs r0, 0                                        |             r0 = 0;
    0x0001368e str r3, [sp]                                      |             *(sp) = r3;
    0x00013690 add r2, pc                                        |             r2 = 0x2703a;
    0x00013692 ldr r3, [sp, 0x1c]                                |             r3 = var_1ch_2;
    0x00013694 blx 0x65f4                                        |             g_list_alloc ();
                                                                 |         }
                                                                 | label_7:
    0x00013698 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0001369a add.w sb, sb, 1                                   |         sb++;
    0x0001369e cmp r3, sb                                        |         
                                                                 |         if (r3 < sb) {
    0x000136a0 bls 0x136fa                                       |             goto label_20;
                                                                 |         }
                                                                 | label_1:
    0x000136a2 ldr r0, [r7, 4]!                                  |         r0 = *((r7 += 4));
    0x000136a6 mov r1, r6                                        |         r1 = r6;
    0x000136a8 bl 0xbe70                                         |         fcn_0000be70 (r0, r1);
    0x000136aa umlal r4, r6, r2, r5                              |         __asm ("umlal r4, r6, r2, r5");
    0x000136ae cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000136b0 beq.w 0x13816                                     |             goto label_21;
                                                                 |         }
    0x000136b4 mov r3, r6                                        |         r3 = r6;
    0x000136b6 ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x000136b8 mov r2, sl                                        |         r2 = sl;
    0x000136ba mov r1, r5                                        |         r1 = r5;
    0x000136bc bl 0x11978                                        |         fcn_00011978 (r0, r1, r2, r3);
    0x000136be invalid                                           |         
    0x000136c2 mov r1, r5                                        |         r1 = r5;
    0x000136c4 blx 0x6868                                        |         fcn_00006868 ();
    0x000136c8 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x000136ca mov r4, r0                                        |         r4 = r0;
    0x000136cc cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x000136ce beq.w 0x13860                                     |             goto label_22;
                                                                 |         }
                                                                 | label_6:
    0x000136d2 ldr r2, [sp, 0x24]                                |         r2 = var_24h;
    0x000136d4 mov r0, r8                                        |         r0 = r8;
    0x000136d6 ldr r1, [pc, 0x2d0]                               |         
    0x000136d8 clz r2, r2                                        |         r2 &= r2;
    0x000136dc lsrs r2, r2, 5                                    |         r2 >>= 5;
    0x000136de add r1, pc                                        |         r1 = 0x2708c;
    0x000136e0 blx 0x6f34                                        |         fcn_00006f34 ();
    0x000136e4 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x000136e6 cmp r3, 0                                         |         
    0x000136e8 bne 0x13658                                       |         
                                                                 |     }
    0x000136ea ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x000136ec cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000136ee bne 0x13660                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x000136f0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000136f2 add.w sb, sb, 1                                   |     sb++;
    0x000136f6 cmp r3, sb                                        |     
                                                                 |     if (r3 > sb) {
    0x000136f8 bhi 0x136a2                                       |         goto label_1;
                                                                 |     }
                                                                 | label_20:
    0x000136fa cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000136fc beq 0x13788                                       |         goto label_23;
                                                                 |     }
    0x000136fe movs r2, 0                                        |     r2 = 0;
    0x00013700 add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x00013702 str r3, [sp]                                      |     *(sp) = r3;
    0x00013704 add.w sb, sp, 0x48                                |     sb += var_48h;
    0x00013708 strd r2, r2, [sp, 0x2c]                           |     __asm ("strd r2, r2, [var_2ch]");
    0x0001370c movs r1, 4                                        |     r1 = 4;
    0x0001370e strd r2, r2, [sp, 0x34]                           |     __asm ("strd r2, r2, [var_34h]");
    0x00013712 mov r0, sb                                        |     r0 = sb;
    0x00013714 strd r2, r2, [sp, 0x3c]                           |     __asm ("strd r2, r2, [var_3ch]");
    0x00013718 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x0001371a ldr r3, [pc, 0x290]                               |     
    0x0001371c ldr r2, [pc, 0x290]                               |     
    0x0001371e add r3, pc                                        |     r3 = 0x270d0;
    0x00013720 add r2, pc                                        |     r2 = 0x270d4;
    0x00013722 bl 0xf1c4                                         |     fcn_0000f1c4 (r0, r1, r2, r3, r4);
    0x00013726 mov r0, r4                                        |     r0 = r4;
    0x00013728 blx 0x6744                                        |     r0 = fprintf_chk ()
    0x0001372c mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x0001372e cbz r0, 0x13788                                   |         goto label_23;
                                                                 |     }
    0x00013730 ldr.w sl, [pc, 0x280]                             |     
    0x00013734 ldr r3, [pc, 0x280]                               |     
    0x00013736 str r4, [sp, 8]                                   |     var_8h = r4;
    0x00013738 add sl, pc                                        |     
    0x0001373a add r3, pc                                        |     r3 = 0x270f6;
    0x0001373c add.w sl, sl, 0x38                                |     sl = "set_door_hub_hardware_address";
    0x00013740 mov r4, r3                                        |     r4 = r3;
    0x00013742 b 0x13752                                         |     
                                                                 |     while (r7 != 0) {
    0x00013744 mov r0, r7                                        |         r0 = r7;
    0x00013746 bl 0xc320                                         |         r0 = fcn_0000c320 (r0);
    0x0001374a cmp r0, 3                                         |         
                                                                 |         if (r0 == 3) {
    0x0001374c beq 0x13774                                       |             goto label_24;
                                                                 |         }
                                                                 | label_2:
    0x0001374e ldr r5, [r5, 4]                                   |         r5 = *((r5 + 4));
                                                                 |         if (r5 == 0) {
    0x00013750 cbz r5, 0x13786                                   |             goto label_25;
                                                                 |         }
                                                                 | label_3:
    0x00013752 ldr r7, [r5]                                      |         r7 = *(r5);
    0x00013754 cmp r7, 0                                         |         
    0x00013756 bne 0x13744                                       |         
                                                                 |     }
    0x00013758 ldr r3, [pc, 0x260]                               |     
    0x0001375a movs r2, 0xd6                                     |     r2 = 0xd6;
    0x0001375c mov r1, r4                                        |     r1 = r4;
    0x0001375e mov r0, r7                                        |     r0 = r7;
    0x00013760 add r3, pc                                        |     r3 = 0x27120;
    0x00013762 str r3, [sp]                                      |     *(sp) = r3;
    0x00013764 mov r3, sl                                        |     r3 = sl;
    0x00013766 blx 0x6af4                                        |     fcn_00006af4 ();
    0x0001376a mov r0, r7                                        |     r0 = r7;
    0x0001376c bl 0xc320                                         |     r0 = fcn_0000c320 (r0);
    0x00013770 cmp r0, 3                                         |     
                                                                 |     if (r0 != 3) {
    0x00013772 bne 0x1374e                                       |         goto label_2;
                                                                 |     }
                                                                 | label_24:
    0x00013774 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00013776 mov r1, r7                                        |     r1 = r7;
    0x00013778 mov r3, r6                                        |     r3 = r6;
    0x0001377a mov r2, sb                                        |     r2 = sb;
    0x0001377c bl 0x11978                                        |     fcn_00011978 (r0, r1, r2, r3);
    0x00013780 ldr r5, [r5, 4]                                   |     r5 = *((r5 + 4));
    0x00013782 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00013784 bne 0x13752                                       |         goto label_3;
                                                                 |     }
                                                                 | label_25:
    0x00013786 ldr r4, [sp, 8]                                   |     r4 = var_8h;
                                                                 | label_23:
    0x00013788 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0001378a bl 0x117fc                                        |     fcn_000117fc (r0);
    0x0001378c invalid                                           |     
    0x00013790 ldr r5, [sp, 0x10]                                |     r5 = var_10h;
    0x00013792 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00013794 beq.w 0x13934                                     |         goto label_26;
                                                                 |     }
    0x00013798 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0001379a bl 0x117c8                                        |     fcn_000117c8 ();
    0x0001379e mov r1, r5                                        |     r1 = r5;
    0x000137a0 blx 0x6acc                                        |     fcn_00006acc ();
                                                                 | label_10:
    0x000137a4 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x000137a6 bl 0x117fc                                        |     r0 = fcn_000117fc (r0);
                                                                 |     if (r0 != 0) {
    0x000137aa cbz r0, 0x137b0                                   |         
    0x000137ac ldr r3, [sp, 0x24]                                |         r3 = var_24h;
                                                                 |         if (r3 == 0) {
    0x000137ae cbz r3, 0x137ba                                   |             goto label_27;
                                                                 |         }
                                                                 |     }
    0x000137b0 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x000137b2 bl 0x117c8                                        |     fcn_000117c8 ();
    0x000137b6 blx 0x651c                                        |     g_propagate_error ();
                                                                 | label_27:
    0x000137ba bl 0xbe60                                         |     fcn_0000be60 ();
    0x000137be mov r0, r4                                        |     r0 = r4;
    0x000137c0 movs r4, 0                                        |     r4 = 0;
    0x000137c2 blx 0x6710                                        |     fcn_00006710 ();
    0x000137c6 add r0, sp, 0x28                                  |     r0 += var_28h;
    0x000137c8 bl 0x11790                                        |     fcn_00011790 (r0);
    0x000137cc ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
                                                                 |     if (r3 == 0) {
    0x000137ce cbnz r3, 0x137f2                                  |         
    0x000137d0 mov r0, fp                                        |         r0 = fp;
    0x000137d2 blx 0x6c20                                        |         fcn_00006c20 ();
    0x000137d6 ldr r0, [pc, 0x1e8]                               |         
    0x000137d8 mov r1, r8                                        |         r1 = r8;
    0x000137da add r0, pc                                        |         r0 = 0x271a0;
    0x000137dc blx 0x6700                                        |         fcn_00006700 ();
    0x000137e0 blx 0x6bbc                                        |         fcn_00006bbc ();
    0x000137e4 movs r1, 1                                        |         r1 = 1;
    0x000137e6 mov r3, r0                                        |         r3 = r0;
    0x000137e8 add r0, sp, 0x48                                  |         r0 += var_48h;
    0x000137ea str r3, [sp, 0x48]                                |         var_48h = r3;
    0x000137ec blx 0x663c                                        |         r0 = subscribe_expression_add_key_value ();
    0x000137f0 mov r4, r0                                        |         r4 = r0;
                                                                 |     }
    0x000137f2 mov r0, r8                                        |     r0 = r8;
    0x000137f4 blx 0x67b4                                        |     fcn_000067b4 ();
    0x000137f8 ldr r2, [pc, 0x1c8]                               |     
    0x000137fa ldr r3, [pc, 0x188]                               |     r3 = *(0x13986);
    0x000137fc add r2, pc                                        |     r2 = "get_door_tcpip_port";
    0x000137fe ldr r3, [r2, r3]                                  |     r3 = "get_door_tcpip_port";
    0x00013800 ldr r2, [r3]                                      |     r2 = "get_door_tcpip_port";
    0x00013802 ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00013804 eors r2, r3                                       |     r2 ^= r3;
    0x00013806 mov.w r3, 0                                       |     r3 = 0;
    0x00013808 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
                                                                 |     if (r0 != r0) {
    0x0001380a bne.w 0x1397c                                     |         goto label_28;
                                                                 |     }
    0x0001380e mov r0, r4                                        |     r0 = r4;
    0x00013810 add sp, 0x7c                                      |     
    0x00013812 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_21:
    0x00013816 ldr r3, [r7]                                      |     r3 = *(r7);
    0x00013818 movs r1, 0x10                                     |     r1 = 0x10;
    0x0001381a ldr r2, [pc, 0x1ac]                               |     
    0x0001381c str r3, [sp]                                      |     *(sp) = r3;
    0x0001381e ldr r3, [pc, 0x1ac]                               |     
    0x00013820 add r2, pc                                        |     r2 = 0x271ee;
    0x00013822 add r3, pc                                        |     r3 = 0x271f4;
    0x00013824 blx 0x65f4                                        |     g_list_alloc ();
    0x00013828 ldr r1, [pc, 0x1a4]                               |     
    0x0001382a mov r2, r5                                        |     r2 = r5;
    0x0001382c mov r0, r8                                        |     r0 = r8;
    0x0001382e add r1, pc                                        |     r1 = 0x27202;
    0x00013830 blx 0x6f34                                        |     fcn_00006f34 ();
    0x00013832 invalid                                           |     
    0x00013836 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013838 beq.w 0x136f0                                     |         goto label_4;
                                                                 |     }
    0x0001383c b 0x13660                                         |     goto label_0;
                                                                 | label_19:
    0x0001383e ldr r1, [sp, 0x24]                                |     r1 = var_24h;
    0x00013840 mov r0, fp                                        |     r0 = fp;
    0x00013842 blx 0x6528                                        |     pio_release_device_io ();
    0x00013846 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x0001384a movs r1, 0x40                                     |     r1 = 0x40;
    0x0001384c ldr r2, [pc, 0x184]                               |     
    0x0001384e mov r0, r5                                        |     r0 = r5;
    0x00013850 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00013852 add r2, pc                                        |     r2 = 0x2722a;
    0x00013854 str r3, [sp]                                      |     *(sp) = r3;
    0x00013856 ldr r3, [sp, 0x14]                                |     r3 = var_14h_2;
    0x00013858 blx 0x65f4                                        |     g_list_alloc ();
    0x0001385c str r5, [sp, 0x24]                                |     var_24h = r5;
    0x0001385e b 0x13680                                         |     goto label_5;
                                                                 | label_22:
    0x00013860 mov r0, r5                                        |     r0 = r5;
    0x00013862 bl 0xd5a4                                         |     fcn_0000d5a4 (r0, r1, r2, r3, r4);
    0x00013866 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x00013868 b 0x136d2                                         |     goto label_6;
                                                                 | label_18:
    0x0001386a str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001386c b 0x13698                                         |     goto label_7;
                                                                 | label_14:
    0x0001386e ldr r3, [pc, 0x168]                               |     
    0x00013870 mov r0, sl                                        |     r0 = sl;
    0x00013872 ldr r2, [pc, 0x168]                               |     
    0x00013874 ldr r1, [pc, 0x168]                               |     
    0x00013876 add r3, pc                                        |     r3 = 0x27254;
    0x00013878 add r2, pc                                        |     r2 = 0x2725a;
    0x0001387a adds r3, 0x38                                     |     r3 += 0x38;
    0x0001387c str r2, [sp]                                      |     *(sp) = r2;
    0x0001387e add r1, pc                                        |     r1 = 0x27262;
    0x00013880 movs r2, 0x91                                     |     r2 = 0x91;
    0x00013882 blx 0x6af4                                        |     fcn_00006af4 ();
    0x00013886 cmp.w fp, 0                                       |     
    0x00013888 lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 != r0) {
    0x0001388a bne.w 0x135e2                                     |         goto label_8;
                                                                 |     }
                                                                 | label_15:
    0x0001388e ldr r3, [pc, 0x154]                               |     
    0x00013890 mov r0, fp                                        |     r0 = fp;
    0x00013892 ldr r2, [pc, 0x154]                               |     
    0x00013894 ldr r1, [pc, 0x154]                               |     
    0x00013896 add r3, pc                                        |     r3 = 0x27280;
    0x00013898 add r2, pc                                        |     r2 = 0x27286;
    0x0001389a adds r3, 0x38                                     |     r3 += 0x38;
    0x0001389c str r2, [sp]                                      |     *(sp) = r2;
    0x0001389e add r1, pc                                        |     r1 = 0x2728e;
    0x000138a0 movs r2, 0x92                                     |     r2 = 0x92;
    0x000138a2 blx 0x6af4                                        |     fcn_00006af4 ();
    0x000138a6 b 0x135e2                                         |     goto label_8;
                                                                 | label_16:
    0x000138a8 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000138aa str r4, [sp, 0x48]                                |     var_48h = r4;
                                                                 |     if (r3 == 0) {
    0x000138ac cbz r3, 0x13914                                   |         goto label_29;
                                                                 |     }
    0x000138ae ldr.w r8, [pc, 0x140]                             |     
    0x000138b2 subs r7, 4                                        |     r7 -= 4;
    0x000138b4 ldr r6, [pc, 0x13c]                               |     
    0x000138b6 mov r5, r7                                        |     r5 = r7;
    0x000138b8 str.w sl, [sp, 0xc]                               |     __asm ("str.w sl, [var_ch]");
    0x000138bc add.w sb, sp, 0x48                                |     sb += var_48h;
    0x000138c0 add r8, pc                                        |     r8 = 0x272b6;
    0x000138c2 mov sl, r3                                        |     sl = r3;
    0x000138c4 add r6, pc                                        |     r6 = 0x272bc;
    0x000138c6 str r7, [sp, 0x10]                                |     var_10h = r7;
                                                                 |     do {
    0x000138c8 ldr r0, [r5, 4]!                                  |         r0 = *((r5 += 4));
    0x000138cc mov r1, sb                                        |         r1 = sb;
    0x000138ce bl 0xbe70                                         |         r0 = fcn_0000be70 (r0, r1);
    0x000138d2 mov r7, r0                                        |         r7 = r0;
                                                                 |         if (r0 != 0) {
    0x000138d4 cbz r0, 0x138de                                   |             
    0x000138d6 bl 0xdb4c                                         |             r0 = fcn_0000db4c (r0);
    0x000138da cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x000138dc bne 0x13956                                       |                 goto label_30;
                                                                 |             }
                                                                 |         }
    0x000138de ldr r3, [sp, 0x48]                                |         r3 = var_48h;
                                                                 |         if (r3 != 0) {
    0x000138e0 cbz r3, 0x138f8                                   |             
    0x000138e2 ldr r3, [r3, 8]                                   |             r3 = *((r3 + 8));
    0x000138e4 movs r0, 0                                        |             r0 = 0;
    0x000138e6 mov r2, r6                                        |             r2 = r6;
    0x000138e8 movs r1, 0x10                                     |             r1 = 0x10;
    0x000138ea str r3, [sp]                                      |             *(sp) = r3;
    0x000138ec mov r3, r8                                        |             r3 = r8;
    0x000138ee blx 0x65f4                                        |             g_list_alloc ();
    0x000138f2 mov r0, sb                                        |             r0 = sb;
    0x000138f4 blx 0x6c20                                        |             fcn_00006c20 ();
    0x000138f6 invalid                                           |             
                                                                 |         }
    0x000138f8 adds r4, 1                                        |         r4++;
    0x000138fa cmp sl, r4                                        |         
    0x000138fc bne 0x138c8                                       |         
                                                                 |     } while (sl != r4);
    0x000138fe ldr r0, [pc, 0xf8]                                |     
    0x00013900 movs r4, 0                                        |     r4 = 0;
    0x00013902 ldrd sl, r7, [sp, 0xc]                            |     __asm ("ldrd sl, r7, [var_ch]");
    0x00013906 add r0, pc                                        |     r0 = 0x27304;
    0x00013908 blx 0x6494                                        |     fcn_00006494 ();
    0x0001390c blx 0x65a0                                        |     r0 = durationstr2long ();
    0x00013910 mov r8, r0                                        |     r8 = r0;
    0x00013912 b 0x13638                                         |     goto label_9;
                                                                 | label_29:
    0x00013914 ldr r0, [pc, 0xe4]                                |     
    0x00013916 add r0, pc                                        |     r0 = 0x27316;
    0x00013918 blx 0x6494                                        |     fcn_00006494 ();
    0x0001391c blx 0x65a0                                        |     r0 = durationstr2long ();
    0x00013920 mov r8, r0                                        |     r8 = r0;
                                                                 | label_17:
    0x00013922 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00013924 bl 0x117fc                                        |     fcn_000117fc (r0);
    0x00013928 movs r3, 1                                        |     r3 = 1;
    0x0001392a ldr r4, [sp, 8]                                   |     r4 = var_8h;
    0x0001392c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001392e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013930 beq.w 0x137a4                                     |         goto label_10;
                                                                 |     }
                                                                 | label_26:
    0x00013934 ldr r3, [pc, 0xc8]                                |     
    0x00013936 movs r1, 8                                        |     r1 = 8;
    0x00013938 ldr r2, [pc, 0xc8]                                |     
    0x0001393a movs r0, 0                                        |     r0 = 0;
    0x0001393c add r3, pc                                        |     r3 = "event_is_declared_for_door";
    0x0001393e add r2, pc                                        |     r2 = 0x27346;
    0x00013940 blx 0x65f4                                        |     g_list_alloc ();
    0x00013944 bl 0x7530                                         |     fcn_00007530 ();
    0x00013948 ldr r2, [pc, 0xbc]                                |     
    0x0001394a movs r1, 1                                        |     r1 = 1;
    0x0001394c add r2, pc                                        |     r2 = 0x27358;
    0x0001394e blx 0x68dc                                        |     daemon_retval_send ();
    0x00013952 str r0, [sp, 0x24]                                |     var_24h = r0;
    0x00013954 b 0x137a4                                         |     goto label_10;
                                                                 | label_30:
    0x00013956 mov r3, r7                                        |     r3 = r7;
    0x00013958 ldrd sl, r7, [sp, 0xc]                            |     __asm ("ldrd sl, r7, [var_ch]");
    0x0001395c mov r0, r3                                        |     r0 = r3;
    0x0001395e bl 0xdb08                                         |     r0 = fcn_0000db08 (r0);
    0x00013962 bl 0xeb80                                         |     r0 = fcn_0000eb80 (r0);
    0x00013966 bl 0xed9c                                         |     r0 = fcn_0000ed9c (r0);
    0x0001396a mov r4, r0                                        |     r4 = r0;
    0x0001396c ldr r0, [pc, 0x9c]                                |     
    0x0001396e add r0, pc                                        |     r0 = 0x2737e;
    0x00013970 blx 0x6494                                        |     fcn_00006494 ();
    0x00013974 blx 0x65a0                                        |     r0 = durationstr2long ();
    0x00013978 mov r8, r0                                        |     r8 = r0;
    0x0001397a b 0x13638                                         |     goto label_9;
                                                                 | label_28:
    0x0001397c blx 0x6a6c                                        |     fcn_00006a6c ();
    0x00013980 lsls r0, r7, 0x13                                 |     r0 = r7 << 0x13;
    0x00013982 movs r3, r0                                       |     r3 = r0;
    0x00013984 lsls r0, r3, 0x11                                 |     r0 = r3 << 0x11;
    0x00013986 movs r0, r0                                       |     
    0x00013988 ldr r4, [r6, 0x30]                                |     r4 = *((r6 + 0x30));
    0x0001398a movs r1, r0                                       |     r1 = r0;
    0x0001398c str r6, [r5, 0x20]                                |     *((r5 + 0x20)) = r6;
    0x0001398e movs r1, r0                                       |     r1 = r0;
    0x00013990 ldr r0, [r1, 0x14]                                |     r0 = *((r1 + 0x14));
    0x00013992 movs r1, r0                                       |     r1 = r0;
    0x00013994 ldr r4, [r2, 0x14]                                |     r4 = *((r2 + 0x14));
    0x00013996 movs r1, r0                                       |     r1 = r0;
    0x00013998 adds r6, r7, 1                                    |     r6 = r7 + 1;
    0x0001399a movs r1, r0                                       |     r1 = r0;
    0x0001399c ldr r4, [r6, 0x14]                                |     r4 = *((r6 + 0x14));
    0x0001399e movs r1, r0                                       |     r1 = r0;
    0x000139a0 adds r2, r6, 1                                    |     r2 = r6 + 1;
    0x000139a2 movs r1, r0                                       |     r1 = r0;
    0x000139a4 ldr r0, [r2, 0x14]                                |     r0 = *((r2 + 0x14));
    0x000139a6 movs r1, r0                                       |     r1 = r0;
    0x000139a8 ldr r2, [r7, 8]                                   |     r2 = *((r7 + 8));
    0x000139aa movs r1, r0                                       |     r1 = r0;
    0x000139ac ldr r2, [r3, 0xc]                                 |     r2 = *((r3 + 0xc));
    0x000139ae movs r1, r0                                       |     r1 = r0;
    0x000139b0 ldr r0, [r4, 0xc]                                 |     r0 = *((r4 + 0xc));
    0x000139b2 movs r1, r0                                       |     r1 = r0;
    0x000139b4 ldr r4, [r5, 0x1c]                                |     r4 = *((r5 + 0x1c));
    0x000139b6 movs r1, r0                                       |     r1 = r0;
    0x000139b8 ldr r6, [r0]                                      |     r6 = *(r0);
    0x000139ba movs r1, r0                                       |     r1 = r0;
    0x000139bc adds r1, 0x2c                                     |     r1 += 0x2c;
    0x000139be movs r1, r0                                       |     r1 = r0;
    0x000139c0 str r6, [r3, 0x78]                                |     *((r3 + 0x78)) = r6;
    0x000139c2 movs r1, r0                                       |     r1 = r0;
    0x000139c4 lsls r0, r0, 0xb                                  |     r0 <<= 0xb;
    0x000139c6 movs r3, r0                                       |     r3 = r0;
    0x000139c8 str r4, [r7, 0x74]                                |     *((r7 + 0x74)) = r4;
    0x000139ca movs r1, r0                                       |     r1 = r0;
    0x000139cc subs r2, r3, r2                                   |     r2 = r3 - r2;
    0x000139ce movs r1, r0                                       |     r1 = r0;
    0x000139d0 str r2, [r5, 0x74]                                |     *((r5 + 0x74)) = r2;
    0x000139d2 movs r1, r0                                       |     r1 = r0;
    0x000139d4 str r2, [r6, 0x74]                                |     *((r6 + 0x74)) = r2;
    0x000139d6 movs r1, r0                                       |     r1 = r0;
    0x000139d8 ldr r6, [r5, 8]                                   |     r6 = *((r5 + 8));
    0x000139da movs r1, r0                                       |     r1 = r0;
    0x000139dc str r4, [r2, 0x6c]                                |     *((r2 + 0x6c)) = r4;
    0x000139de movs r1, r0                                       |     r1 = r0;
    0x000139e0 str r2, [r0, 0x6c]                                |     *((r0 + 0x6c)) = r2;
    0x000139e2 movs r1, r0                                       |     r1 = r0;
    0x000139e4 ldr r6, [r1, 8]                                   |     r6 = *((r1 + 8));
    0x000139e6 movs r1, r0                                       |     r1 = r0;
    0x000139e8 ldrsh r4, [r5, r5]                                |     r4 = *((r5 + r5));
    0x000139ea movs r1, r0                                       |     r1 = r0;
    0x000139ec str r2, [r4, 0x68]                                |     *((r4 + 0x68)) = r2;
    0x000139ee movs r1, r0                                       |     r1 = r0;
    0x000139f0 adds r4, r7, r7                                   |     r4 = r7 + r7;
    0x000139f2 movs r1, r0                                       |     r1 = r0;
    0x000139f4 str r0, [r7, 0x68]                                |     *((r7 + 0x68)) = r0;
    0x000139f6 movs r1, r0                                       |     r1 = r0;
    0x000139f8 str r2, [r6, 0x64]                                |     *((r6 + 0x64)) = r2;
    0x000139fa movs r1, r0                                       |     r1 = r0;
    0x000139fc str r2, [r4, 0x64]                                |     *((r4 + 0x64)) = r2;
    0x000139fe movs r1, r0                                       |     r1 = r0;
    0x00013a00 adds r0, r0, r6                                   |     r0 += r6;
    0x00013a02 movs r1, r0                                       |     r1 = r0;
    0x00013a04 str r6, [r0, 0x6c]                                |     *((r0 + 0x6c)) = r6;
    0x00013a06 movs r1, r0                                       |     r1 = r0;
    0x00013a08 str r4, [r5, 0x6c]                                |     *((r5 + 0x6c)) = r4;
    0x00013a0a movs r1, r0                                       |     r1 = r0;
    0x00013a0c str r2, [r1, 0x60]                                |     *((r1 + 0x60)) = r2;
    0x00013a0e movs r1, r0                                       |     r1 = r0;
    0x00013a10 ldr r2, [pc, 0x118]                               |     
    0x00013a12 ldr r3, [pc, 0x11c]                               |     r3 = *(0x13b32);
    0x00013a14 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00013a18 sub sp, 0x24                                      |     
    0x00013a1a add r2, pc                                        |     r2 = 0x2754a;
    0x00013a1c mov sb, r1                                        |     sb = r1;
    0x00013a1e mov r4, r0                                        |     r4 = r0;
    0x00013a20 ldr r3, [r2, r3]                                  |     
    0x00013a22 ldr r3, [r3]                                      |     r3 = *(0x2754a);
    0x00013a24 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00013a26 mov.w r3, 0                                       |     r3 = 0;
    0x00013a2a bl 0x11788                                        |     fcn_00011788 ();
    0x00013a2e str r0, [sp, 0x14]                                |     var_14h = r0;
    0x00013a30 bl 0x117c8                                        |     fcn_000117c8 ();
    0x00013a34 blx 0x6728                                        |     fcn_00006728 ();
    0x00013a38 mov r0, r4                                        |     r0 = r4;
    0x00013a3a blx 0x6744                                        |     r0 = fprintf_chk ()
    0x00013a3e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013a40 beq 0x13afe                                       |         goto label_31;
                                                                 |     }
    0x00013a42 ldr r3, [pc, 0xf0]                                |     
    0x00013a44 mov r4, r0                                        |     r4 = r0;
    0x00013a46 ldr.w sl, [pc, 0xf0]                              |     sl = fcn.00011868;
    0x00013a4a mov.w r8, 0                                       |     r8 = 0;
    0x00013a4e add r7, sp, 0x18                                  |     r7 += var_18h;
    0x00013a50 add r3, pc                                        |     r3 = 0x2758a;
    0x00013a52 str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x00013a54 add sl, pc                                        |     sl += pc;
    0x00013a56 ldr r3, [pc, 0xe4]                                |     
    0x00013a58 add r3, pc                                        |     r3 = 0x2759a;
    0x00013a5a str r3, [sp, 0xc]                                 |     var_ch_2 = r3;
    0x00013a5c b 0x13a7c                                         |     
                                                                 |     while (r2 != 0) {
    0x00013a5e ldr r3, [r2, 8]                                   |         r3 = *((r2 + 8));
    0x00013a60 mov r0, r6                                        |         r0 = r6;
    0x00013a62 ldr r2, [pc, 0xdc]                                |         
    0x00013a64 movs r1, 0x10                                     |         r1 = 0x10;
    0x00013a66 str r5, [sp]                                      |         *(sp) = r5;
    0x00013a68 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00013a6a mov r3, sl                                        |         r3 = sl;
    0x00013a6c add r2, pc                                        |         r2 = 0x275b2;
    0x00013a6e blx 0x65f4                                        |         g_list_alloc ();
    0x00013a72 mov r0, r7                                        |         r0 = r7;
    0x00013a74 blx 0x6c20                                        |         fcn_00006c20 ();
                                                                 | label_11:
    0x00013a78 ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
                                                                 |         if (r4 == 0) {
    0x00013a7a cbz r4, 0x13ab6                                   |             goto label_32;
                                                                 |         }
                                                                 | label_12:
    0x00013a7c ldr r5, [r4]                                      |         r5 = *(r4);
    0x00013a7e movs r6, 0                                        |         r6 = 0;
    0x00013a80 mov r1, r7                                        |         r1 = r7;
    0x00013a82 str r6, [sp, 0x18]                                |         var_18h = r6;
    0x00013a84 mov r0, r5                                        |         r0 = r5;
    0x00013a86 bl 0xbe70                                         |         fcn_0000be70 (r0, r1);
    0x00013a8a ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00013a8c mov fp, r0                                        |         
    0x00013a8e cmp r2, 0                                         |         
    0x00013a90 bne 0x13a5e                                       |         
                                                                 |     }
                                                                 |     if (r0 == 0) {
    0x00013a92 cbz r0, 0x13af0                                   |         goto label_33;
                                                                 |     }
    0x00013a94 mov r1, sb                                        |     r1 = sb;
    0x00013a96 bl 0x11a98                                        |     fcn_00011a98 (r0, r1);
    0x00013a9a ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00013a9c mov r1, fp                                        |     r1 = fp;
    0x00013a9e bl 0x11a3c                                        |     fcn_00011a3c (r0, r1);
    0x00013aa2 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00013aa6 bne 0x13a78                                       |         goto label_11;
                                                                 |     }
    0x00013aa8 mov r0, fp                                        |     r0 = fp;
    0x00013aaa bl 0xd5a4                                         |     fcn_0000d5a4 (r0, r1, r2, r3, r4);
    0x00013aae ldr r4, [r4, 4]                                   |     r4 = *((r4 + 4));
    0x00013ab0 mov r8, r0                                        |     r8 = r0;
    0x00013ab2 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00013ab4 bne 0x13a7c                                       |         goto label_12;
                                                                 |     }
                                                                 | label_32:
    0x00013ab6 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00013ab8 bl 0x117fc                                        |     r0 = fcn_000117fc (r0);
                                                                 |     if (r0 == 0) {
    0x00013abc cbz r0, 0x13ad0                                   |         goto label_34;
                                                                 |     }
    0x00013abe cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00013ac2 beq 0x13b08                                       |         goto label_35;
                                                                 |     }
                                                                 | label_13:
    0x00013ac4 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00013ac6 bl 0x117c8                                        |     fcn_000117c8 ();
    0x00013aca mov r1, r8                                        |     r1 = r8;
    0x00013acc blx 0x6acc                                        |     fcn_00006acc ();
                                                                 |     do {
                                                                 | label_34:
    0x00013ad0 add r0, sp, 0x14                                  |         r0 += var_14h;
    0x00013ad2 bl 0x11790                                        |         fcn_00011790 (r0);
    0x00013ad6 ldr r2, [pc, 0x6c]                                |         
    0x00013ad8 ldr r3, [pc, 0x54]                                |         r3 = *(0x13b30);
    0x00013ada add r2, pc                                        |         r2 = 0x27624;
    0x00013adc ldr r3, [r2, r3]                                  |         r3 = *(0x27624);
    0x00013ade ldr r2, [r3]                                      |         r2 = *(0x27624);
    0x00013ae0 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x00013ae2 eors r2, r3                                       |         r2 ^= r3;
    0x00013ae4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00013ae8 bne 0x13b28                                       |             goto label_36;
                                                                 |         }
    0x00013aea add sp, 0x24                                      |         
    0x00013aec pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_33:
    0x00013af0 ldrd r3, r2, [sp, 8]                              |         __asm ("ldrd r3, r2, [var_8h_2]");
    0x00013af4 movs r1, 0x10                                     |         r1 = 0x10;
    0x00013af6 str r5, [sp]                                      |         *(sp) = r5;
    0x00013af8 blx 0x65f4                                        |         g_list_alloc ();
    0x00013afc b 0x13a78                                         |         goto label_11;
                                                                 | label_31:
    0x00013afe ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00013b00 bl 0x117fc                                        |         r0 = fcn_000117fc (r0);
    0x00013b04 cmp r0, 0                                         |         
    0x00013b06 beq 0x13ad0                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_35:
    0x00013b08 ldr r3, [pc, 0x3c]                                |     
    0x00013b0a mov.w r8, 0                                       |     r8 = 0;
    0x00013b0e ldr r0, [pc, 0x3c]                                |     
    0x00013b10 movw r2, 0x11d                                    |     r2 = 0x11d;
    0x00013b14 ldr r1, [pc, 0x38]                                |     
    0x00013b16 add r3, pc                                        |     r3 = 0x27662;
    0x00013b18 add r0, pc                                        |     r0 = 0x2766a;
    0x00013b1a adds r3, 0x58                                     |     r3 += 0x58;
    0x00013b1c str r0, [sp]                                      |     *(sp) = r0;
    0x00013b1e add r1, pc                                        |     r1 = 0x27672;
    0x00013b20 mov r0, r8                                        |     r0 = r8;
    0x00013b22 blx 0x6af4                                        |     fcn_00006af4 ();
    0x00013b26 b 0x13ac4                                         |     goto label_13;
                                                                 | label_36:
    0x00013b28 blx 0x6a6c                                        |     fcn_00006a6c ();
    0x00013b2c lsls r2, r4, 2                                    |     r2 = r4 << 2;
    0x00013b2e movs r3, r0                                       |     r3 = r0;
    0x00013b30 lsls r0, r3, 0x11                                 |     r0 = r3 << 0x11;
    0x00013b32 movs r0, r0                                       |     
    0x00013b34 adds r4, r5, r1                                   |     r4 = r5 + r1;
    0x00013b36 movs r1, r0                                       |     r1 = r0;
    0x00013b38 adds r0, r5, r1                                   |     r0 = r5 + r1;
    0x00013b3a movs r1, r0                                       |     r1 = r0;
    0x00013b3c str r0, [r5, 0x64]                                |     *((r5 + 0x64)) = r0;
    0x00013b3e movs r1, r0                                       |     r1 = r0;
    0x00013b40 str r4, [r2, 0x60]                                |     *((r2 + 0x60)) = r4;
    0x00013b42 movs r1, r0                                       |     r1 = r0;
    0x00013b44 vaddl.u32 q8, d2, d2                              |     __asm ("vaddl.u32 q8, d2, d2");
    0x00013b48 str r6, [r1, 0x60]                                |     *((r1 + 0x60)) = r6;
    0x00013b4a movs r1, r0                                       |     r1 = r0;
    0x00013b4c str r0, [r6, 0x5c]                                |     *((r6 + 0x5c)) = r0;
    0x00013b4e movs r1, r0                                       |     r1 = r0;
    0x00013b50 str r2, [r4, 0x40]                                |     *((r4 + 0x40)) = r2;
    0x00013b52 movs r1, r0                                       |     r1 = r0;
                                                                 | }

[*] Function fprintf used 9 times doorcontrold