[*] Binary protection state of zabbix_agentd

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


[*] Function strcpy tear down of zabbix_agentd

    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3c008 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003c008 ()                                          | void fcn_0003c008 (int16_t arg1) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     r0 = arg1;
    0x0003c008 ldr r2, [pc, 0x210]                                   |     
    0x0003c00a ldr r3, [pc, 0x214]                                   |     r3 = *(0x3c222);
    0x0003c00c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003c010 sub sp, 0x1c                                          |     
    0x0003c012 add r2, pc                                            |     r2 = 0x78232;
    0x0003c014 movs r4, 0                                            |     r4 = 0;
    0x0003c016 ldr r3, [r2, r3]                                      |     
    0x0003c018 ldr r3, [r3]                                          |     r3 = *(0x78232);
    0x0003c01a str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0003c01c mov.w r3, 0                                           |     r3 = 0;
    0x0003c020 ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0003c022 strd r4, r4, [sp, 8]                                  |     __asm ("strd r4, r4, [var_8h]");
    0x0003c026 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0003c028 cmp r3, r4                                            |     
                                                                     |     if (r3 <= r4) {
    0x0003c02a ble.w 0x3c1ce                                         |         goto label_2;
                                                                     |     }
    0x0003c02e ldr r3, [r0]                                          |     r3 = *(r0);
    0x0003c030 mov r5, r0                                            |     r5 = r0;
    0x0003c032 ldr.w sb, [pc, 0x1f0]                                 |     
    0x0003c034 str r1, [sp, 0x3c0]                                   |     *((sp + 0x3c0)) = r1;
    0x0003c036 add.w r8, sp, 0x10                                    |     r8 += var_10h;
    0x0003c03a add r7, sp, 0xc                                       |     r7 += var_ch;
    0x0003c03c add.w fp, sp, 8                                       |     
    0x0003c040 ldr.w sl, [r3]                                        |     sl = *(r3);
    0x0003c044 add sb, pc                                            |     sb = 0x7826e;
                                                                     |     do {
    0x0003c046 ldrb.w r3, [sl]                                       |         r3 = *(sl);
    0x0003c04a subs r3, 1                                            |         r3--;
    0x0003c04c cmp r3, 0x13                                          |         
                                                                     |         if (r3 > 0x13) {
    0x0003c04e bhi.w 0x3c20c                                         |             goto label_3;
                                                                     |         }
                                                                     |         /* switch table (20 cases) at 0x3c056 */
    0x0003c052 tbb [pc, r3]                                          |         __asm ("tbb [0x0003c058]");
    0x0003c06a ldr.w r3, [sl, 4]                                     |         r3 = *((sl + 4));
    0x0003c06e mov r2, r8                                            |         r2 = r8;
    0x0003c070 mov r1, r7                                            |         r1 = r7;
    0x0003c072 mov r0, fp                                            |         r0 = fp;
    0x0003c074 bl 0x44240                                            |         zbx_strcpy_alloc ()
                                                                     | label_1:
    0x0003c078 ldr r3, [r5, 4]                                       |         r3 = *((r5 + 4));
    0x0003c07a adds r4, 1                                            |         r4++;
    0x0003c07c cmp r4, r3                                            |         
                                                                     |         if (r4 >= r3) {
    0x0003c07e bge 0x3c0aa                                           |             goto label_4;
                                                                     |         }
                                                                     | label_0:
    0x0003c080 ldr r6, [r5]                                          |         r6 = *(r5);
    0x0003c082 mov r3, sb                                            |         r3 = sb;
    0x0003c084 mov r2, r8                                            |         r2 = r8;
    0x0003c086 mov r1, r7                                            |         r1 = r7;
    0x0003c088 mov r0, fp                                            |         r0 = fp;
    0x0003c08a ldr.w sl, [r6, r4, lsl 2]                             |         offset_0 = r4 << 2;
                                                                     |         sl = *((r6 + offset_0));
    0x0003c08e bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c092 b 0x3c046                                             |         
                                                                     |     } while (1);
    0x0003c094 ldr r3, [pc, 0x190]                                   |     
    0x0003c096 mov r2, r8                                            |     r2 = r8;
    0x0003c098 mov r1, r7                                            |     r1 = r7;
    0x0003c09a mov r0, fp                                            |     r0 = fp;
    0x0003c09c adds r4, 1                                            |     r4++;
    0x0003c09e add r3, pc                                            |     r3 = 0x782ca;
    0x0003c0a0 bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0003c0a4 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x0003c0a6 cmp r4, r3                                            |     
                                                                     |     if (r4 < r3) {
    0x0003c0a8 blt 0x3c080                                           |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x0003c0aa ldr r4, [sp, 8]                                       |     r4 = var_8h;
    0x0003c0ac cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0003c0ae beq.w 0x3c1ce                                         |         
    0x0003c0b2 ldr r0, [pc, 0x178]                                   |         
    0x0003c0b4 mov r1, r4                                            |         r1 = r4;
    0x0003c0b6 add r0, pc                                            |         r0 = 0x782e8;
    0x0003c0b8 bl 0x3a990                                            |         zbx_set_json_strerror ();
    0x0003c0bc ldr r2, [pc, 0x170]                                   |         
    0x0003c0be ldr r3, [pc, 0x160]                                   |         r3 = *(0x3c222);
    0x0003c0c0 add r2, pc                                            |         r2 = 0x782f4;
    0x0003c0c2 ldr r3, [r2, r3]                                      |         r3 = *(0x782f4);
    0x0003c0c4 ldr r2, [r3]                                          |         r2 = *(0x782f4);
    0x0003c0c6 ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0003c0c8 eors r2, r3                                           |         r2 ^= r3;
    0x0003c0ca mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0003c0ce bne.w 0x3c208                                         |             goto label_5;
                                                                     |         }
    0x0003c0d2 mov r0, r4                                            |         r0 = r4;
    0x0003c0d4 add sp, 0x1c                                          |         
    0x0003c0d6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |         
    0x0003c0da b.w 0xde2c                                            |         void (*0xde2c)() ();
    0x0003c0de ldr r3, [pc, 0x154]                                   |         
    0x0003c0e0 mov r2, r8                                            |         r2 = r8;
    0x0003c0e2 mov r1, r7                                            |         r1 = r7;
    0x0003c0e4 mov r0, fp                                            |         r0 = fp;
    0x0003c0e6 add r3, pc                                            |         r3 = 0x78320;
    0x0003c0e8 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c0ec b 0x3c078                                             |         goto label_1;
    0x0003c0ee ldr r3, [pc, 0x148]                                   |         
    0x0003c0f0 mov r2, r8                                            |         r2 = r8;
    0x0003c0f2 mov r1, r7                                            |         r1 = r7;
    0x0003c0f4 mov r0, fp                                            |         r0 = fp;
    0x0003c0f6 add r3, pc                                            |         r3 = 0x78334;
    0x0003c0f8 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c0fc b 0x3c078                                             |         goto label_1;
    0x0003c0fe ldr r3, [pc, 0x13c]                                   |         
    0x0003c100 mov r2, r8                                            |         r2 = r8;
    0x0003c102 mov r1, r7                                            |         r1 = r7;
    0x0003c104 mov r0, fp                                            |         r0 = fp;
    0x0003c106 add r3, pc                                            |         r3 = 0x78348;
    0x0003c108 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c10c b 0x3c078                                             |         goto label_1;
    0x0003c10e ldr r3, [pc, 0x130]                                   |         
    0x0003c110 mov r2, r8                                            |         r2 = r8;
    0x0003c112 mov r1, r7                                            |         r1 = r7;
    0x0003c114 mov r0, fp                                            |         r0 = fp;
    0x0003c116 add r3, pc                                            |         r3 = 0x7835c;
    0x0003c118 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c11c b 0x3c078                                             |         goto label_1;
    0x0003c11e ldr r3, [pc, 0x124]                                   |         
    0x0003c120 mov r2, r8                                            |         r2 = r8;
    0x0003c122 mov r1, r7                                            |         r1 = r7;
    0x0003c124 mov r0, fp                                            |         r0 = fp;
    0x0003c126 add r3, pc                                            |         r3 = 0x78370;
    0x0003c128 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c12c b 0x3c078                                             |         goto label_1;
    0x0003c12e ldr r3, [pc, 0x118]                                   |         
    0x0003c130 mov r2, r8                                            |         r2 = r8;
    0x0003c132 mov r1, r7                                            |         r1 = r7;
    0x0003c134 mov r0, fp                                            |         r0 = fp;
    0x0003c136 add r3, pc                                            |         r3 = 0x78384;
    0x0003c138 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c13c b 0x3c078                                             |         goto label_1;
    0x0003c13e ldr r3, [pc, 0x10c]                                   |         
    0x0003c140 mov r2, r8                                            |         r2 = r8;
    0x0003c142 mov r1, r7                                            |         r1 = r7;
    0x0003c144 mov r0, fp                                            |         r0 = fp;
    0x0003c146 add r3, pc                                            |         r3 = 0x78398;
    0x0003c148 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c14c b 0x3c078                                             |         goto label_1;
    0x0003c14e ldr r3, [pc, 0x100]                                   |         
    0x0003c150 mov r2, r8                                            |         r2 = r8;
    0x0003c152 mov r1, r7                                            |         r1 = r7;
    0x0003c154 mov r0, fp                                            |         r0 = fp;
    0x0003c156 add r3, pc                                            |         r3 = 0x783ac;
    0x0003c158 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c15c b 0x3c078                                             |         goto label_1;
    0x0003c15e ldr r3, [pc, 0xf4]                                    |         
    0x0003c160 mov r2, r8                                            |         r2 = r8;
    0x0003c162 mov r1, r7                                            |         r1 = r7;
    0x0003c164 mov r0, fp                                            |         r0 = fp;
    0x0003c166 add r3, pc                                            |         r3 = 0x783c0;
    0x0003c168 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c16c b 0x3c078                                             |         goto label_1;
    0x0003c16e ldr r3, [pc, 0xe8]                                    |         
    0x0003c170 mov r2, r8                                            |         r2 = r8;
    0x0003c172 mov r1, r7                                            |         r1 = r7;
    0x0003c174 mov r0, fp                                            |         r0 = fp;
    0x0003c176 add r3, pc                                            |         r3 = 0x783d4;
    0x0003c178 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c17c b 0x3c078                                             |         goto label_1;
    0x0003c17e ldr r3, [pc, 0xdc]                                    |         
    0x0003c180 mov r2, r8                                            |         r2 = r8;
    0x0003c182 mov r1, r7                                            |         r1 = r7;
    0x0003c184 mov r0, fp                                            |         r0 = fp;
    0x0003c186 add r3, pc                                            |         r3 = 0x783e8;
    0x0003c188 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c18c b 0x3c078                                             |         goto label_1;
    0x0003c18e ldr r3, [pc, 0xd0]                                    |         
    0x0003c190 mov r2, r8                                            |         r2 = r8;
    0x0003c192 mov r1, r7                                            |         r1 = r7;
    0x0003c194 mov r0, fp                                            |         r0 = fp;
    0x0003c196 add r3, pc                                            |         r3 = 0x783fc;
    0x0003c198 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c19c b 0x3c078                                             |         goto label_1;
    0x0003c19e ldr r3, [pc, 0xc4]                                    |         
    0x0003c1a0 mov r2, r8                                            |         r2 = r8;
    0x0003c1a2 mov r1, r7                                            |         r1 = r7;
    0x0003c1a4 mov r0, fp                                            |         r0 = fp;
    0x0003c1a6 add r3, pc                                            |         r3 = 0x78410;
    0x0003c1a8 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c1ac b 0x3c078                                             |         goto label_1;
    0x0003c1ae ldr r3, [pc, 0xb8]                                    |         
    0x0003c1b0 mov r2, r8                                            |         r2 = r8;
    0x0003c1b2 mov r1, r7                                            |         r1 = r7;
    0x0003c1b4 mov r0, fp                                            |         r0 = fp;
    0x0003c1b6 add r3, pc                                            |         r3 = 0x78424;
    0x0003c1b8 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c1bc b 0x3c078                                             |         goto label_1;
    0x0003c1be ldr r3, [pc, 0xac]                                    |         
    0x0003c1c0 mov r2, r8                                            |         r2 = r8;
    0x0003c1c2 mov r1, r7                                            |         r1 = r7;
    0x0003c1c4 mov r0, fp                                            |         r0 = fp;
    0x0003c1c6 add r3, pc                                            |         r3 = 0x78438;
    0x0003c1c8 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0003c1cc b 0x3c078                                             |         goto label_1;
                                                                     |     }
                                                                     | label_2:
    0x0003c1ce ldr r2, [pc, 0xa0]                                    |     
    0x0003c1d0 movw r4, 0x5fc                                        |     r4 = 0x5fc;
    0x0003c1d4 ldr r3, [pc, 0x9c]                                    |     
    0x0003c1d6 ldr r1, [pc, 0xa0]                                    |     
    0x0003c1d8 ldr r0, [pc, 0xa0]                                    |     
    0x0003c1da add r2, pc                                            |     r2 = 0x78450;
    0x0003c1dc add r3, pc                                            |     r3 = 0x78454;
    0x0003c1de adds r2, 0x1c                                         |     r2 += 0x1c;
    0x0003c1e0 add r1, pc                                            |     r1 = 0x7845e;
    0x0003c1e2 str r4, [sp]                                          |     *(sp) = r4;
    0x0003c1e4 add r0, pc                                            |     r0 = 0x78464;
    0x0003c1e6 bl 0x43cd4                                            |     zbx_error ();
    0x0003c1ea ldr r2, [pc, 0x94]                                    |     
    0x0003c1ec ldr r3, [pc, 0x30]                                    |     r3 = *(0x3c220);
    0x0003c1ee add r2, pc                                            |     r2 = 0x78474;
    0x0003c1f0 ldr r3, [r2, r3]                                      |     r3 = *(0x78474);
    0x0003c1f2 ldr r2, [r3]                                          |     r2 = *(0x78474);
    0x0003c1f4 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0003c1f6 eors r2, r3                                           |     r2 ^= r3;
    0x0003c1f8 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 == r3) {
    0x0003c1fc bne 0x3c208                                           |         
    0x0003c1fe add sp, 0x1c                                          |         
    0x0003c200 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |         
    0x0003c204 b.w 0x356ac                                           |         void (*0x356ac)() ();
                                                                     |     }
                                                                     | label_5:
    0x0003c208 blx 0xe158                                            |     fcn_0000e158 ();
                                                                     | label_3:
    0x0003c20c ldr r3, [pc, 0x74]                                    |     
    0x0003c20e mov r2, r8                                            |     r2 = r8;
    0x0003c210 mov r1, r7                                            |     r1 = r7;
    0x0003c212 mov r0, fp                                            |     r0 = fp;
    0x0003c214 add r3, pc                                            |     r3 = 0x7849c;
    0x0003c216 bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0003c21a b 0x3c078                                             |     goto label_1;
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x4b940 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0004b940 ()                                          | void fcn_0004b940 (int16_t arg_0h, int16_t arg_1h, int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_84ch, int16_t arg_878h, int16_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_24h;
                                                                     |     int32_t var_84ch;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h_2;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0004b940 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0004b944 subw sp, sp, 0x854                                    |     __asm ("subw sp, sp, 0x854");
    0x0004b948 str r2, [sp, 0xc]                                     |     var_ch = r2;
    0x0004b94a mov r8, r3                                            |     r8 = r3;
    0x0004b94c ldr r2, [pc, 0x2f0]                                   |     
    0x0004b94e ldr r3, [pc, 0x2f4]                                   |     r3 = *(0x4bc46);
    0x0004b950 ldr.w r5, [sp, 0x878]                                 |     r5 = *(arg_878h);
    0x0004b954 add r2, pc                                            |     r2 = 0x97598;
    0x0004b956 ldr r3, [r2, r3]                                      |     
    0x0004b958 ldr r3, [r3]                                          |     r3 = *(0x97598);
    0x0004b95a str.w r3, [sp, 0x84c]                                 |     __asm ("str.w r3, [arg_84ch]");
    0x0004b95e mov.w r3, 0                                           |     r3 = 0;
    0x0004b962 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0004b964 beq.w 0x4bb2c                                         |         goto label_9;
                                                                     |     }
    0x0004b968 cmp.w r1, 0x800                                       |     
    0x0004b96c mov r6, r1                                            |     r6 = r1;
                                                                     |     if (r1 >= 0x800) {
    0x0004b96e bhs.w 0x4bb4c                                         |         goto label_6;
                                                                     |     }
    0x0004b972 add.w fp, sp, 0x4c                                    |     
    0x0004b976 add.w r4, r0, r1, lsl 2                               |     r4 = r0 + (r1 << 2);
    0x0004b97a mov sb, r0                                            |     sb = r0;
    0x0004b97c mov r1, fp                                            |     r1 = fp;
    0x0004b97e mov r3, r0                                            |     r3 = r0;
    0x0004b980 b 0x4b98c                                             |     
                                                                     |     while (r2 < 0x7f) {
    0x0004b982 cmp r3, r4                                            |         
    0x0004b984 strb r2, [r1], 1                                      |         *(r1) = r2;
                                                                     |         r1++;
                                                                     |         if (r3 == r4) {
    0x0004b988 beq.w 0x4bb1a                                         |             goto label_10;
                                                                     |         }
    0x0004b98c ldr r2, [r3], 4                                       |         r2 = *(r3);
                                                                     |         r3 += 4;
    0x0004b990 cmp r2, 0x7f                                          |         
    0x0004b992 bls 0x4b982                                           |         
                                                                     |     }
    0x0004b994 ldr r3, [pc, 0x2b0]                                   |     
    0x0004b996 mov r2, r5                                            |     r2 = r5;
    0x0004b998 ldr r0, [sp, 0xc]                                     |     r0 = var_ch;
    0x0004b99a mov r1, r8                                            |     r1 = r8;
    0x0004b99c add r3, pc                                            |     r3 = 0x975e8;
    0x0004b99e bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0004b9a2 mov.w ip, 0                                           |     
    0x0004b9a6 mov r3, sb                                            |     r3 = sb;
                                                                     |     do {
    0x0004b9a8 ldr r2, [r3], 4                                       |         r2 = *(r3);
                                                                     |         r3 += 4;
    0x0004b9ac cmp r2, 0x7f                                          |         
                                                                     |         if (r2 <= 0x7f) {
    0x0004b9ae bhi 0x4b9c2                                           |             
    0x0004b9b0 rsb.w r1, ip, 0x800                                   |             r1 = 0x800 - ip;
    0x0004b9b4 cmp r1, 1                                             |             
                                                                     |             if (r1 < 1) {
    0x0004b9b6 bls.w 0x4bb4c                                         |                 goto label_6;
                                                                     |             }
    0x0004b9ba strb.w r2, [fp, ip]                                   |             *((fp + ip)) = r2;
    0x0004b9be add.w ip, ip, 1                                       |             
                                                                     |         }
    0x0004b9c2 cmp r3, r4                                            |         
    0x0004b9c4 bne 0x4b9a8                                           |         
                                                                     |     } while (r3 != r4);
    0x0004b9c6 cmp.w ip, 0                                           |     
                                                                     |     if (ip == 0) {
    0x0004b9ca beq.w 0x4bbda                                         |         goto label_11;
                                                                     |     }
    0x0004b9ce cmp r6, ip                                            |     
    0x0004b9d0 mov.w r3, 0x2d                                        |     r3 = 0x2d;
    0x0004b9d4 add.w r2, ip, 1                                       |     r2 = ip + 1;
    0x0004b9d8 strb.w r3, [fp, ip]                                   |     *((fp + ip)) = r3;
                                                                     |     if (r6 < ip) {
    0x0004b9dc bls.w 0x4bc1e                                         |         goto label_12;
                                                                     |     }
                                                                     | label_3:
    0x0004b9e0 ldr r3, [pc, 0x268]                                   |     
    0x0004b9e2 movs r7, 0x48                                         |     r7 = 0x48;
    0x0004b9e4 str r6, [sp, 0x3c]                                    |     *(arg_3ch) = r6;
    0x0004b9e6 mov.w sl, 0                                           |     sl = 0;
    0x0004b9ea strd r8, r5, [sp, 0x40]                               |     __asm ("strd r8, r5, [sp, 0x40]");
    0x0004b9ee movs r0, 0x80                                         |     r0 = 0x80;
    0x0004b9f0 add r3, pc                                            |     r3 = 0x97640;
    0x0004b9f2 str.w fp, [sp, 0x28]                                  |     __asm ("str.w fp, [arg_28h]");
    0x0004b9f6 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0004b9f8 mov r6, sb                                            |     r6 = sb;
    0x0004b9fa ldr r3, [pc, 0x254]                                   |     
    0x0004b9fc mov r5, r4                                            |     r5 = r4;
    0x0004b9fe mov fp, r2                                            |     
    0x0004ba00 str.w ip, [sp, 0x34]                                  |     __asm ("str.w ip, [arg_34h]");
    0x0004ba04 add r3, pc                                            |     r3 = 0x9765a;
    0x0004ba06 strd r3, ip, [sp, 0x20]                               |     __asm ("strd r3, ip, [sp, 0x20]");
                                                                     | label_5:
    0x0004ba0a mov r3, r6                                            |     r3 = r6;
    0x0004ba0c mov.w r4, -1                                          |     r4 = -1;
                                                                     |     do {
    0x0004ba10 ldr r2, [r3], 4                                       |         r2 = *(r3);
                                                                     |         r3 += 4;
    0x0004ba14 cmp r2, r0                                            |         
                                                                     |         if (r2 > r0) {
    0x0004ba16 blo 0x4ba1e                                           |             
    0x0004ba18 cmp r4, r2                                            |             
    0x0004ba1a it hs                                                 |             
                                                                     |             if (r4 >= r2) {
    0x0004ba1c movhs r4, r2                                          |                 r4 = r2;
                                                                     |                 goto label_13;
                                                                     |             }
                                                                     |         }
                                                                     | label_13:
    0x0004ba1e cmp r3, r5                                            |         
    0x0004ba20 bne 0x4ba10                                           |         
                                                                     |     } while (r3 != r5);
    0x0004ba22 ldr r3, [sp, 0x24]                                    |     r3 = *(arg_24h);
    0x0004ba24 sub.w r8, r4, r0                                      |     r8 = r4 - r0;
    0x0004ba28 mvn.w r0, sl                                          |     r0 = ~sl;
    0x0004ba2c add.w sb, r3, 1                                       |     sb = r3 + 1;
    0x0004ba30 mov r1, sb                                            |     r1 = sb;
    0x0004ba32 bl 0x4bec0                                            |     r0 = fcn_0004bec0 (r0, r1, r2);
    0x0004ba36 cmp r8, r0                                            |     
                                                                     |     if (r8 > r0) {
    0x0004ba38 bhi.w 0x4bb4c                                         |         goto label_6;
                                                                     |     }
    0x0004ba3c ldr r3, [pc, 0x214]                                   |     
    0x0004ba3e mla sl, sb, r8, sl                                    |     __asm ("mla sl, sb, r8, sl");
    0x0004ba42 str r4, [sp, 0x10]                                    |     var_10h = r4;
    0x0004ba44 str r6, [sp, 0x38]                                    |     *(arg_38h) = r6;
    0x0004ba46 mov r4, r6                                            |     r4 = r6;
    0x0004ba48 add r3, pc                                            |     r3 = 0x976a0;
    0x0004ba4a str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0004ba4c ldr r3, [pc, 0x208]                                   |     
    0x0004ba4e add r3, pc                                            |     r3 = 0x976aa;
    0x0004ba50 str r3, [sp, 0x18]                                    |     var_18h_2 = r3;
    0x0004ba52 b 0x4ba60                                             |     
                                                                     |     while (r3 > r2) {
    0x0004ba54 adds.w sl, sl, 1                                      |         sl++;
                                                                     |         if (sl == sl) {
    0x0004ba58 beq 0x4bb4c                                           |             goto label_6;
                                                                     |         }
                                                                     | label_0:
    0x0004ba5a cmp r4, r5                                            |         
                                                                     |         if (r4 == r5) {
    0x0004ba5c beq.w 0x4bbfe                                         |             goto label_14;
                                                                     |         }
    0x0004ba60 ldr r2, [r4], 4                                       |         r2 = *(r4);
                                                                     |         r4 += 4;
    0x0004ba64 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0004ba66 cmp r3, r2                                            |         
    0x0004ba68 bhi 0x4ba54                                           |         
                                                                     |     }
                                                                     |     if (r3 != r2) {
    0x0004ba6a bne 0x4ba5a                                           |         goto label_0;
                                                                     |     }
    0x0004ba6c cmp.w fp, 0x800                                       |     
                                                                     |     if (fp >= 0x800) {
    0x0004ba70 bhs 0x4bb4c                                           |         goto label_6;
                                                                     |     }
    0x0004ba72 ldr r3, [sp, 0x28]                                    |     r3 = *(arg_28h);
    0x0004ba74 add.w sb, fp, 1                                       |     sb += arg_1h;
    0x0004ba78 mov r0, sl                                            |     r0 = sl;
    0x0004ba7a movs r6, 0x24                                         |     r6 = 0x24;
    0x0004ba7c strd r4, r5, [sp, 0x2c]                               |     __asm ("strd r4, r5, [sp, 0x2c]");
    0x0004ba80 add.w r8, r3, fp                                      |     r8 = r3 + fp;
    0x0004ba84 b 0x4bad6                                             |     
                                                                     |     while (r7 <= r6) {
    0x0004ba86 add.w r3, r7, 0x1a                                    |         r3 = r7 + 0x1a;
    0x0004ba8a cmp r3, r6                                            |         
    0x0004ba8c it hi                                                 |         
                                                                     |         if (r3 <= r6) {
    0x0004ba8e subhi r5, r6, r7                                      |             r5 = r6 - r7;
                                                                     |         }
                                                                     |         if (r3 > r6) {
    0x0004ba90 bhi 0x4badc                                           |             goto label_15;
                                                                     |         }
    0x0004ba92 cmp r0, 0x19                                          |         
                                                                     |         if (r0 < 0x19) {
    0x0004ba94 bls.w 0x4bc2c                                         |             goto label_16;
                                                                     |         }
    0x0004ba98 movw r1, 0xcccd                                       |         
    0x0004ba9c sub.w r4, r0, 0x1a                                    |         r4 = r0 - 0x1a;
    0x0004baa0 movt r1, 0xcccc                                       |         
    0x0004baa4 mov.w fp, 0xa                                         |         
    0x0004baa8 umull r3, r1, r1, r4                                  |         r3:r1 = r1 * r4;
    0x0004baac lsrs r1, r1, 3                                        |         r1 >>= 3;
    0x0004baae add.w r1, r1, r1, lsl 2                               |         r1 = 0xcccccccd;
    0x0004bab2 sub.w r1, r4, r1, lsl 1                               |         r1 = r4 - (r1 << 1);
    0x0004bab6 adds r1, 0x1a                                         |         r1 += 0x1a;
                                                                     | label_2:
    0x0004bab8 adds r1, 0x16                                         |         r1 += 0x16;
    0x0004baba uxtb r1, r1                                           |         r1 = (int8_t) r1;
                                                                     | label_1:
    0x0004babc strb r1, [r8], 1                                      |         *(r8) = r1;
                                                                     |         r8++;
    0x0004bac0 mov r0, r4                                            |         r0 = r4;
    0x0004bac2 mov r1, fp                                            |         r1 = fp;
    0x0004bac4 adds r6, 0x24                                         |         r6 += 0x24;
    0x0004bac6 bl 0x4bec0                                            |         fcn_0004bec0 (r0, r1, r2);
    0x0004baca cmp.w sb, 0x800                                       |         
    0x0004bace add.w r3, sb, 1                                       |         r3 = sb + 1;
                                                                     |         if (sb == 0x800) {
    0x0004bad2 beq 0x4bb4c                                           |             goto label_6;
                                                                     |         }
    0x0004bad4 mov sb, r3                                            |         sb = r3;
    0x0004bad6 cmp r7, r6                                            |         
    0x0004bad8 blo 0x4ba86                                           |         
                                                                     |     }
    0x0004bada movs r5, 1                                            |     r5 = 1;
                                                                     | label_15:
    0x0004badc cmp r5, r0                                            |     
                                                                     |     if (r5 > r0) {
    0x0004bade bhi 0x4bb52                                           |         goto label_17;
                                                                     |     }
    0x0004bae0 subs r4, r0, r5                                       |     r4 = r0 - r5;
    0x0004bae2 rsb.w fp, r5, 0x24                                    |     
    0x0004bae6 mov r1, fp                                            |     r1 = fp;
    0x0004bae8 mov r0, r4                                            |     r0 = r4;
    0x0004baea bl 0x4c11c                                            |     fcn_0004c11c (r0);
    0x0004baee add r1, r5                                            |     r1 += r5;
    0x0004baf0 cmp r1, 0x19                                          |     
    0x0004baf2 itt ls                                                |     
                                                                     |     if (r1 > 0x19) {
    0x0004baf4 addls r1, 0x61                                        |         r1 += 0x61;
                                                                     |     }
                                                                     |     if (r1 > 0x19) {
    0x0004baf6 uxtbls r1, r1                                         |         __asm ("uxtbls r1, r1");
                                                                     |         goto label_18;
                                                                     |     }
                                                                     |     if (r1 < 0x19) {
                                                                     | label_18:
    0x0004baf8 bls 0x4babc                                           |         goto label_1;
                                                                     |     }
    0x0004bafa sub.w r3, r1, 0x1a                                    |     r3 = r1 - 0x1a;
    0x0004bafe cmp r3, 9                                             |     
                                                                     |     if (r3 < 9) {
    0x0004bb00 bls 0x4bab8                                           |         goto label_2;
                                                                     |     }
    0x0004bb02 movs r3, 0x43                                         |     r3 = 0x43;
    0x0004bb04 ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0004bb06 ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0004bb08 ldr r0, [sp, 0x18]                                    |     r0 = var_18h_2;
    0x0004bb0a str r3, [sp]                                          |     *(sp) = r3;
    0x0004bb0c ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0004bb0e bl 0x43cd4                                            |     zbx_error ();
    0x0004bb12 bl 0x356ac                                            |     zbx_backtrace ();
    0x0004bb16 movs r1, 0                                            |     r1 = 0;
    0x0004bb18 b 0x4babc                                             |     goto label_1;
                                                                     | label_10:
    0x0004bb1a movs r3, 0                                            |     r3 = 0;
    0x0004bb1c strb.w r3, [fp, r6]                                   |     *((fp + r6)) = r3;
                                                                     | label_7:
    0x0004bb20 ldr r0, [sp, 0xc]                                     |     r0 = var_ch;
    0x0004bb22 mov r3, fp                                            |     r3 = fp;
    0x0004bb24 mov r2, r5                                            |     r2 = r5;
    0x0004bb26 mov r1, r8                                            |     r1 = r8;
    0x0004bb28 bl 0x44240                                            |     zbx_strcpy_alloc ()
                                                                     | label_9:
    0x0004bb2c movs r0, 0                                            |     r0 = 0;
                                                                     |     do {
    0x0004bb2e ldr r2, [pc, 0x12c]                                   |         
    0x0004bb30 ldr r3, [pc, 0x110]                                   |         r3 = *(0x4bc44);
    0x0004bb32 add r2, pc                                            |         r2 = 0x97794;
    0x0004bb34 ldr r3, [r2, r3]                                      |         r3 = *(0x97794);
    0x0004bb36 ldr r2, [r3]                                          |         r2 = *(0x97794);
    0x0004bb38 ldr.w r3, [sp, 0x84c]                                 |         r3 = *(arg_84ch);
    0x0004bb3c eors r2, r3                                           |         r2 ^= r3;
    0x0004bb3e mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0004bb42 bne 0x4bc3c                                           |             goto label_19;
                                                                     |         }
    0x0004bb44 addw sp, sp, 0x854                                    |         __asm ("addw sp, var_0h");
    0x0004bb48 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_6:
    0x0004bb4c mov.w r0, -1                                          |         r0 = -1;
    0x0004bb50 b 0x4bb2e                                             |         
                                                                     |     } while (1);
                                                                     | label_17:
    0x0004bb52 cmp r0, 0x19                                          |     
    0x0004bb54 ldrd r4, r5, [sp, 0x2c]                               |     __asm ("ldrd r4, r5, [arg_2ch]");
                                                                     |     if (r0 < 0x19) {
    0x0004bb58 bls 0x4bc30                                           |         goto label_20;
                                                                     |     }
    0x0004bb5a sub.w r3, r0, 0x1a                                    |     r3 = r0 - 0x1a;
    0x0004bb5e cmp r3, 9                                             |     
    0x0004bb60 itt ls                                                |     
                                                                     |     if (r3 > 9) {
    0x0004bb62 addls r3, r0, 0x16                                    |         r3 = r0 + 0x16;
                                                                     |     }
                                                                     |     if (r3 <= 9) {
    0x0004bb66 uxtb r3, r3                                           |         r3 = (int8_t) r3;
                                                                     |     }
                                                                     |     if (r3 > 9) {
    0x0004bb68 bhi 0x4bbde                                           |         goto label_21;
                                                                     |     }
                                                                     | label_4:
    0x0004bb6a ldr r6, [sp, 0x24]                                    |     r6 = *(arg_24h);
    0x0004bb6c mov r0, sl                                            |     r0 = sl;
    0x0004bb6e strb.w r3, [r8]                                       |     *(r8) = r3;
    0x0004bb72 ldr r3, [sp, 0x34]                                    |     r3 = *(arg_34h);
    0x0004bb74 add.w r8, r6, 1                                       |     r8 = r6 + 1;
    0x0004bb78 cmp r3, r6                                            |     
    0x0004bb7a ite eq                                                |     
                                                                     |     if (r3 != r6) {
    0x0004bb7c moveq r1, 0x2bc                                       |         r1 = 0x2bc;
                                                                     |     }
                                                                     |     if (r3 != r6) {
    0x0004bb80 movs r1, 2                                            |         r1 = 2;
                                                                     |     }
    0x0004bb82 bl 0x4bec0                                            |     fcn_0004bec0 (r0, r1, r2);
    0x0004bb86 mov r1, r8                                            |     r1 = r8;
    0x0004bb88 mov r6, r0                                            |     r6 = r0;
    0x0004bb8a bl 0x4bec0                                            |     r0 = fcn_0004bec0 (r0, r1, r2);
    0x0004bb8e adds r3, r6, r0                                       |     r3 = r6 + r0;
    0x0004bb90 cmp.w r3, 0x1c8                                       |     
                                                                     |     if (r3 <= 0x1c8) {
    0x0004bb94 blo 0x4bc38                                           |         goto label_22;
                                                                     |     }
    0x0004bb96 movw r0, 0x41d5                                       |     
    0x0004bb9a movs r7, 0                                            |     r7 = 0;
    0x0004bb9c movt r0, 0xd41d                                       |     r0 = 0xd41d41d5;
    0x0004bba0 movw ip, 0x3e57                                       |     ip = 0x3e57;
                                                                     |     do {
    0x0004bba4 umull r1, r2, r0, r3                                  |         r1:r2 = r0 * r3;
    0x0004bba8 mov r1, r3                                            |         r1 = r3;
    0x0004bbaa cmp r1, ip                                            |         
    0x0004bbac add.w r7, r7, 0x24                                    |         r7 += 0x24;
    0x0004bbb0 sub.w r3, r3, r2                                      |         r3 -= r2;
    0x0004bbb4 add.w r2, r2, r3, lsr 1                               |         r2 += (r3 >> 1);
    0x0004bbb8 lsr.w r3, r2, 5                                       |         r3 = r2 >> 5;
    0x0004bbbc bhi 0x4bba4                                           |         
                                                                     |     } while (r1 > ip);
                                                                     | label_8:
    0x0004bbbe add.w r0, r3, r3, lsl 3                               |     r0 = r3 + (r3 << 3);
    0x0004bbc2 add.w r1, r3, 0x26                                    |     r1 = r3 + 0x26;
    0x0004bbc6 str.w r8, [sp, 0x24]                                  |     __asm ("str.w r8, [arg_24h]");
    0x0004bbca mov fp, sb                                            |     
    0x0004bbcc lsls r0, r0, 2                                        |     r0 <<= 2;
    0x0004bbce mov.w sl, 0                                           |     sl = 0;
    0x0004bbd2 bl 0x4bec0                                            |     r0 = fcn_0004bec0 (r0, r1, r2);
    0x0004bbd6 add r7, r0                                            |     r7 += r0;
    0x0004bbd8 b 0x4ba5a                                             |     goto label_0;
                                                                     | label_11:
    0x0004bbda mov r2, ip                                            |     r2 = ip;
    0x0004bbdc b 0x4b9e0                                             |     goto label_3;
                                                                     | label_21:
    0x0004bbde movs r3, 0x43                                         |     r3 = 0x43;
    0x0004bbe0 ldr r2, [pc, 0x7c]                                    |     
    0x0004bbe2 str r3, [sp]                                          |     *(sp) = r3;
    0x0004bbe4 ldr r1, [pc, 0x7c]                                    |     
    0x0004bbe6 ldr r3, [pc, 0x80]                                    |     
    0x0004bbe8 add r2, pc                                            |     r2 = 0x9784c;
    0x0004bbea ldr r0, [pc, 0x80]                                    |     
    0x0004bbec add r1, pc                                            |     r1 = 0x97854;
    0x0004bbee add r3, pc                                            |     r3 = 0x9785c;
    0x0004bbf0 add r0, pc                                            |     r0 = 0x97862;
    0x0004bbf2 bl 0x43cd4                                            |     zbx_error ();
    0x0004bbf6 bl 0x356ac                                            |     zbx_backtrace ();
    0x0004bbfa movs r3, 0                                            |     r3 = 0;
    0x0004bbfc b 0x4bb6a                                             |     goto label_4;
                                                                     | label_14:
    0x0004bbfe ldr r3, [sp, 0x3c]                                    |     r3 = *(arg_3ch);
    0x0004bc00 add.w sl, sl, 1                                       |     sl++;
    0x0004bc04 ldr r2, [sp, 0x24]                                    |     r2 = *(arg_24h);
    0x0004bc06 ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0004bc08 ldr r6, [sp, 0x38]                                    |     r6 = *(arg_38h);
    0x0004bc0a cmp r3, r2                                            |     
    0x0004bc0c add.w r0, r4, 1                                       |     r0 = r4 + 1;
                                                                     |     if (r3 > r2) {
    0x0004bc10 bhi.w 0x4ba0a                                         |         goto label_5;
                                                                     |     }
    0x0004bc14 mov r2, fp                                            |     r2 = fp;
    0x0004bc16 ldrd r8, r5, [sp, 0x40]                               |     __asm ("ldrd r8, r5, [arg_40h]");
    0x0004bc1a ldr.w fp, [sp, 0x28]                                  |     fp = *(arg_28h);
                                                                     | label_12:
    0x0004bc1e cmp.w r2, 0x800                                       |     
                                                                     |     if (r2 >= 0x800) {
    0x0004bc22 bhs 0x4bb4c                                           |         goto label_6;
                                                                     |     }
    0x0004bc24 movs r3, 0                                            |     r3 = 0;
    0x0004bc26 strb.w r3, [fp, r2]                                   |     *((fp + r2)) = r3;
    0x0004bc2a b 0x4bb20                                             |     goto label_7;
                                                                     | label_16:
    0x0004bc2c ldrd r4, r5, [sp, 0x2c]                               |     __asm ("ldrd r4, r5, [arg_2ch]");
                                                                     | label_20:
    0x0004bc30 add.w r3, r0, 0x61                                    |     r3 = r0 + 0x61;
    0x0004bc34 uxtb r3, r3                                           |     r3 = (int8_t) r3;
    0x0004bc36 b 0x4bb6a                                             |     goto label_4;
                                                                     | label_22:
    0x0004bc38 movs r7, 0                                            |     r7 = 0;
    0x0004bc3a b 0x4bbbe                                             |     goto label_8;
                                                                     | label_19:
    0x0004bc3c blx 0xe158                                            |     r0 = fcn_0000e158 ();
    0x0004bc40 lsls r4, r0, 0xa                                      |     r4 = r0 << 0xa;
    0x0004bc42 movs r1, r0                                           |     r1 = r0;
    0x0004bc44 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0004bc46 movs r0, r0                                           |     
    0x0004bc48 ldm r7, {r2, r3, r4, r5, r6, r7}                      |     r2 = *(r7);
                                                                     |     r3 = *((r7 + 4));
                                                                     |     r4 = *((r7 + 8));
                                                                     |     r5 = *((r7 + 12));
                                                                     |     r6 = *((r7 + 16));
                                                                     |     r7 = *((r7 + 20));
    0x0004bc4a movs r0, r0                                           |     
    0x0004bc4c asrs r4, r0, 0x1f                                     |     r4 = r0 >> 0x1f;
    0x0004bc4e movs r0, r0                                           |     
    0x0004bc50 ldm r7, {r3, r7}                                      |     r3 = *(r7);
                                                                     |     r7 = *((r7 + 4));
    0x0004bc52 movs r0, r0                                           |     
    0x0004bc54 ldm r7!, {r3, r4, r6}                                 |     r3 = *(r7!);
                                                                     |     r4 = *((r7! + 4));
                                                                     |     r6 = *((r7! + 8));
    0x0004bc56 movs r0, r0                                           |     
    0x0004bc58 adds r2, r1, r7                                       |     r2 = r1 + r7;
    0x0004bc5a movs r0, r0                                           |     
    0x0004bc5c lsls r6, r4, 2                                        |     r6 = r4 << 2;
    0x0004bc5e movs r1, r0                                           |     r1 = r0;
    0x0004bc60 ldm r5, {r3, r4, r5, r7}                              |     r3 = *(r5);
                                                                     |     r4 = *((r5 + 4));
                                                                     |     r5 = *((r5 + 8));
                                                                     |     r7 = *((r5 + 12));
    0x0004bc62 movs r0, r0                                           |     
    0x0004bc64 ldm r5, {r5, r7}                                      |     r5 = *(r5);
                                                                     |     r7 = *((r5 + 4));
    0x0004bc66 movs r0, r0                                           |     
    0x0004bc68 asrs r6, r0, 0x17                                     |     r6 = r0 >> 0x17;
    0x0004bc6a movs r0, r0                                           |     
    0x0004bc6c adds r0, r5, r0                                       |     r0 = r5 + r0;
    0x0004bc6e movs r0, r0                                           |     
                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2cbfc */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FILE_CONTENTS ()                                 | void VFS_FILE_CONTENTS (int16_t arg_128h, int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_10000h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_8ch;
                                                                     |     int16_t var_ach;
                                                                     |     int16_t var_b0h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002cbfc blmi 0xff5ff75c                                       |     __asm ("blmi 0xff5ff75c");
    0x0002cc00 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002cc04 mov r7, r0                                            |     r7 = r0;
    0x0002cc06 vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0002cc0a add r2, pc                                            |     r2 += pc;
    0x0002cc0c sub.w sp, sp, 0x10000                                 |     
    0x0002cc10 movs r6, 0                                            |     r6 = 0;
    0x0002cc12 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0002cc14 sub sp, 0xb4                                          |     
    0x0002cc16 add.w r0, sp, 0x10000                                 |     r0 += arg_10000h;
    0x0002cc1a add r4, sp, 0xb0                                      |     r4 += var_b0h;
    0x0002cc1c adds r0, 0xac                                         |     r0 += 0xac;
    0x0002cc1e mov r5, r1                                            |     r5 = r1;
    0x0002cc20 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0002cc22 str r3, [r0]                                          |     *(r0) = r3;
    0x0002cc24 mov.w r3, 0                                           |     r3 = 0;
    0x0002cc28 strd r6, r6, [r4, -0x9c]                              |     __asm ("strd r6, r6, [r4, -0x9c]");
    0x0002cc2c str r6, [r4, -0x94]                                   |     *((r4 - 0x94)) = r6;
    0x0002cc30 bl 0x3ffc0                                            |     zbx_time ();
    0x0002cc34 ldr r3, [r7, 4]                                       |     r3 = *((r7 + 4));
    0x0002cc36 ldr.w r8, [pc, 0x328]                                 |     
    0x0002cc3a cmp r3, 2                                             |     
    0x0002cc3c add r8, pc                                            |     r8 = 0x59ba2;
                                                                     |     if (r3 > 2) {
    0x0002cc3e bgt.w 0x2cdb2                                         |         goto label_9;
                                                                     |     }
    0x0002cc42 cmp r3, 0                                             |     
    0x0002cc44 it le                                                 |     
                                                                     |     if (r3 > 0) {
    0x0002cc46 strble r6, [r4, -0x24]                                |         *((r4 - 0x24)) = r6;
                                                                     |     }
                                                                     |     if (r3 <= 0) {
    0x0002cc4a ble.w 0x2cd60                                         |         goto label_10;
                                                                     |     }
    0x0002cc4e ldr r2, [r7, 8]                                       |     r2 = *((r7 + 8));
    0x0002cc50 cmp r3, 2                                             |     
    0x0002cc52 vmov.f64 d8, d0                                       |     __asm ("vmov.f64 d8, d0");
    0x0002cc56 ldr r6, [r2]                                          |     r6 = *(r2);
                                                                     |     if (r3 != 2) {
    0x0002cc58 bne.w 0x2cdaa                                         |         goto label_11;
                                                                     |     }
    0x0002cc5c ldr r1, [r2, 4]                                       |     r1 = *((r2 + 4));
    0x0002cc5e cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0002cc60 beq.w 0x2cdaa                                         |         goto label_11;
                                                                     |     }
    0x0002cc64 movs r2, 0x20                                         |     r2 = 0x20;
    0x0002cc66 sub.w r0, r4, 0x24                                    |     r0 = r4 - 0x24;
    0x0002cc6a bl 0x4465c                                            |     zbx_strlcpy ();
                                                                     | label_1:
    0x0002cc6e cmp r6, 0                                             |     
                                                                     |     if (r6 == 0) {
    0x0002cc70 beq 0x2cd60                                           |         goto label_10;
                                                                     |     }
    0x0002cc72 ldrb r3, [r6]                                         |     r3 = *(r6);
    0x0002cc74 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cc76 beq 0x2cd60                                           |         goto label_10;
                                                                     |     }
    0x0002cc78 mov r0, r6                                            |     r0 = r6;
    0x0002cc7a movs r1, 0                                            |     r1 = 0;
    0x0002cc7c blx 0xe030                                            |     r0 = fcntl64 ();
    0x0002cc80 adds r3, r0, 1                                        |     r3 = r0 + 1;
    0x0002cc82 mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r3 == r0) {
    0x0002cc84 beq.w 0x2cdf4                                         |         goto label_12;
                                                                     |     }
    0x0002cc88 ldr r3, [pc, 0x2d8]                                   |     r3 = *(0x2cf64);
    0x0002cc8a ldr.w fp, [r8, r3]                                    |     fp = *((r8 + r3));
    0x0002cc8e vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002cc90 ldrb r0, [r0, 8]                                      |     r0 = *((r0 + 8));
    0x0002cc92 vcvt.f64.s32 d9, s15                                  |     __asm ("vcvt.f64.s32 d9, s15");
    0x0002cc96 bl 0x3ffc0                                            |     zbx_time ();
    0x0002cc9a vsub.f64 d0, d0, d8                                   |     __asm ("vsub.f64 d0, d0, d8");
    0x0002cc9e vcmpe.f64 d9, d0                                      |     __asm ("vcmpe.f64 d9, d0");
    0x0002cca2 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r3 < r0) {
    0x0002cca6 bmi.w 0x2cdce                                         |         goto label_13;
                                                                     |     }
    0x0002ccaa sub.w r1, r4, 0x90                                    |     r1 = r4 - 0x90;
    0x0002ccae mov r0, r6                                            |     r0 = r6;
    0x0002ccb0 blx 0xdfdc                                            |     r0 = dlopen ();
    0x0002ccb4 mov r7, r0                                            |     r7 = r0;
    0x0002ccb6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002ccb8 bne.w 0x2ce32                                         |         goto label_14;
                                                                     |     }
    0x0002ccbc ldrd r2, r3, [r4, -0x60]                              |     __asm ("ldrd r2, r3, [r4, -0x60]");
    0x0002ccc0 cmp.w r2, 0x10001                                     |     
    0x0002ccc4 sbcs r3, r3, 0                                        |     __asm ("sbcs r3, r3, 0");
                                                                     |     if (r2 >= 0x10001) {
    0x0002ccc8 bge.w 0x2ce14                                         |         goto label_15;
                                                                     |     }
    0x0002cccc vldr s15, [fp]                                        |     __asm ("vldr s15, [fp]");
    0x0002ccd0 vcvt.f64.s32 d9, s15                                  |     __asm ("vcvt.f64.s32 d9, s15");
    0x0002ccd4 bl 0x3ffc0                                            |     zbx_time ();
    0x0002ccd8 vsub.f64 d0, d0, d8                                   |     __asm ("vsub.f64 d0, d0, d8");
    0x0002ccdc vcmpe.f64 d9, d0                                      |     __asm ("vcmpe.f64 d9, d0");
    0x0002cce0 vmrs apsr_nzcv, fpscr                                 |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |     if (r2 < 0x10001) {
    0x0002cce4 bmi.w 0x2cef2                                         |         goto label_16;
                                                                     |     }
    0x0002cce8 sub.w r3, r4, 0x94                                    |     r3 = r4 - 0x94;
    0x0002ccec mov r8, r7                                            |     r8 = r7;
    0x0002ccee add.w sl, sp, 0x8c                                    |     sl += var_8ch;
    0x0002ccf2 add.w sb, sp, 0xac                                    |     sb += var_ach;
    0x0002ccf6 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0002ccf8 sub.w r3, r4, 0x98                                    |     r3 = r4 - 0x98;
    0x0002ccfc strd r3, r7, [sp, 8]                                  |     __asm ("strd r3, r7, [sp, 8]");
                                                                     |     do {
                                                                     | label_0:
    0x0002cd00 mov r3, sl                                            |         r3 = sl;
    0x0002cd02 mov.w r2, 0x10000                                     |         r2 = 0x10000;
    0x0002cd04 adds r2, 0x80                                         |         r2 += 0x80;
    0x0002cd06 mov r1, sb                                            |         r1 = sb;
    0x0002cd08 mov r0, r6                                            |         r0 = r6;
    0x0002cd0a bl 0x3fa5c                                            |         r0 = zbx_read ();
    0x0002cd0e subs r7, r0, 0                                        |         r7 = r0 - 0;
                                                                     |         if (r7 <= r0) {
    0x0002cd10 ble.w 0x2ce54                                         |             goto label_17;
                                                                     |         }
    0x0002cd14 vldr s15, [fp]                                        |         __asm ("vldr s15, [fp]");
    0x0002cd18 vcvt.f64.s32 d9, s15                                  |         __asm ("vcvt.f64.s32 d9, s15");
    0x0002cd1c bl 0x3ffc0                                            |         zbx_time ();
    0x0002cd20 vsub.f64 d0, d0, d8                                   |         __asm ("vsub.f64 d0, d0, d8");
    0x0002cd24 vcmpe.f64 d9, d0                                      |         __asm ("vcmpe.f64 d9, d0");
    0x0002cd28 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                     |         if (r7 < r0) {
    0x0002cd2c bmi.w 0x2ce9a                                         |             goto label_18;
                                                                     |         }
    0x0002cd30 add r8, r7                                            |         r8 += r7;
    0x0002cd32 cmp.w r8, 0x10000                                     |         
                                                                     |         if (r8 > 0x10000) {
    0x0002cd36 bgt.w 0x2cecc                                         |             goto label_19;
                                                                     |         }
    0x0002cd3a mov r1, r7                                            |         r1 = r7;
    0x0002cd3c mov r2, sl                                            |         r2 = sl;
    0x0002cd3e mov r0, sb                                            |         r0 = sb;
    0x0002cd40 bl 0x4587c                                            |         r0 = convert_to_utf8 ();
    0x0002cd44 mov r7, r0                                            |         r7 = r0;
    0x0002cd46 mov r3, r0                                            |         r3 = r0;
    0x0002cd48 ldr r2, [sp, 4]                                       |         r2 = var_4h;
    0x0002cd4a sub.w r0, r4, 0x9c                                    |         r0 = r4 - 0x9c;
    0x0002cd4e ldr r1, [sp, 8]                                       |         r1 = var_8h;
    0x0002cd50 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0002cd54 cmp r7, 0                                             |         
    0x0002cd56 beq 0x2cd00                                           |         
                                                                     |     } while (r7 == 0);
    0x0002cd58 mov r0, r7                                            |     r0 = r7;
    0x0002cd5a blx 0xde30                                            |     fcn_0000de30 ();
    0x0002cd5e b 0x2cd00                                             |     goto label_0;
                                                                     | label_10:
    0x0002cd60 ldr r0, [r5, 0x28]                                    |     r0 = *((r5 + 0x28));
    0x0002cd62 movs r2, 0                                            |     r2 = 0;
    0x0002cd64 ldr r3, [pc, 0x200]                                   |     
    0x0002cd66 movw r1, 0x17d                                        |     r1 = 0x17d;
    0x0002cd6a orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0002cd6e str r0, [r5, 0x28]                                    |     *((r5 + 0x28)) = r0;
    0x0002cd70 add r3, pc                                            |     r3 = 0x59cdc;
    0x0002cd72 ldr r0, [pc, 0x1f8]                                   |     
    0x0002cd74 add r0, pc                                            |     r0 = 0x59ce6;
    0x0002cd76 bl 0x40ed8                                            |     zbx_strdup2 ();
                                                                     |     do {
                                                                     | label_3:
    0x0002cd7a movs r7, 1                                            |         r7 = 1;
    0x0002cd7c str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
                                                                     | label_2:
    0x0002cd7e ldr r2, [pc, 0x1f0]                                   |         
    0x0002cd80 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h;
    0x0002cd84 ldr r3, [pc, 0x1d4]                                   |         r3 = *(0x2cf5c);
    0x0002cd86 adds r1, 0xac                                         |         r1 += 0xac;
    0x0002cd88 add r2, pc                                            |         r2 = 0x59cfe;
    0x0002cd8a ldr r3, [r2, r3]                                      |         r3 = *(0x59cfe);
    0x0002cd8c ldr r2, [r3]                                          |         r2 = *(0x59cfe);
    0x0002cd8e ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002cd90 eors r2, r3                                           |         r2 ^= r3;
    0x0002cd92 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002cd96 bne.w 0x2cf52                                         |             goto label_20;
                                                                     |         }
    0x0002cd9a mov r0, r7                                            |         r0 = r7;
    0x0002cd9c add.w sp, sp, 0x10000                                 |         
    0x0002cda0 add sp, 0xb4                                          |         
    0x0002cda2 vpop {d8, d9}                                         |         __asm ("vpop {d8, d9}");
    0x0002cda6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_11:
    0x0002cdaa movs r3, 0                                            |         r3 = 0;
    0x0002cdac strb r3, [r4, -0x24]                                  |         *((r4 - 0x24)) = r3;
    0x0002cdb0 b 0x2cc6e                                             |         goto label_1;
                                                                     | label_9:
    0x0002cdb2 ldr r0, [r5, 0x28]                                    |         r0 = *((r5 + 0x28));
    0x0002cdb4 mov r2, r6                                            |         r2 = r6;
    0x0002cdb6 ldr r3, [pc, 0x1bc]                                   |         
    0x0002cdb8 movw r1, 0x16f                                        |         r1 = 0x16f;
    0x0002cdbc orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0002cdc0 str r0, [r5, 0x28]                                    |         *((r5 + 0x28)) = r0;
    0x0002cdc2 add r3, pc                                            |         r3 = 0x59d3c;
    0x0002cdc4 ldr r0, [pc, 0x1b0]                                   |         
    0x0002cdc6 add r0, pc                                            |         r0 = 0x59d42;
    0x0002cdc8 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002cdcc b 0x2cd7a                                             |         
                                                                     |     } while (1);
                                                                     | label_13:
    0x0002cdce ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002cdd0 movs r2, 0                                            |     r2 = 0;
    0x0002cdd2 ldr r3, [pc, 0x1a8]                                   |     
    0x0002cdd4 ldr r0, [pc, 0x1a8]                                   |     
    0x0002cdd6 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002cdda str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002cddc add r3, pc                                            |     r3 = 0x59d5e;
    0x0002cdde add r0, pc                                            |     r0 = 0x59d62;
    0x0002cde0 movw r1, 0x189                                        |     r1 = 0x189;
    0x0002cde4 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cde8 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
                                                                     |     do {
                                                                     | label_4:
    0x0002cdea movs r7, 1                                            |         r7 = 1;
                                                                     | label_5:
    0x0002cdec mov r0, r6                                            |         r0 = r6;
    0x0002cdee blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0002cdf2 b 0x2cd7e                                             |         goto label_2;
                                                                     | label_12:
    0x0002cdf4 ldr r3, [r5, 0x28]                                    |         r3 = *((r5 + 0x28));
    0x0002cdf6 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0002cdfa str r3, [r5, 0x28]                                    |         *((r5 + 0x28)) = r3;
    0x0002cdfc blx 0xe3d4                                            |         r0 = fcn_0000e3d4 ();
    0x0002ce00 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0002ce02 bl 0x30b74                                            |         zbx_strerror ();
    0x0002ce06 ldr r1, [pc, 0x17c]                                   |         
    0x0002ce08 mov r2, r0                                            |         r2 = r0;
    0x0002ce0a movs r0, 0                                            |         r0 = 0;
    0x0002ce0c add r1, pc                                            |         r1 = 0x59d96;
    0x0002ce0e bl 0x44820                                            |         zbx_dsprintf ();
    0x0002ce12 b 0x2cd7a                                             |         goto label_3;
                                                                     | label_15:
    0x0002ce14 ldr r1, [r5, 0x28]                                    |         r1 = *((r5 + 0x28));
    0x0002ce16 mov r2, r0                                            |         r2 = r0;
    0x0002ce18 ldr r3, [pc, 0x16c]                                   |         
    0x0002ce1a ldr r0, [pc, 0x170]                                   |         
    0x0002ce1c orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0002ce20 str r1, [r5, 0x28]                                    |         *((r5 + 0x28)) = r1;
    0x0002ce22 add r3, pc                                            |         r3 = 0x59dae;
    0x0002ce24 add r0, pc                                            |         r0 = 0x59db6;
    0x0002ce26 movw r1, 0x195                                        |         r1 = 0x195;
    0x0002ce2a bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002ce2e str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002ce30 b 0x2cdea                                             |         
                                                                     |     } while (1);
                                                                     | label_14:
    0x0002ce32 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0002ce34 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0002ce38 str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0002ce3a blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0002ce3e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002ce40 bl 0x30b74                                            |     zbx_strerror ();
    0x0002ce44 ldr r1, [pc, 0x148]                                   |     
    0x0002ce46 mov r2, r0                                            |     r2 = r0;
    0x0002ce48 movs r0, 0                                            |     r0 = 0;
    0x0002ce4a add r1, pc                                            |     r1 = 0x59dde;
    0x0002ce4c bl 0x44820                                            |     zbx_dsprintf ();
    0x0002ce50 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002ce52 b 0x2cdea                                             |     goto label_4;
                                                                     | label_17:
    0x0002ce54 mov r1, r7                                            |     r1 = r7;
    0x0002ce56 ldr r7, [sp, 0xc]                                     |     r7 = var_ch;
    0x0002ce58 adds r1, 1                                            |     r1++;
                                                                     |     if (r1 == 1) {
    0x0002ce5a beq 0x2cf2c                                           |         goto label_21;
                                                                     |     }
    0x0002ce5c ldr r3, [r4, -0x94]                                   |     r3 = *((r4 - 0x94));
    0x0002ce60 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
    0x0002ce64 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002ce66 bne 0x2cf10                                           |         goto label_22;
                                                                     |     }
                                                                     | label_6:
    0x0002ce68 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
                                                                     |     if (r0 != 0) {
    0x0002ce6c cbz r0, 0x2ce78                                       |         
    0x0002ce6e blx 0xde30                                            |         fcn_0000de30 ();
    0x0002ce72 movs r3, 0                                            |         r3 = 0;
    0x0002ce74 str r3, [r4, -0x9c]                                   |         *((r4 - 0x9c)) = r3;
                                                                     |     }
    0x0002ce78 ldr r3, [pc, 0x118]                                   |     
    0x0002ce7a movs r2, 0                                            |     r2 = 0;
    0x0002ce7c ldr r0, [pc, 0x118]                                   |     
    0x0002ce7e movw r1, 0x1c3                                        |     r1 = 0x1c3;
    0x0002ce82 add r3, pc                                            |     r3 = 0x59e1a;
    0x0002ce84 add r0, pc                                            |     r0 = 0x59e20;
    0x0002ce86 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002ce8a str r0, [r4, -0x9c]                                   |     *((r4 - 0x9c)) = r0;
                                                                     | label_7:
    0x0002ce8e ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0002ce90 str r0, [r5, 0x1c]                                    |     *((r5 + 0x1c)) = r0;
    0x0002ce92 orr r3, r3, 8                                         |     r3 |= 8;
    0x0002ce96 str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0002ce98 b 0x2cdec                                             |     goto label_5;
                                                                     | label_18:
    0x0002ce9a ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0002ce9c movw r1, 0x1a5                                        |     r1 = 0x1a5;
    0x0002cea0 ldr r3, [pc, 0xf8]                                    |     
    0x0002cea2 ldr r0, [pc, 0xfc]                                    |     
    0x0002cea4 orr r2, r2, 0x20                                      |     r2 |= 0x20;
    0x0002cea8 add r3, pc                                            |     r3 = 0x59e48;
    0x0002ceaa str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0002ceac add r0, pc                                            |     r0 = 0x59e52;
    0x0002ceae movs r2, 0                                            |     r2 = 0;
    0x0002ceb0 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002ceb4 ldr r3, [r4, -0x9c]                                   |     r3 = *((r4 - 0x9c));
    0x0002ceb8 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002ceba cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cebc beq 0x2cdea                                           |         goto label_4;
                                                                     |     }
                                                                     |     do {
                                                                     | label_8:
    0x0002cebe mov r0, r3                                            |         r0 = r3;
    0x0002cec0 blx 0xde30                                            |         fcn_0000de30 ();
    0x0002cec4 movs r3, 0                                            |         r3 = 0;
    0x0002cec6 str r3, [r4, -0x9c]                                   |         *((r4 - 0x9c)) = r3;
    0x0002ceca b 0x2cdea                                             |         goto label_4;
                                                                     | label_19:
    0x0002cecc ldr r2, [r5, 0x28]                                    |         r2 = *((r5 + 0x28));
    0x0002cece mov.w r1, 0x1ac                                       |         r1 = 0x1ac;
    0x0002ced2 ldr r3, [pc, 0xd0]                                    |         
    0x0002ced4 ldr r0, [pc, 0xd0]                                    |         
    0x0002ced6 orr r2, r2, 0x20                                      |         r2 |= 0x20;
    0x0002ceda add r3, pc                                            |         r3 = 0x59e84;
    0x0002cedc str r2, [r5, 0x28]                                    |         *((r5 + 0x28)) = r2;
    0x0002cede add r0, pc                                            |         r0 = 0x59e8a;
    0x0002cee0 movs r2, 0                                            |         r2 = 0;
    0x0002cee2 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0002cee6 ldr r3, [r4, -0x9c]                                   |         r3 = *((r4 - 0x9c));
    0x0002ceea str r0, [r5, 0x20]                                    |         *((r5 + 0x20)) = r0;
    0x0002ceec cmp r3, 0                                             |         
    0x0002ceee bne 0x2cebe                                           |         
                                                                     |     } while (r3 != 0);
    0x0002cef0 b 0x2cdea                                             |     goto label_4;
                                                                     | label_16:
    0x0002cef2 ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0002cef4 mov r2, r7                                            |     r2 = r7;
    0x0002cef6 ldr r3, [pc, 0xb4]                                    |     
    0x0002cef8 ldr r0, [pc, 0xb4]                                    |     
    0x0002cefa orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0002cefe str r1, [r5, 0x28]                                    |     *((r5 + 0x28)) = r1;
    0x0002cf00 add r3, pc                                            |     r3 = 0x59eb2;
    0x0002cf02 add r0, pc                                            |     r0 = 0x59eb6;
    0x0002cf04 movw r1, 0x19b                                        |     r1 = 0x19b;
    0x0002cf08 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cf0c str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002cf0e b 0x2cdea                                             |     goto label_4;
                                                                     | label_22:
    0x0002cf10 ldr r1, [pc, 0xa0]                                    |     
    0x0002cf12 add r1, pc                                            |     r1 = 0x59eca;
    0x0002cf14 bl 0x444f4                                            |     zbx_rtrim ();
    0x0002cf18 ldr r3, [r4, -0x94]                                   |     r3 = *((r4 - 0x94));
    0x0002cf1c subs r3, r3, r0                                       |     r3 -= r0;
    0x0002cf1e str r3, [r4, -0x94]                                   |     *((r4 - 0x94)) = r3;
    0x0002cf22 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002cf24 beq 0x2ce68                                           |         goto label_6;
                                                                     |     }
    0x0002cf26 ldr r0, [r4, -0x9c]                                   |     r0 = *((r4 - 0x9c));
    0x0002cf2a b 0x2ce8e                                             |     goto label_7;
                                                                     | label_21:
    0x0002cf2c ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0002cf2e mov.w r1, 0x1b8                                       |     r1 = 0x1b8;
    0x0002cf32 ldr r3, [pc, 0x84]                                    |     
    0x0002cf34 ldr r0, [pc, 0x84]                                    |     
    0x0002cf36 orr r2, r2, 0x20                                      |     r2 |= 0x20;
    0x0002cf3a add r3, pc                                            |     r3 = 0x59ef8;
    0x0002cf3c str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0002cf3e add r0, pc                                            |     r0 = 0x59efe;
    0x0002cf40 movs r2, 0                                            |     r2 = 0;
    0x0002cf42 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0002cf46 ldr r3, [r4, -0x9c]                                   |     r3 = *((r4 - 0x9c));
    0x0002cf4a str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0002cf4c cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002cf4e bne 0x2cebe                                           |         goto label_8;
                                                                     |     }
    0x0002cf50 b 0x2cdea                                             |     goto label_4;
                                                                     | label_20:
    0x0002cf52 blx 0xe158                                            |     fcn_0000e158 ();
    0x0002cf56 nop                                                   |     
    0x0002cf58 vaddl.s8 q8, d14, d2                                  |     __asm ("vaddl.s8 q8, d14, d2");
    0x0002cf5c lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0002cf5e movs r0, r0                                           |     
    0x0002cf60 vaddl.s16 q0, d12, d2                                 |     __asm ("vaddl.s16 q0, d12, d2");
    0x0002cf64 lsls r4, r4, 0xc                                      |     r4 <<= 0xc;
    0x0002cf66 movs r0, r0                                           |     
    0x0002cf68 cmp r1, 0                                             |     
    0x0002cf6a movs r2, r0                                           |     r2 = r0;
    0x0002cf6c str r4, [r1, 0x74]                                    |     *((r1 + 0x74)) = r4;
    0x0002cf6e movs r2, r0                                           |     r2 = r0;
    0x0002cf70 cdp p0, 5, c0, c0, c2, 0                              |     __asm ("cdp p0, 5, c0, c0, c2, 0");
    0x0002cf74 cmp r0, 0x96                                          |     
    0x0002cf76 movs r2, r0                                           |     r2 = r0;
    0x0002cf78 str r2, [r7, 0x6c]                                    |     *((r7 + 0x6c)) = r2;
    0x0002cf7a movs r2, r0                                           |     r2 = r0;
    0x0002cf7c str r4, [r0, 0x6c]                                    |     *((r0 + 0x6c)) = r4;
    0x0002cf7e movs r2, r0                                           |     r2 = r0;
    0x0002cf80 str r2, [r4, 0x6c]                                    |     *((r4 + 0x6c)) = r2;
    0x0002cf82 movs r2, r0                                           |     r2 = r0;
    0x0002cf84 str r4, [r7, 0x64]                                    |     *((r7 + 0x64)) = r4;
    0x0002cf86 movs r2, r0                                           |     r2 = r0;
    0x0002cf88 str r2, [r7, 0x6c]                                    |     *((r7 + 0x6c)) = r2;
    0x0002cf8a movs r2, r0                                           |     r2 = r0;
    0x0002cf8c str r4, [r3, 0x68]                                    |     *((r3 + 0x68)) = r4;
    0x0002cf8e movs r2, r0                                           |     r2 = r0;
    0x0002cf90 str r6, [r3, 0x68]                                    |     *((r3 + 0x68)) = r6;
    0x0002cf92 movs r2, r0                                           |     r2 = r0;
    0x0002cf94 ldr r5, [pc, 0x2b8]                                   |     r5 = *(0x2d250);
    0x0002cf96 movs r2, r0                                           |     r2 = r0;
    0x0002cf98 str r4, [r7, 0x60]                                    |     *((r7 + 0x60)) = r4;
    0x0002cf9a movs r2, r0                                           |     r2 = r0;
    0x0002cf9c str r0, [r7, 0x5c]                                    |     *((r7 + 0x5c)) = r0;
    0x0002cf9e movs r2, r0                                           |     r2 = r0;
    0x0002cfa0 str r4, [r2, 0x60]                                    |     *((r2 + 0x60)) = r4;
    0x0002cfa2 movs r2, r0                                           |     r2 = r0;
    0x0002cfa4 str r2, [r0, 0x64]                                    |     *((r0 + 0x64)) = r2;
    0x0002cfa6 movs r2, r0                                           |     r2 = r0;
    0x0002cfa8 str r2, [r4, 0x5c]                                    |     *((r4 + 0x5c)) = r2;
    0x0002cfaa movs r2, r0                                           |     r2 = r0;
    0x0002cfac str r0, [r4, 0x58]                                    |     *((r4 + 0x58)) = r0;
    0x0002cfae movs r2, r0                                           |     r2 = r0;
    0x0002cfb0 str r6, [r7, 0x58]                                    |     *((r7 + 0x58)) = r6;
    0x0002cfb2 movs r2, r0                                           |     r2 = r0;
    0x0002cfb4 add r4, sp, 0x128                                     |     r4 += arg_128h;
    0x0002cfb6 movs r2, r0                                           |     r2 = r0;
    0x0002cfb8 strh r2, [r1, r5]                                     |     *((r1 + r5)) = r2;
    0x0002cfba movs r2, r0                                           |     r2 = r0;
    0x0002cfbc str r2, [r0, 0x58]                                    |     *((r0 + 0x58)) = r2;
    0x0002cfbe movs r2, r0                                           |     r2 = r0;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x12630 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.listener_thread ()                               | void listener_thread (int16_t arg_0h, int16_t arg_28h, int16_t arg_34h, int16_t arg_38h, int16_t arg_68h, int16_t arg_e14h, uint32_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
    0x00012630 blmi 0xff425174                                   |     __asm ("blmi aav.0x0004959c");
    0x00012634 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00012638 subw sp, sp, 0xe1c                                |     __asm ("subw sp, sp, 0xe1c");
    0x0001263c add r2, pc                                        |     r2 += pc;
    0x0001263e ldr r7, [pc, 0x338]                               |     
    0x00012640 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00012642 add r7, pc                                        |     r7 = 0x24fc0;
    0x00012644 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00012646 str.w r3, [sp, 0xe14]                             |     __asm ("str.w r3, [arg_e14h]");
    0x0001264a mov.w r3, 0                                       |     r3 = 0;
    0x0001264e cmp r0, 0                                         |     
                                                                 |     if (arg_0h == ) {
    0x00012650 beq.w 0x1288e                                     |         goto label_12;
                                                                 |     }
    0x00012654 ldr r3, [r0, 0xc]                                 |     r3 = *(arg_0hxc);
    0x00012656 mov r6, r0                                        |     r6 = r0;
    0x00012658 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001265a beq.w 0x127b4                                     |         goto label_13;
                                                                 |     }
    0x0001265e ldr r2, [pc, 0x31c]                               |     r2 = *(0x1297e);
    0x00012660 ldrb r1, [r0, 8]                                  |     r1 = *((r0 + 8));
    0x00012662 ldr r3, [pc, 0x31c]                               |     r3 = *(0x12982);
    0x00012664 ldr r2, [r7, r2]                                  |     r2 = *((r7 + r2));
    0x00012666 strb r1, [r2]                                     |     *(r2) = r1;
    0x00012668 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x0001266a ldr r5, [r7, r3]                                  |     r5 = *((r7 + r3));
    0x0001266c ldr r3, [r0]                                      |     r3 = *(r0);
    0x0001266e str r3, [r5]                                      |     *(r5) = r3;
    0x00012670 ldr r3, [pc, 0x310]                               |     r3 = *(0x12984);
    0x00012672 ldr r4, [r7, r3]                                  |     r4 = *((r7 + r3));
    0x00012674 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00012676 str r3, [r4]                                      |     *(r4) = r3;
    0x00012678 ldr r3, [pc, 0x30c]                               |     r3 = *(0x12988);
    0x0001267a ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0001267c ldrb r0, [r3]                                     |     r0 = *(r3);
    0x0001267e bl 0x4534c                                        |     get_program_type_string ();
    0x00012682 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x00012684 ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x00012688 mov r5, r0                                        |     r5 = r0;
    0x0001268a ldrb r0, [r2]                                     |     r0 = *(r2);
    0x0001268c bl 0x45020                                        |     get_process_type_string ();
    0x00012690 str r0, [sp]                                      |     *(sp) = r0;
    0x00012692 mov r3, r8                                        |     r3 = r8;
    0x00012694 ldr r1, [r4]                                      |     r1 = *(r4);
    0x00012696 mov r2, r5                                        |     r2 = r5;
    0x00012698 movs r0, 0x7f                                     |     r0 = 0x7f;
    0x0001269a add r5, sp, 0x68                                  |     r5 += arg_68h;
    0x0001269c str r1, [sp, 4]                                   |     var_4h = r1;
    0x0001269e ldr r1, [pc, 0x2ec]                               |     
    0x000126a0 add r1, pc                                        |     r1 = 0x25032;
    0x000126a2 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000126a6 ldr r1, [r6, 0xc]                                 |     r1 = *((r6 + 0xc));
    0x000126a8 movw r2, 0xdac                                    |     r2 = 0xdac;
    0x000126ac mov r0, r5                                        |     r0 = r5;
    0x000126ae blx 0xdf84                                        |     fcn_0000df84 ();
    0x000126b2 mov r0, r6                                        |     r0 = r6;
    0x000126b4 ldr r6, [pc, 0x2d8]                               |     
    0x000126b6 blx 0xde30                                        |     fcn_0000de30 ();
    0x000126b8 subs.w r8, ip, r6, ror 18                         |     r8 = ip - (r6 >>> 18);
    0x000126bc add r6, pc                                        |     r6 = 0x25050;
    0x000126be add r0, pc                                        |     r0 += pc;
    0x000126c0 bl 0x34e70                                        |     zbx_set_sigusr_handler ();
    0x000126c4 ldr r3, [pc, 0x2d0]                               |     r3 = *(0x12998);
    0x000126c6 ldr.w r8, [r7, r3]                                |     r8 = *((r7 + r3));
    0x000126ca ldr r3, [pc, 0x2d0]                               |     r3 = *(0x1299e);
    0x000126cc ldr.w fp, [r7, r3]                                |     fp = *((r7 + r3));
    0x000126d0 ldr r3, [pc, 0x2cc]                               |     r3 = *(0x129a0);
    0x000126d2 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x000126d4 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x000126d6 ldr r3, [pc, 0x2cc]                               |     r3 = *(0x129a6);
    0x000126d8 ldr.w sb, [r7, r3]                                |     sb = *((r7 + r3));
    0x000126dc ldr r3, [pc, 0x2c8]                               |     
    0x000126de ldr r7, [pc, 0x2cc]                               |     
    0x000126e0 add r3, pc                                        |     r3 = 0x2508c;
    0x000126e2 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000126e4 add r3, sp, 0x38                                  |     r3 += arg_38h;
    0x000126e6 add r7, pc                                        |     r7 = 0x25098;
    0x000126e8 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x000126ea add r3, sp, 0x34                                  |     r3 += arg_34h;
    0x000126ec str r7, [sp, 0xc]                                 |     var_ch = r7;
    0x000126ee str r3, [sp, 0x20]                                |     var_20h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x000126f0 bl 0x36004                                        |         r0 = ZBX_IS_RUNNING ();
                                                                 |         if (r0 == 0) {
    0x000126f4 cbz r0, 0x12746                                   |             goto label_14;
                                                                 |         }
                                                                 | label_1:
    0x000126f6 ldr r3, [r6]                                      |         r3 = *(r6);
    0x000126f8 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x000126fa beq 0x1278e                                       |             goto label_15;
                                                                 |         }
                                                                 | label_3:
    0x000126fc ldr r1, [r4]                                      |         r1 = *(r4);
    0x000126fe ldr r0, [sp, 0xc]                                 |         r0 = var_ch;
    0x00012700 bl 0x4100c                                        |         zbx_setproctitle ();
    0x00012704 ldr.w r1, [r8]                                    |         r1 = *(r8);
    0x00012708 mov r0, r5                                        |         r0 = r5;
    0x0001270a bl 0x3713c                                        |         r0 = zbx_tcp_accept ();
    0x0001270e mov sl, r0                                        |         sl = r0;
    0x00012710 bl 0x3ffc0                                        |         zbx_time ();
    0x00012714 bl 0x43000                                        |         zbx_update_env ();
    0x00012718 cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x0001271c beq 0x12762                                       |             goto label_16;
                                                                 |         }
                                                                 | label_4:
    0x0001271e blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x00012722 ldr r3, [r0]                                      |         r3 = *(r0);
    0x00012724 cmp r3, 4                                         |         
    0x00012726 beq 0x126f0                                       |         
                                                                 |     } while (r3 == 4);
    0x00012728 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x0001272c cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x0001272e bgt 0x1277c                                       |         goto label_17;
                                                                 |     }
                                                                 | label_2:
    0x00012730 bl 0x36004                                        |     r0 = ZBX_IS_RUNNING ();
    0x00012734 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00012736 beq 0x126f0                                       |         goto label_0;
                                                                 |     }
    0x00012738 movs r0, 1                                        |     r0 = 1;
    0x0001273a blx 0xe1dc                                        |     fcn_0000e1dc ();
    0x0001273e bl 0x36004                                        |     r0 = ZBX_IS_RUNNING ();
    0x00012742 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00012744 bne 0x126f6                                       |         goto label_1;
                                                                 |     }
                                                                 | label_14:
    0x00012746 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00012748 ldrb r0, [r3]                                     |     r0 = *(r3);
    0x0001274a bl 0x45020                                        |     r0 = get_process_type_string ();
    0x0001274e mov r1, r0                                        |     r1 = r0;
    0x00012750 ldr r0, [pc, 0x25c]                               |     
    0x00012752 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00012754 add r0, pc                                        |     r0 = 0x25108;
    0x00012756 bl 0x4100c                                        |     zbx_setproctitle ();
                                                                 |     do {
    0x0001275a movs r0, 0x3c                                     |         r0 = 0x3c;
    0x0001275c blx 0xe1dc                                        |         fcn_0000e1dc ();
    0x00012760 b 0x1275a                                         |         
                                                                 |     } while (1);
                                                                 | label_16:
    0x00012762 ldr r0, [pc, 0x250]                               |     
    0x00012764 ldr r1, [r4]                                      |     r1 = *(r4);
    0x00012766 add r0, pc                                        |     r0 = 0x25120;
    0x00012768 bl 0x4100c                                        |     zbx_setproctitle ();
    0x0001276c ldr.w r1, [fp]                                    |     r1 = *(fp);
    0x00012770 mov r0, r5                                        |     r0 = r5;
    0x00012772 ldrb r3, [r1]                                     |     r3 = *(r1);
    0x00012774 cbnz r3, 0x127a6                                  |     
                                                                 |     while (1) {
                                                                 | label_6:
    0x00012776 bl 0x373c8                                        |         zbx_tcp_unaccept ();
    0x0001277a b 0x126f0                                         |         goto label_0;
                                                                 | label_17:
    0x0001277c bl 0x36860                                        |         zbx_socket_strerror ();
    0x00012780 ldr r1, [pc, 0x234]                               |         
    0x00012782 mov r2, r0                                        |         r2 = r0;
    0x00012784 movs r0, 3                                        |         r0 = 3;
    0x00012786 add r1, pc                                        |         r1 = 0x25142;
    0x00012788 bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x0001278c b 0x12730                                         |         goto label_2;
                                                                 | label_15:
    0x0001278e ldr r1, [r4]                                      |         r1 = *(r4);
    0x00012790 ldr r0, [sp, 0x14]                                |         r0 = var_14h;
    0x00012792 bl 0x4100c                                        |         zbx_setproctitle ();
    0x00012796 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00012798 ldr r1, [r4]                                      |         r1 = *(r4);
    0x0001279a ldrb r0, [r3]                                     |         r0 = *(r3);
    0x0001279c bl 0x131e8                                        |         reload_user_parameters ();
    0x000127a0 movs r3, 0                                        |         r3 = 0;
    0x000127a2 str r3, [r6]                                      |         *(r6) = r3;
    0x000127a4 b 0x126fc                                         |         goto label_3;
    0x000127a6 bl 0x37f30                                        |         r0 = zbx_tcp_check_allowed_peers ();
                                                                 |         if (r0 != 0) {
    0x000127aa cbz r0, 0x127c6                                   |             
    0x000127ac mov r0, r5                                        |             r0 = r5;
    0x000127ae bl 0x373c8                                        |             zbx_tcp_unaccept ();
    0x000127b2 b 0x1271e                                         |             goto label_4;
                                                                 | label_13:
    0x000127b4 ldr r3, [pc, 0x204]                               |             
    0x000127b6 movs r2, 0x75                                     |             r2 = 0x75;
    0x000127b8 ldr r1, [pc, 0x204]                               |             
    0x000127ba ldr r0, [pc, 0x208]                               |             
    0x000127bc add r3, pc                                        |             r3 = 0x2517c;
    0x000127be add r1, pc                                        |             r1 = 0x25182;
    0x000127c0 add r0, pc                                        |             r0 = 0x2518a;
    0x000127c2 blx 0xdde4                                        |             shmdt ();
                                                                 |         }
    0x000127c6 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x000127c8 mov r2, r0                                        |         r2 = r0;
    0x000127ca mov r0, r5                                        |         r0 = r5;
    0x000127cc ldr r1, [r3]                                      |         r1 = *(r3);
    0x000127ce bl 0x3760c                                        |         zbx_tcp_recv_ext ();
    0x000127d2 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 == 1) {
    0x000127d4 beq 0x128a0                                       |             goto label_18;
                                                                 |         }
    0x000127d6 ldr r1, [pc, 0x1f0]                               |         
    0x000127d8 ldr r0, [r5, 0xc]                                 |         r0 = *((r5 + 0xc));
    0x000127da add r1, pc                                        |         r1 = 0x251a8;
    0x000127dc bl 0x444f4                                        |         zbx_rtrim ();
    0x000127e0 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x000127e4 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x000127e6 bgt.w 0x128f6                                     |             goto label_19;
                                                                 |         }
                                                                 | label_8:
    0x000127ea ldr r7, [sp, 0x1c]                                |         r7 = var_1ch;
    0x000127ec mov r0, r7                                        |         r0 = r7;
    0x000127ee bl 0x1c298                                        |         init_result ();
    0x000127f0 ldc2l p8, c6, [r3, -0x3a0]                        |         __asm ("ldc2l p8, c6, [r3, -0x3a0]");
    0x000127f4 mov r2, r7                                        |         r2 = r7;
    0x000127f6 movs r1, 4                                        |         r1 = 4;
    0x000127f8 bl 0x1c638                                        |         r0 = process ();
    0x000127fc cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000127fe beq 0x128bc                                       |             goto label_20;
                                                                 |         }
    0x00012800 ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x00012802 movs r1, 0x20                                     |         r1 = 0x20;
    0x00012804 bl 0x1ced8                                        |         get_result_value_by_type ();
    0x00012808 str r0, [sp, 0x24]                                |         *(arg_0h) = r0;
    0x0001280a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001280c beq.w 0x12912                                     |             goto label_21;
                                                                 |         }
    0x00012810 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00012814 movs r2, 0                                        |         r2 = 0;
    0x00012816 ldr r1, [sp, 0x20]                                |         r1 = var_20h;
    0x00012818 cmp r3, 3                                         |         
    0x0001281a str r2, [r1]                                      |         *(r1) = r2;
                                                                 |         if (r3 > 3) {
    0x0001281c bgt 0x12904                                       |             goto label_22;
                                                                 |         }
                                                                 | label_9:
    0x0001281e ldr.w sl, [pc, 0x1ac]                             |         sl = *(0x000129cc);
    0x00012822 add sl, pc                                        |         sl += pc;
    0x00012824 ldr.w r2, [sl, 4]                                 |         r2 = *((sl + 4));
    0x00012828 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x0001282a beq.w 0x1294e                                     |             goto label_23;
                                                                 |         }
                                                                 | label_10:
    0x0001282e movs r3, 0x10                                     |         r3 = 0x10;
    0x00012830 ldr.w sl, [pc, 0x19c]                             |         sl = *(0x000129d0);
    0x00012834 ldr r7, [sp, 0x20]                                |         r7 = var_20h;
    0x00012836 str r3, [sp]                                      |         *(sp) = r3;
    0x00012838 ldr r1, [pc, 0x198]                               |         
    0x0001283a add sl, pc                                        |         sl += pc;
    0x0001283c ldr r3, [pc, 0x198]                               |         
    0x0001283e add.w r0, sl, 4                                   |         r0 = sl + 4;
    0x00012842 mov r2, r7                                        |         r2 = r7;
    0x00012844 add r1, pc                                        |         r1 = 0x2521c;
    0x00012846 add r3, pc                                        |         
    0x00012848 strd r0, r1, [sp, 0x28]                           |         __asm ("strd r0, r1, [sp, 0x28]");
    0x0001284c bl 0x440f8                                        |         zbx_strncpy_alloc ();
    0x00012850 ldr r2, [r7]                                      |         r2 = *(r7);
    0x00012852 ldr r3, [sp, 0x24]                                |         r3 = *(arg_0h);
    0x00012854 ldrd r0, r1, [sp, 0x28]                           |         __asm ("ldrd r0, r1, [arg_28h]");
    0x00012858 adds r2, 1                                        |         r2++;
    0x0001285a ldr r3, [r3]                                      |         
    0x0001285c str r2, [r7]                                      |         *(r7) = r2;
    0x0001285e mov r2, r7                                        |         r2 = r7;
    0x00012860 bl 0x44240                                        |         zbx_strcpy_alloc ()
    0x00012864 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00012866 mov r0, r5                                        |         r0 = r5;
    0x00012868 ldr.w r1, [sl, 4]                                 |         r1 = *((sl + 4));
    0x0001286c ldr r3, [r3]                                      |         r3 = *(0x25222);
    0x0001286e str r3, [sp, 4]                                   |         var_4h = r3;
    0x00012870 movs r3, 1                                        |         r3 = 1;
    0x00012872 str r3, [sp]                                      |         *(sp) = r3;
    0x00012874 movs r3, 0                                        |         r3 = 0;
    0x00012876 ldr r2, [r7]                                      |         r2 = *(r7);
    0x00012878 bl 0x36a4c                                        |         r0 = zbx_tcp_send_ext ();
    0x0001287c mov sl, r0                                        |         sl = r0;
                                                                 | label_7:
    0x0001287e ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x00012880 bl 0x1c2c0                                        |         free_result ();
    0x00012884 cmp.w sl, -1                                      |         
                                                                 |         if (sl == -1) {
    0x00012888 beq 0x128a0                                       |             goto label_18;
                                                                 |         }
                                                                 | label_5:
    0x0001288a mov r0, r5                                        |         r0 = r5;
    0x0001288c b 0x12776                                         |         
                                                                 |     }
                                                                 | label_12:
    0x0001288e ldr r3, [pc, 0x14c]                               |     
    0x00012890 movs r2, 0x74                                     |     r2 = 0x74;
    0x00012892 ldr r1, [pc, 0x14c]                               |     
    0x00012894 ldr r0, [pc, 0x14c]                               |     
    0x00012896 add r3, pc                                        |     r3 = 0x25278;
    0x00012898 add r1, pc                                        |     r1 = 0x2527e;
    0x0001289a add r0, pc                                        |     r0 = 0x25282;
    0x0001289c blx 0xdde4                                        |     shmdt ();
                                                                 | label_18:
    0x000128a0 ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x000128a4 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x000128a6 ble 0x1288a                                       |         goto label_5;
                                                                 |     }
    0x000128a8 bl 0x36860                                        |     zbx_socket_strerror ();
    0x000128ac ldr r1, [pc, 0x138]                               |     
    0x000128ae mov r2, r0                                        |     r2 = r0;
    0x000128b0 movs r0, 4                                        |     r0 = 4;
    0x000128b2 add r1, pc                                        |     r1 = 0x2529e;
    0x000128b4 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000128b8 mov r0, r5                                        |     r0 = r5;
    0x000128ba b 0x12776                                         |     goto label_6;
                                                                 | label_20:
    0x000128bc movs r1, 8                                        |     r1 = 8;
    0x000128be mov r0, r7                                        |     r0 = r7;
    0x000128c0 bl 0x1ced8                                        |     r0 = get_result_value_by_type ();
    0x000128c4 mov sl, r0                                        |     sl = r0;
    0x000128c6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000128c8 beq 0x12944                                       |         goto label_24;
                                                                 |     }
    0x000128ca ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x000128ce cmp r3, 3                                         |     
    0x000128d0 bgt 0x12936                                       |     
                                                                 |     while (1) {
    0x000128d2 ldr.w sl, [sl]                                    |         sl = *(sl);
    0x000128d6 mov r0, sl                                        |         r0 = sl;
    0x000128d8 blx 0xdf68                                        |         fcn_0000df68 ();
    0x000128dc ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x000128de mov r2, r0                                        |         r2 = r0;
    0x000128e0 mov r1, sl                                        |         r1 = sl;
    0x000128e2 mov r0, r5                                        |         r0 = r5;
    0x000128e4 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000128e6 str r3, [sp, 4]                                   |         var_4h = r3;
    0x000128e8 movs r3, 1                                        |         r3 = 1;
    0x000128ea str r3, [sp]                                      |         *(sp) = r3;
    0x000128ec movs r3, 0                                        |         r3 = 0;
    0x000128ee bl 0x36a4c                                        |         r0 = zbx_tcp_send_ext ();
    0x000128f2 mov sl, r0                                        |         sl = r0;
    0x000128f4 b 0x1287e                                         |         goto label_7;
                                                                 | label_19:
    0x000128f6 ldr r1, [pc, 0xf4]                                |         
    0x000128f8 movs r0, 4                                        |         r0 = 4;
    0x000128fa ldr r2, [r5, 0xc]                                 |         r2 = *((r5 + 0xc));
    0x000128fc add r1, pc                                        |         r1 = 0x252ee;
    0x000128fe bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x00012902 b 0x127ea                                         |         goto label_8;
                                                                 | label_22:
    0x00012904 ldr r1, [pc, 0xe8]                                |         
    0x00012906 ldr r2, [r0]                                      |         r2 = *(r0);
    0x00012908 movs r0, 4                                        |         r0 = 4;
    0x0001290a add r1, pc                                        |         r1 = 0x252fe;
    0x0001290c bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x00012910 b 0x1281e                                         |         goto label_9;
                                                                 | label_21:
    0x00012912 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00012916 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00012918 bgt 0x12964                                       |             goto label_25;
                                                                 |         }
                                                                 | label_11:
    0x0001291a ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x0001291c movs r2, 0x10                                     |         r2 = 0x10;
    0x0001291e ldr r1, [pc, 0xd4]                                |         
    0x00012920 mov r0, r5                                        |         r0 = r5;
    0x00012922 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00012924 add r1, pc                                        |         r1 = 0x2531e;
    0x00012926 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00012928 movs r3, 1                                        |         r3 = 1;
    0x0001292a str r3, [sp]                                      |         *(sp) = r3;
    0x0001292c movs r3, 0                                        |         r3 = 0;
    0x0001292e bl 0x36a4c                                        |         r0 = zbx_tcp_send_ext ();
    0x00012932 mov sl, r0                                        |         sl = r0;
    0x00012934 b 0x1287e                                         |         goto label_7;
    0x00012936 ldr r1, [pc, 0xc0]                                |         
    0x00012938 ldr r2, [r0]                                      |         r2 = *(r0);
    0x0001293a movs r0, 4                                        |         r0 = 4;
    0x0001293c add r1, pc                                        |         r1 = 0x2533a;
    0x0001293e bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x00012942 b 0x128d2                                         |         
                                                                 |     }
                                                                 | label_24:
    0x00012944 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x00012946 bl 0x1c2c0                                        |     free_result ();
    0x0001294a mov r0, r5                                        |     r0 = r5;
    0x0001294c b 0x12776                                         |     goto label_6;
                                                                 | label_23:
    0x0001294e ldr r3, [pc, 0xac]                                |     
    0x00012950 movs r1, 0x4c                                     |     r1 = 0x4c;
    0x00012952 ldr r0, [pc, 0xac]                                |     
    0x00012954 add r3, pc                                        |     
    0x00012956 ldr r3, [r3]                                      |     r3 = *(0x25356);
    0x00012958 add r0, pc                                        |     r0 = 0x2535e;
    0x0001295a bl 0x40dd8                                        |     zbx_malloc2 ();
    0x0001295e str.w r0, [sl, 4]                                 |     __asm ("str.w r0, [sl, 4]");
    0x00012962 b 0x1282e                                         |     goto label_10;
                                                                 | label_25:
    0x00012964 ldr r1, [pc, 0x9c]                                |     
    0x00012966 movs r0, 4                                        |     r0 = 4;
    0x00012968 add r1, pc                                        |     r1 = 0x25370;
    0x0001296a bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0001296e b 0x1291a                                         |     goto label_11;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x16ba4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.process_log_check ()                             | void process_log_check (int16_t arg_0h_2, int16_t arg_8h_2, int16_t arg_ch, int16_t arg_10h, int16_t arg_18h, int16_t arg_1ch, int16_t arg_1dh_2, int16_t arg_20h, int16_t arg_2ch, int16_t arg_bp_48h, int16_t arg_0h, int16_t arg_8h, int16_t arg_1dh, int16_t arg_bp_40h, int16_t arg_30h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg_78h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_9ch, int16_t arg_b0h, int16_t arg_b4h, int16_t arg_b8h, int16_t arg_c0h, int16_t arg_c4h, int16_t arg_c8h, int16_t arg_cch, int16_t arg_d0h, int16_t arg_d8h, int16_t arg_e0h, int16_t arg_e4h, int16_t arg_ech, int16_t arg_100h, int16_t arg_104h, int16_t arg_108h, int16_t arg_114h, int16_t arg_118h, int16_t arg_11ch, int16_t arg_124h, int16_t arg_128h, int16_t arg_12ch, int16_t arg_130h, int16_t arg_134h, int16_t arg_138h, int16_t arg_13ch, int16_t arg_140h, int16_t arg_144h, int16_t arg_148h, int16_t arg_14ch, int16_t arg_150h, int16_t arg_158h, int16_t arg_178h, int16_t arg_264h, int16_t arg_a64h, int16_t arg_ac0h, int16_t arg_ac4h, int16_t arg_ac8h, int16_t arg_acch, int16_t arg_ad0h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_10h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00016ba4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00016ba8 mov fp, r3                                        |     
    0x00016baa vpush {d8, d9, d10, d11, d12, d13}                |     __asm ("vpush {d8, d9, d10, d11, d12, d13}");
    0x00016bae subw sp, sp, 0xa6c                                |     __asm ("subw sp, sp, 0xa6c");
    0x00016bb2 ldr.w r3, [sp, 0xac0]                             |     r3 = *(arg_ac0h);
    0x00016bb6 str r2, [sp, 0x68]                                |     *(arg_68h) = r2;
    0x00016bb8 ldr r2, [pc, 0x2e8]                               |     
    0x00016bba str r3, [sp, 0xc4]                                |     *(arg_c4h) = r3;
    0x00016bbc ldr r3, [pc, 0x2e8]                               |     r3 = *(0x16ea8);
    0x00016bbe add r2, pc                                        |     r2 = 0x2da66;
    0x00016bc0 str r0, [sp, 0xb0]                                |     *(arg_b0h) = r0;
    0x00016bc2 str r1, [sp, 0xc0]                                |     *(arg_c0h) = r1;
    0x00016bc4 ldr r3, [r2, r3]                                  |     
    0x00016bc6 add r2, sp, 0x130                                 |     r2 += arg_130h;
    0x00016bc8 ldrb.w r5, [fp, 0x1d]                             |     r5 = *(arg_1dh);
    0x00016bcc ldr r3, [r3]                                      |     r3 = *(0x2da66);
    0x00016bce str.w r3, [sp, 0xa64]                             |     __asm ("str.w r3, [arg_a64h]");
    0x00016bd2 mov.w r3, 0                                       |     r3 = 0;
    0x00016bd6 add r3, sp, 0x158                                 |     r3 += arg_158h;
    0x00016bd8 mov r4, r3                                        |     r4 = r3;
    0x00016bda str r3, [sp, 0x48]                                |     *(arg_48h) = r3;
    0x00016bdc movs r3, 0                                        |     r3 = 0;
    0x00016bde ubfx sl, r5, 5, 1                                 |     sl = (r5 >> 5) & ((1 << 1) - 1);
    0x00016be2 str r3, [sp, 0x130]                               |     *(arg_130h) = r3;
    0x00016be4 mov r0, r4                                        |     r0 = r4;
    0x00016be6 str r3, [sp, 0x134]                               |     *(arg_134h) = r3;
    0x00016be8 ldr.w r3, [sp, 0xac4]                             |     r3 = *(arg_ac4h);
    0x00016bec str r2, [sp, 0xe0]                                |     *(arg_e0h) = r2;
    0x00016bee add r2, sp, 0x134                                 |     r2 += arg_134h;
    0x00016bf0 str r2, [sp, 0xe4]                                |     *(arg_e4h) = r2;
    0x00016bf2 str r3, [sp, 0xc8]                                |     *(arg_c8h) = r3;
    0x00016bf4 ldr.w r3, [sp, 0xac8]                             |     r3 = *(arg_ac8h);
    0x00016bf8 str r3, [sp, 0xcc]                                |     *(arg_cch) = r3;
    0x00016bfa ldr.w r3, [sp, 0xacc]                             |     r3 = *(arg_acch);
    0x00016bfe str r3, [sp, 0x7c]                                |     *(arg_7ch) = r3;
    0x00016c00 ldr.w r3, [sp, 0xad0]                             |     r3 = *(arg_ad0h);
    0x00016c04 str r3, [sp, 0x60]                                |     *(arg_60h) = r3;
    0x00016c06 and r3, r5, 0x20                                  |     r3 = r5 & 0x20;
    0x00016c0a ldr r5, [pc, 0x2a0]                               |     
    0x00016c0c str r3, [sp, 0x74]                                |     *(arg_74h) = r3;
    0x00016c0e bl 0x1c350                                        |     init_request ();
    0x00016c12 ldr.w r0, [fp]                                    |     r0 = *(fp);
    0x00016c16 mov r1, r4                                        |     r1 = r4;
    0x00016c18 bl 0x1c384                                        |     parse_item_key ();
    0x00016c1c add r5, pc                                        |     r5 = 0x2dace;
    0x00016c1e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00016c20 bne.w 0x18db4                                     |         goto label_59;
                                                                 |     }
    0x00016c24 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016c26 ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
    0x00016c2a ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00016c2c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00016c2e beq.w 0x19116                                     |         goto label_60;
                                                                 |     }
    0x00016c32 tst.w r1, 0x20                                    |     
    0x00016c36 ite eq                                            |     
                                                                 |     if ((r1 & 0x20) != 0) {
    0x00016c38 moveq r3, 9                                       |         r3 = 9;
                                                                 |     }
                                                                 |     if ((r1 & 0x20) == 0) {
    0x00016c3a movne r3, 8                                       |         r3 = 8;
                                                                 |     }
    0x00016c3c cmp r4, r3                                        |     
                                                                 |     if (r4 > r3) {
    0x00016c3e bgt.w 0x19130                                     |         goto label_61;
                                                                 |     }
    0x00016c42 cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x00016c44 ble.w 0x18aa6                                     |         goto label_62;
                                                                 |     }
    0x00016c48 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016c4a ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00016c4c ldr r6, [r3]                                      |     r6 = *(r3);
    0x00016c4e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00016c50 beq.w 0x18aa6                                     |         goto label_62;
                                                                 |     }
    0x00016c54 ldrb r2, [r6]                                     |     r2 = *(r6);
    0x00016c56 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00016c58 beq.w 0x18aa6                                     |         goto label_62;
                                                                 |     }
    0x00016c5c cmp r4, 1                                         |     
                                                                 |     if (r4 == 1) {
    0x00016c5e beq.w 0x16dc8                                     |         goto label_63;
                                                                 |     }
    0x00016c62 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00016c64 str r3, [sp, 0x64]                                |     *(arg_bp_40h) = r3;
    0x00016c66 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016c68 beq.w 0x16e1c                                     |         goto label_64;
                                                                 |     }
    0x00016c6c ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00016c6e cmp r3, 0x40                                      |     
                                                                 |     if (r3 == 0x40) {
    0x00016c70 beq.w 0x17230                                     |         goto label_65;
                                                                 |     }
                                                                 | label_11:
    0x00016c74 cmp r4, 2                                         |     
                                                                 |     if (r4 <= 2) {
    0x00016c76 ble.w 0x16e28                                     |         goto label_66;
                                                                 |     }
                                                                 | label_2:
    0x00016c7a ldr r7, [sp, 0x48]                                |     r7 = *(arg_48h);
    0x00016c7c ldr r3, [r7, 8]                                   |     r3 = *((r7 + 8));
    0x00016c7e ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00016c80 str r3, [sp, 0x9c]                                |     *(arg_9ch) = r3;
    0x00016c82 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016c84 beq.w 0x16e14                                     |         goto label_67;
                                                                 |     }
    0x00016c88 ldr r0, [pc, 0x224]                               |     
    0x00016c8a movs r2, 0                                        |     r2 = 0;
    0x00016c8c movw r1, 0xf31                                    |     r1 = 0xf31;
    0x00016c90 add r0, pc                                        |     r0 = 0x2db44;
    0x00016c92 bl 0x40ed8                                        |     r0 = zbx_strdup2 ();
    0x00016c96 mov r4, r0                                        |     r4 = r0;
    0x00016c98 str r0, [sp, 0x44]                                |     *(arg_44h) = r0;
    0x00016c9a bl 0x4585c                                        |     zbx_strupper ();
    0x00016c9e str r4, [sp, 0x9c]                                |     *(arg_9ch) = r4;
    0x00016ca0 ldr r4, [r7, 4]                                   |     r4 = *((r7 + 4));
                                                                 | label_1:
    0x00016ca2 cmp r4, 3                                         |     
                                                                 |     if (r4 <= 3) {
    0x00016ca4 ble.w 0x16e32                                     |         goto label_68;
                                                                 |     }
    0x00016ca8 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016caa ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00016cac ldr r0, [r3, 0xc]                                 |     r0 = *((r3 + 0xc));
    0x00016cae cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016cb0 beq.w 0x16dfa                                     |         goto label_69;
                                                                 |     }
    0x00016cb4 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00016cb6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016cb8 beq.w 0x16dfa                                     |         goto label_69;
                                                                 |     }
    0x00016cbc movs r2, 0xa                                      |     r2 = 0xa;
    0x00016cbe movs r1, 0                                        |     r1 = 0;
    0x00016cc0 blx 0xdfe8                                        |     r0 = waitpid ();
    0x00016cc4 subs.w r8, r0, 0                                  |     r8 = r0 - 0;
                                                                 |     if (r8 <= r0) {
    0x00016cc8 ble.w 0x19076                                     |         goto label_70;
                                                                 |     }
    0x00016ccc ldr r2, [sp, 0x74]                                |     r2 = *(arg_74h);
    0x00016cce cmp.w r8, 0x3e8                                   |     
    0x00016cd2 ite le                                            |     
                                                                 |     if (r8 > 0x3e8) {
    0x00016cd4 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r8 <= 0x3e8) {
    0x00016cd6 movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00016cd8 cmp r2, 0                                         |     
    0x00016cda it ne                                             |     
                                                                 |     if (r2 == 0) {
    0x00016cdc movne r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00016cde cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016ce0 bne.w 0x19076                                     |         goto label_70;
                                                                 |     }
    0x00016ce4 movw r2, 0x2710                                   |     r2 = 0x2710;
    0x00016ce8 cmp r8, r2                                        |     
    0x00016cea ite le                                            |     
                                                                 |     if (r8 > r2) {
    0x00016cec movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r8 <= r2) {
    0x00016cee andgt r3, sl, 1                                   |         r3 = sl & 1;
                                                                 |     }
    0x00016cf2 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016cf4 bne.w 0x19076                                     |         goto label_70;
                                                                 |     }
    0x00016cf8 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016cfa ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
                                                                 | label_0:
    0x00016cfc cmp r4, 4                                         |     
                                                                 |     if (r4 <= 4) {
    0x00016cfe ble.w 0x16e42                                     |         goto label_15;
                                                                 |     }
    0x00016d02 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00016d04 ldr r7, [r3, 8]                                   |     r7 = *((r3 + 8));
    0x00016d06 ldr.w sb, [r7, 0x10]                              |     sb = *((r7 + 0x10));
    0x00016d0a cmp.w sb, 0                                       |     
    0x00016d0c lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 != r0) {
    0x00016d0e beq 0x16d1a                                       |         
    0x00016d10 ldrb.w r3, [sb]                                   |         r3 = *(sb);
    0x00016d14 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00016d16 bne.w 0x16e62                                     |             goto label_71;
                                                                 |         }
                                                                 |     }
                                                                 | label_5:
    0x00016d1a movs r3, 0                                        |     r3 = 0;
    0x00016d1c strb.w r3, [fp, 0x1c]                             |     *(arg_1ch) = r3;
                                                                 | label_6:
    0x00016d20 ldr r3, [sp, 0x74]                                |     r3 = *(arg_74h);
    0x00016d22 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016d24 bne.w 0x16e56                                     |         goto label_72;
                                                                 |     }
    0x00016d28 cmp r4, 5                                         |     
                                                                 |     if (r4 == 5) {
    0x00016d2a beq.w 0x186fe                                     |         goto label_73;
                                                                 |     }
    0x00016d2e ldr r3, [r7, 0x14]                                |     r3 = *((r7 + 0x14));
    0x00016d30 mov.w sb, 6                                       |     sb = 6;
    0x00016d34 str r3, [sp, 0x100]                               |     *(arg_100h) = r3;
    0x00016d36 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016d38 beq.w 0x18200                                     |         goto label_74;
                                                                 |     }
                                                                 | label_4:
    0x00016d3c cmp sb, r4                                        |     
                                                                 |     if (sb >= r4) {
    0x00016d3e bge.w 0x1937a                                     |         goto label_75;
                                                                 |     }
    0x00016d42 ldr.w r0, [r7, sb, lsl 2]                         |     offset_0 = sb << 2;
                                                                 |     r0 = *((r7 + offset_0));
                                                                 |     if (r0 != 0) {
    0x00016d46 cbz r0, 0x16d50                                   |         
    0x00016d48 ldrb r3, [r0]                                     |         r3 = *(r0);
    0x00016d4a cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00016d4c bne.w 0x171d0                                     |             goto label_76;
                                                                 |         }
                                                                 |     }
    0x00016d50 vldr s20, [pc, 0x14c]                             |     __asm ("vldr s20, [0x00016ea4]");
    0x00016d54 ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
                                                                 |     do {
                                                                 | label_8:
    0x00016d58 tst.w r1, 0x20                                    |         
    0x00016d5c mov r3, r1                                        |         r3 = r1;
    0x00016d5e ite eq                                            |         
                                                                 |         if ((r1 & 0x20) != 0) {
    0x00016d60 moveq r3, 7                                       |             r3 = 7;
                                                                 |         }
                                                                 |         if ((r1 & 0x20) == 0) {
    0x00016d62 movne r3, 6                                       |             r3 = 6;
                                                                 |         }
    0x00016d64 cmp r3, r4                                        |         
    0x00016d66 and r2, r1, 8                                     |         r2 = r1 & 8;
    0x00016d6a str r1, [sp, 0xd0]                                |         *(arg_d0h) = r1;
                                                                 |         if (r3 >= r4) {
    0x00016d6c bge.w 0x16ee8                                     |             goto label_77;
                                                                 |         }
    0x00016d70 ldr r1, [sp, 0x48]                                |         r1 = *(arg_48h);
    0x00016d72 ldr.w sb, [r1, 8]                                 |         sb = *((r1 + 8));
    0x00016d76 ldr.w r7, [sb, r3, lsl 2]                         |         offset_1 = r3 << 2;
                                                                 |         r7 = *((sb + offset_1));
    0x00016d7a cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00016d7c beq.w 0x16ee8                                     |             goto label_77;
                                                                 |         }
    0x00016d80 ldrb r1, [r7]                                     |         r1 = *(r7);
    0x00016d82 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00016d84 beq.w 0x16ee8                                     |             goto label_77;
                                                                 |         }
    0x00016d88 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00016d8a beq.w 0x171fe                                     |             goto label_78;
                                                                 |         }
    0x00016d8e ldr r1, [pc, 0x124]                               |         
    0x00016d90 mov r0, r7                                        |         r0 = r7;
    0x00016d92 add r1, pc                                        |         r1 = 0x2dc4c;
    0x00016d94 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00016d98 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00016d9a bne.w 0x18cb0                                     |             goto label_79;
                                                                 |         }
    0x00016d9e ldr r3, [sp, 0xb0]                                |         r3 = *(arg_b0h);
    0x00016da0 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00016da2 beq.w 0x16f8a                                     |             goto label_80;
                                                                 |         }
    0x00016da6 ldr r3, [sp, 0xb0]                                |         r3 = *(arg_b0h);
    0x00016da8 rsb.w sl, sl, 8                                   |         sl = 8 - sl;
    0x00016dac ldr.w r2, [fp]                                    |         r2 = *(fp);
    0x00016db0 cmp r4, sl                                        |         
    0x00016db2 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00016db4 str r2, [sp, 0x2c]                                |         *(arg_8h) = r2;
    0x00016db6 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00016db8 ldr r1, [r3]                                      |         r1 = *(r3);
    0x00016dba ldrh r7, [r3, 4]                                  |         r7 = *((r3 + 4));
    0x00016dbc itt gt                                            |         
                                                                 |         if (r4 <= sl) {
    0x00016dbe movgt r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if (r4 <= sl) {
    0x00016dc0 strgt r3, [sp, 0xec]                              |             *(arg_ech) = r3;
                                                                 |         }
                                                                 |         if (r4 > sl) {
    0x00016dc2 bgt.w 0x16f18                                     |             goto label_81;
                                                                 |         }
    0x00016dc6 b 0x16f8a                                         |         goto label_80;
                                                                 | label_63:
    0x00016dc8 ldr r3, [pc, 0xec]                                |         r3 = *(0x16eb8);
    0x00016dca ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x00016dcc ldr.w r8, [r3]                                    |         r8 = *(0x16eb8);
    0x00016dd0 ldr r3, [sp, 0x74]                                |         r3 = *(arg_74h);
    0x00016dd2 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00016dd4 beq 0x16e48                                       |             goto label_82;
                                                                 |         }
    0x00016dd6 add.w r8, r8, r8, lsl 2                           |         r8 += (r8 << 2);
    0x00016dda ldr r3, [pc, 0xe0]                                |         
    0x00016ddc str r0, [sp, 0x9c]                                |         *(arg_9ch) = r0;
    0x00016dde lsl.w r8, r8, 1                                   |         r8 <<= 1;
    0x00016de2 add r3, pc                                        |         r3 = 0x2dca4;
    0x00016de4 str r3, [sp, 0x64]                                |         *(arg_bp_40h) = r3;
    0x00016de6 str r3, [sp, 0x44]                                |         *(arg_44h) = r3;
                                                                 | label_3:
    0x00016de8 movs r3, 0                                        |         r3 = 0;
    0x00016dea strb.w r3, [fp, 0x1c]                             |         *(arg_1ch) = r3;
                                                                 | label_19:
    0x00016dee ldr r3, [pc, 0xd0]                                |         
    0x00016df0 add r3, pc                                        |         r3 = 0x2dcb6;
    0x00016df2 str r3, [sp, 0x100]                               |         *(arg_100h) = r3;
                                                                 | label_48:
    0x00016df4 vldr s20, [pc, 0xa8]                              |         __asm ("vldr s20, [0x00016ea4]");
    0x00016df8 b 0x16d58                                         |         
                                                                 |     } while (1);
                                                                 | label_69:
    0x00016dfa ldr r3, [pc, 0xbc]                                |     r3 = *(0x16eba);
    0x00016dfc ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00016dfe ldr.w r8, [r3]                                    |     r8 = *(0x16eba);
    0x00016e02 ldr r3, [sp, 0x74]                                |     r3 = *(arg_74h);
    0x00016e04 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00016e06 beq.w 0x16cfc                                     |         goto label_0;
                                                                 |     }
    0x00016e0a add.w r8, r8, r8, lsl 2                           |     r8 += (r8 << 2);
    0x00016e0e lsl.w r8, r8, 1                                   |     r8 <<= 1;
    0x00016e12 b 0x16cfc                                         |     goto label_0;
                                                                 | label_67:
    0x00016e14 ldr r3, [pc, 0xac]                                |     
    0x00016e16 add r3, pc                                        |     r3 = 0x2dcde;
    0x00016e18 str r3, [sp, 0x44]                                |     *(arg_44h) = r3;
    0x00016e1a b 0x16ca2                                         |     goto label_1;
                                                                 | label_64:
    0x00016e1c ldr r3, [pc, 0xa8]                                |     
    0x00016e1e cmp r4, 2                                         |     
    0x00016e20 add r3, pc                                        |     r3 = 0x2dcec;
    0x00016e22 str r3, [sp, 0x64]                                |     *(arg_bp_40h) = r3;
                                                                 |     if (r4 > 2) {
    0x00016e24 bgt.w 0x16c7a                                     |         goto label_2;
                                                                 |     }
                                                                 | label_66:
    0x00016e28 ldr r3, [pc, 0xa0]                                |     
    0x00016e2a add r3, pc                                        |     r3 = 0x2dcfa;
    0x00016e2c str r3, [sp, 0x44]                                |     *(arg_44h) = r3;
    0x00016e2e movs r3, 0                                        |     r3 = 0;
    0x00016e30 str r3, [sp, 0x9c]                                |     *(arg_9ch) = r3;
                                                                 | label_68:
    0x00016e32 ldr r3, [pc, 0x84]                                |     r3 = *(0x16eba);
    0x00016e34 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00016e36 ldr.w r8, [r3]                                    |     r8 = *(0x16eba);
    0x00016e3a ldr r3, [sp, 0x74]                                |     r3 = *(arg_74h);
    0x00016e3c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00016e3e bne.w 0x17382                                     |         goto label_83;
                                                                 |     }
                                                                 | label_15:
    0x00016e42 ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
    0x00016e46 b 0x16de8                                         |     goto label_3;
                                                                 | label_82:
    0x00016e48 ldr r3, [pc, 0x84]                                |     
    0x00016e4a ldr r2, [sp, 0x74]                                |     r2 = *(arg_74h);
    0x00016e4c add r3, pc                                        |     r3 = 0x2dd20;
    0x00016e4e str r3, [sp, 0x64]                                |     *(arg_bp_40h) = r3;
    0x00016e50 str r2, [sp, 0x9c]                                |     *(arg_9ch) = r2;
    0x00016e52 str r3, [sp, 0x44]                                |     *(arg_44h) = r3;
    0x00016e54 b 0x16de8                                         |     goto label_3;
                                                                 | label_72:
    0x00016e56 ldr r3, [pc, 0x7c]                                |     
    0x00016e58 mov.w sb, 5                                       |     sb = 5;
    0x00016e5c add r3, pc                                        |     r3 = 0x2dd36;
    0x00016e5e str r3, [sp, 0x100]                               |     *(arg_100h) = r3;
    0x00016e60 b 0x16d3c                                         |     goto label_4;
                                                                 | label_71:
    0x00016e62 ldr r1, [pc, 0x74]                                |     
    0x00016e64 mov r0, sb                                        |     r0 = sb;
    0x00016e66 add r1, pc                                        |     r1 = 0x2dd44;
    0x00016e68 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00016e6c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016e6e beq.w 0x16d1a                                     |         goto label_5;
                                                                 |     }
    0x00016e72 ldr r1, [pc, 0x68]                                |     
    0x00016e74 mov r0, sb                                        |     r0 = sb;
    0x00016e76 add r1, pc                                        |     r1 = 0x2dd58;
    0x00016e78 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00016e7c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00016e7e beq.w 0x16d20                                     |         goto label_6;
                                                                 |     }
    0x00016e82 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x00016e84 movw r1, 0xf42                                    |     r1 = 0xf42;
    0x00016e88 ldr r3, [pc, 0x54]                                |     
    0x00016e8a ldr r0, [pc, 0x58]                                |     
    0x00016e8c ldr r2, [r4]                                      |     r2 = *(r4);
    0x00016e8e add r3, pc                                        |     r3 = 0x2dd72;
    0x00016e90 add r0, pc                                        |     r0 = 0x2dd7a;
    0x00016e92 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00016e96 str r0, [r4]                                      |     *(r4) = r0;
                                                                 |     do {
                                                                 | label_35:
    0x00016e98 mov.w r3, -1                                      |         r3 = -1;
    0x00016e9c str r3, [sp, 0x38]                                |         *(arg_38h) = r3;
    0x00016e9e b 0x17320                                         |         void (*0x17320)() ();
                                                                 | label_77:
    0x00016ee8 ldr r3, [sp, 0xb0]                                |         r3 = *(arg_b0h);
    0x00016eea cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00016eec beq.w 0x17212                                     |             goto label_84;
                                                                 |         }
    0x00016ef0 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00016ef2 beq.w 0x17262                                     |             goto label_31;
                                                                 |         }
    0x00016ef6 movs r3, 0                                        |         r3 = 0;
    0x00016ef8 str r3, [sp, 0xec]                                |         *(arg_ech) = r3;
                                                                 | label_9:
    0x00016efa ldr r3, [sp, 0xb0]                                |         r3 = *(arg_b0h);
    0x00016efc rsb.w sl, sl, 8                                   |         sl = 8 - sl;
    0x00016f00 ldr.w r2, [fp]                                    |         r2 = *(fp);
    0x00016f04 cmp r4, sl                                        |         
    0x00016f06 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00016f08 str r2, [sp, 0x2c]                                |         *(arg_8h) = r2;
    0x00016f0a ldr r3, [r3]                                      |         r3 = *(r3);
    0x00016f0c ldr r1, [r3]                                      |         r1 = *(r3);
    0x00016f0e ldrh r7, [r3, 4]                                  |         r7 = *((r3 + 4));
                                                                 |         if (r4 <= sl) {
    0x00016f10 ble 0x16fa0                                       |             goto label_13;
                                                                 |         }
    0x00016f12 ldr r3, [sp, 0x48]                                |         r3 = *(arg_48h);
    0x00016f14 ldr.w sb, [r3, 8]                                 |         sb = *((r3 + 8));
                                                                 | label_81:
    0x00016f18 ldr.w r4, [sb, sl, lsl 2]                         |         offset_2 = sl << 2;
                                                                 |         r4 = *((sb + offset_2));
                                                                 |         if (r4 == 0) {
    0x00016f1c cbz r4, 0x16f7c                                   |             goto label_85;
                                                                 |         }
    0x00016f1e ldrb r3, [r4]                                     |         r3 = *(r4);
                                                                 |         if (r3 == 0) {
    0x00016f20 cbz r3, 0x16f7c                                   |             goto label_85;
                                                                 |         }
    0x00016f22 ldr.w r3, [fp, 0x48]                              |         r3 = *(arg_bp_48h);
                                                                 |         if (r3 != 0) {
    0x00016f26 cbnz r3, 0x16f7c                                  |             goto label_85;
                                                                 |         }
    0x00016f28 mov r0, r4                                        |         r0 = r4;
    0x00016f2a str r1, [sp, 0x38]                                |         *(arg_38h) = r1;
    0x00016f2c bl 0x45e80                                        |         is_ascii_string ();
    0x00016f30 ldr r1, [sp, 0x38]                                |         r1 = *(arg_38h);
    0x00016f32 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00016f34 bne.w 0x19502                                     |             goto label_86;
                                                                 |         }
    0x00016f38 mov r0, r4                                        |         r0 = r4;
    0x00016f3a ldr r3, [sp, 0x7c]                                |         r3 = *(arg_7ch);
    0x00016f3c mov r2, r7                                        |         r2 = r7;
    0x00016f3e bl 0x1a324                                        |         r0 = zbx_create_persistent_server_directory ();
    0x00016f42 mov r4, r0                                        |         r4 = r0;
    0x00016f44 cmp r0, 0                                         |         
    0x00016f46 beq 0x16e98                                       |         
                                                                 |     } while (r0 == 0);
    0x00016f48 ldr r1, [sp, 0x2c]                                |     r1 = *(arg_8h);
    0x00016f4a bl 0x1a504                                        |     zbx_make_persistent_file_name ();
    0x00016f4e str.w r0, [fp, 0x48]                              |     __asm ("str.w r0, [arg_bp_48h]");
    0x00016f52 mov r0, r4                                        |     r0 = r4;
    0x00016f54 blx 0xde30                                        |     fcn_0000de30 ();
    0x00016f58 ldr.w r3, [pc, 0xaac]                             |     
    0x00016f5c ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00016f5e ldr r3, [r3]                                      |     r3 = *(0x17a08);
    0x00016f60 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00016f62 ble 0x16f7c                                       |         
    0x00016f64 ldr.w r2, [pc, 0xaa4]                             |         r2 = *(0x00017a0c);
    0x00016f68 movs r0, 4                                        |         r0 = 4;
    0x00016f6a ldr.w r1, [pc, 0xaa4]                             |         r1 = *(0x00017a10);
    0x00016f6e ldr.w r3, [fp, 0x48]                              |         r3 = *(arg_bp_48h);
    0x00016f72 add r2, pc                                        |         r2 += pc;
    0x00016f74 adds r2, 0x28                                     |         r2 += 0x28;
    0x00016f76 add r1, pc                                        |         r1 += pc;
    0x00016f78 bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_85:
    0x00016f7c ldr r3, [sp, 0xec]                                |     r3 = *(arg_ech);
    0x00016f7e cmp r3, 1                                         |     
    0x00016f80 itt ne                                            |     
                                                                 |     if (r3 == 1) {
    0x00016f82 ldrbne r3, [fp, 0x1d]                             |         r3 = *(arg_1dh_2);
                                                                 |     }
                                                                 |     if (r3 != 1) {
    0x00016f86 str r3, [sp, 0xd0]                                |         *(arg_d0h) = r3;
                                                                 |     }
                                                                 |     if (r3 == 1) {
    0x00016f88 bne 0x16fa0                                       |         
                                                                 | label_80:
    0x00016f8a vcmp.f32 s20, 0                                   |         __asm ("vcmp.f32 s20, 0");
    0x00016f8e vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r3 != 1) {
    0x00016f92 bne.w 0x18d62                                     |             goto label_87;
                                                                 |         }
    0x00016f96 ldrb.w r3, [fp, 0x1d]                             |         r3 = *(arg_1dh_2);
    0x00016f9a str r3, [sp, 0xd0]                                |         *(arg_d0h) = r3;
    0x00016f9c movs r3, 1                                        |         r3 = 1;
    0x00016f9e str r3, [sp, 0xec]                                |         *(arg_ech) = r3;
                                                                 |     }
                                                                 | label_13:
    0x00016fa0 ldr.w r3, [fp, 0x10]                              |     r3 = *(arg_10h);
    0x00016fa4 ldr r2, [sp, 0x74]                                |     r2 = *(arg_74h);
    0x00016fa6 mul r3, r3, r8                                    |     r3 *= r8;
    0x00016faa str r3, [sp, 0x40]                                |     *(arg_40h) = r3;
    0x00016fac cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00016fae bne.w 0x17248                                     |         goto label_88;
                                                                 |     }
    0x00016fb2 add.w r3, r3, r3, lsl 2                           |     r3 += (r3 << 2);
    0x00016fb6 lsls r3, r3, 1                                    |     r3 <<= 1;
    0x00016fb8 str r3, [sp, 0x2c]                                |     *(arg_8h) = r3;
                                                                 | label_12:
    0x00016fba ldr.w r3, [fp, 0x48]                              |     r3 = *(arg_bp_48h);
    0x00016fbe str r3, [sp, 0x6c]                                |     *(arg_6ch) = r3;
    0x00016fc0 ldr.w r3, [fp, 0x2c]                              |     r3 = *(arg_2ch);
    0x00016fc4 str r3, [sp, 0x4c]                                |     *(arg_4ch) = r3;
    0x00016fc6 add.w r3, fp, 0x30                                |     r3 = fp + 0x30;
    0x00016fca str r3, [sp, 0x114]                               |     *(arg_114h) = r3;
    0x00016fcc ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x00016fce lsls r4, r3, 0x1e                                 |     r4 = r3 << 0x1e;
                                                                 |     if (r4 < r3) {
    0x00016fd0 bpl 0x16fde                                       |         
    0x00016fd2 ldr r3, [sp, 0x6c]                                |         r3 = *(arg_6ch);
                                                                 |         if (r3 == 0) {
    0x00016fd4 cbz r3, 0x16fde                                   |             goto label_89;
                                                                 |         }
    0x00016fd6 ldr r3, [sp, 0x4c]                                |         r3 = *(arg_4ch);
    0x00016fd8 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00016fda beq.w 0x1738c                                     |             goto label_90;
                                                                 |         }
                                                                 |     }
                                                                 | label_89:
    0x00016fde ldr.w r3, [pc, 0xa28]                             |     r3 = *(0x17a0a);
    0x00016fe2 ldr.w r4, [fp, 0x18]                              |     r4 = *(arg_18h);
    0x00016fe6 ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00016fe8 str r3, [sp, 0x70]                                |     *(arg_70h) = r3;
                                                                 | label_16:
    0x00016fea ldr.w r3, [pc, 0xa28]                             |     r3 = *(0x17a16);
    0x00016fee add r0, sp, 0x138                                 |     r0 += arg_138h;
    0x00016ff0 ldr r1, [r5, r3]                                  |     r1 = *((r5 + r3));
    0x00016ff2 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00016ff4 str r0, [sp, 0x50]                                |     *(arg_50h) = r0;
    0x00016ff6 add r0, sp, 0x13c                                 |     r0 += arg_13ch;
    0x00016ff8 str r0, [sp, 0x58]                                |     *(arg_58h) = r0;
    0x00016ffa add r0, sp, 0x140                                 |     r0 += arg_140h;
    0x00016ffc ldr r2, [r3]                                      |     r2 = *(0x17a16);
    0x00016ffe movs r3, 0                                        |     r3 = 0;
    0x00017000 str r3, [sp, 0x138]                               |     *(arg_138h) = r3;
    0x00017002 str r3, [sp, 0x13c]                               |     *(arg_13ch) = r3;
    0x00017004 str r3, [sp, 0x140]                               |     *(arg_140h) = r3;
    0x00017006 cmp r2, 3                                         |     
    0x00017008 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0001700a str r1, [sp, 0x11c]                               |     *(arg_11ch) = r1;
    0x0001700c str r0, [sp, 0xb4]                                |     *(arg_b4h) = r0;
    0x0001700e str r3, [sp, 0x108]                               |     *(arg_108h) = r3;
    0x00017010 ldr.w r3, [fp, 4]                                 |     r3 = *(arg_158h);
    0x00017014 str r3, [sp, 0xd8]                                |     *(arg_d8h) = r3;
    0x00017016 add.w r3, fp, 8                                   |     r3 += arg_8h_2;
    0x0001701a str r3, [sp, 0x118]                               |     *(arg_118h) = r3;
    0x0001701c add.w r3, fp, 0x18                                |     r3 += arg_18h;
    0x00017020 str r3, [sp, 0x104]                               |     *(arg_104h) = r3;
                                                                 |     if (r2 > 3) {
    0x00017022 bgt.w 0x1735a                                     |         goto label_91;
                                                                 |     }
    0x00017024 strh r2, [r3, 0xc]                                |     *((r3 + 0xc)) = r2;
                                                                 | label_14:
    0x00017026 movs r0, 0                                        |     r0 = 0;
    0x00017028 blx 0xe104                                        |     r0 = fcn_0000e104 ();
    0x0001702c cmp r0, r4                                        |     
    0x0001702e str r0, [sp, 0x38]                                |     *(arg_38h) = r0;
                                                                 |     if (r0 >= r4) {
    0x00017030 bge.w 0x17228                                     |         goto label_92;
                                                                 |     }
    0x00017034 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00017036 ldr r1, [sp, 0x38]                                |     r1 = *(arg_38h);
    0x00017038 ldr.w r2, [fp, 0x18]                              |     r2 = *(arg_18h);
    0x0001703c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001703e str.w r1, [fp, 0x18]                              |     __asm ("str.w r1, [arg_18h]");
    0x00017042 cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x00017044 bgt.w 0x1721a                                     |         goto label_93;
                                                                 |     }
                                                                 | label_10:
    0x00017048 ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x0001704a ands r3, r3, 4                                    |     r3 &= 4;
    0x0001704e str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
                                                                 |     if (r3 != r3) {
    0x00017050 bne.w 0x1726c                                     |         goto label_94;
                                                                 |     }
    0x00017054 ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x00017056 lsls r1, r3, 0x1c                                 |     r1 = r3 << 0x1c;
                                                                 |     if (r1 >= r3) {
    0x00017058 bpl.w 0x19398                                     |         goto label_95;
                                                                 |     }
    0x0001705c ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x0001705e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00017060 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00017062 ble 0x1707a                                       |         
    0x00017064 ldr.w r2, [pc, 0x9b0]                             |         
    0x00017068 mov r3, r6                                        |         r3 = r6;
    0x0001706a ldr.w r1, [pc, 0x9b0]                             |         
    0x0001706e movs r0, 4                                        |         r0 = 4;
    0x00017070 add r2, pc                                        |         r2 = 0x2ea8c;
    0x00017072 adds r2, 0x6c                                     |         r2 += 0x6c;
    0x00017074 add r1, pc                                        |         r1 = 0x2ea96;
    0x00017076 bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 |     }
    0x0001707a ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0001707c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001707e beq.w 0x19382                                     |         goto label_96;
                                                                 |     }
    0x00017082 movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00017084 mov r0, r6                                        |     r0 = r6;
    0x00017086 blx 0xdda8                                        |     statvfs64 ();
    0x0001708a ldr.w r1, [pc, 0x994]                             |     
    0x0001708e mov r4, r0                                        |     r4 = r0;
    0x00017090 add r1, pc                                        |     r1 = 0x2eab6;
    0x00017092 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017094 beq.w 0x185fe                                     |         goto label_97;
                                                                 |     }
    0x00017098 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x0001709a ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001709c cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0001709e bgt.w 0x185aa                                     |         goto label_98;
                                                                 |     }
    0x000170a2 mov r0, r6                                        |     r0 = r6;
    0x000170a4 blx 0xdf68                                        |     fcn_0000df68 ();
    0x000170a8 cmp r6, r4                                        |     
                                                                 |     if (r6 > r4) {
    0x000170aa bhi.w 0x192f4                                     |         goto label_99;
                                                                 |     }
    0x000170ae subs r3, r0, 1                                    |     r3 = r0 - 1;
    0x000170b0 add r3, r6                                        |     r3 += r6;
    0x000170b2 cmp r4, r3                                        |     
                                                                 |     if (r4 >= r3) {
    0x000170b4 bhs.w 0x192f4                                     |         goto label_99;
                                                                 |     }
                                                                 | label_17:
    0x000170b8 subs r4, r4, r6                                   |     r4 -= r6;
    0x000170ba movs r2, 0                                        |     r2 = 0;
    0x000170bc subs r5, r0, r4                                   |     r5 = r0 - r4;
    0x000170be ldr.w r0, [pc, 0x964]                             |     r0 = *(0x00017a24);
    0x000170c2 add.w r8, r4, 2                                   |     r8 = r4 + 2;
    0x000170c6 movs r1, 0x55                                     |     r1 = 0x55;
    0x000170c8 mov r3, r8                                        |     r3 = r8;
    0x000170ca add r0, pc                                        |     r0 += pc;
    0x000170cc mov r7, r0                                        |     r7 = r0;
    0x000170ce bl 0x40dd8                                        |     zbx_malloc2 ();
    0x000170d2 mov r2, r8                                        |     r2 = r8;
    0x000170d4 mov r1, r6                                        |     r1 = r6;
    0x000170d6 mov r8, r0                                        |     r8 = r0;
    0x000170d8 bl 0x4465c                                        |     zbx_strlcpy ();
    0x000170dc mov r3, r5                                        |     r3 = r5;
    0x000170de movs r2, 0                                        |     r2 = 0;
    0x000170e0 movs r1, 0x58                                     |     r1 = 0x58;
    0x000170e2 mov r0, r7                                        |     r0 = r7;
    0x000170e4 bl 0x40dd8                                        |     zbx_malloc2 ();
    0x000170e8 adds r1, r4, 1                                    |     r1 = r4 + 1;
    0x000170ea mov r2, r5                                        |     r2 = r5;
    0x000170ec add r1, r6                                        |     r1 += r6;
    0x000170ee mov r6, r0                                        |     r6 = r0;
    0x000170f0 bl 0x4465c                                        |     zbx_strlcpy ();
    0x000170f4 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x000170f6 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000170f8 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000170fa bgt.w 0x186ce                                     |         goto label_100;
                                                                 |     }
                                                                 | label_18:
    0x000170fe add r3, sp, 0x178                                 |     r3 += arg_178h;
    0x00017100 mov r0, r8                                        |     r0 = r8;
    0x00017102 mov r1, r3                                        |     r1 = r3;
    0x00017104 str r3, [sp, 0x30]                                |     *(arg_30h) = r3;
    0x00017106 blx 0xdec0                                        |     r0 = fcn_0000dec0 ();
    0x0001710a mov r5, r0                                        |     r5 = r0;
    0x0001710c adds r5, 1                                        |     r5++;
                                                                 |     if (r5 == 1) {
    0x0001710e beq.w 0x19490                                     |         goto label_101;
                                                                 |     }
    0x00017112 ldr r3, [sp, 0x30]                                |     r3 = *(arg_30h);
    0x00017114 ldr r3, [r3, 0x10]                                |     r3 = *((r3 + 0x10));
    0x00017116 and r3, r3, 0xf000                                |     r3 &= 0xf000;
    0x0001711a cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 != 0x4000) {
    0x0001711e bne.w 0x19328                                     |         goto label_102;
                                                                 |     }
    0x00017122 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00017124 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00017126 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00017128 bgt.w 0x18980                                     |         goto label_103;
                                                                 |     }
    0x0001712c add r4, sp, 0x154                                 |     r4 += arg_0h_2;
    0x0001712e ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x00017130 mov r1, r4                                        |     r1 = r4;
    0x00017132 mov r0, r6                                        |     r0 = r6;
    0x00017134 bl 0x31a30                                        |     r0 = zbx_regexp_compile ();
    0x00017138 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001713a bne.w 0x18d2c                                     |         goto label_104;
                                                                 |     }
                                                                 | label_26:
    0x0001713e mov r0, r8                                        |     r0 = r8;
    0x00017140 ldr.w sl, [r4]                                    |     sl = *(r4);
    0x00017144 blx 0xdbdc                                        |     r0 = fcn_0000dbdc ();
    0x00017148 mov sb, r0                                        |     sb = r0;
    0x0001714a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001714c beq.w 0x195a2                                     |         goto label_105;
                                                                 |     }
    0x00017150 movs r3, 1                                        |     r3 = 1;
    0x00017152 ldr.w r5, [pc, 0x8d4]                             |     r5 = *(0x00017a28);
    0x00017156 str.w r3, [fp, 0x24]                              |     __asm ("str.w r3, [arg_178h]");
    0x0001715a ldr.w r3, [pc, 0x8d0]                             |     r3 = *(0x00017a2c);
    0x0001715e str.w sl, [sp, 0x84]                              |     __asm ("str.w sl, [arg_84h]");
    0x00017162 add r5, pc                                        |     r5 += pc;
    0x00017164 ldr r7, [sp, 0x30]                                |     r7 = *(arg_30h);
    0x00017166 add r3, pc                                        |     r3 += pc;
    0x00017168 ldr.w sl, [sp, 0x70]                              |     sl = *(arg_70h);
    0x0001716c str r3, [sp, 0x5c]                                |     *(arg_5ch) = r3;
    0x0001716e str r6, [sp, 0x78]                                |     *(arg_78h) = r6;
    0x00017170 str r4, [sp, 0x80]                                |     *(arg_80h) = r4;
    0x00017172 b 0x17188                                         |     
                                                                 |     while (r0 == 0) {
    0x00017174 ldr r2, [r7, 0x10]                                |         r2 = *((r7 + 0x10));
    0x00017176 and r2, r2, 0xf000                                |         r2 &= 0xf000;
    0x0001717a cmp.w r2, 0x8000                                  |         
                                                                 |         if (r2 == fcn.00000004) {
    0x0001717e beq.w 0x18580                                     |             goto label_106;
                                                                 |         }
                                                                 | label_7:
    0x00017182 mov r0, r6                                        |         r0 = r6;
    0x00017184 blx 0xde30                                        |         fcn_0000de30 ();
    0x00017188 mov r0, sb                                        |         r0 = sb;
    0x0001718a blx 0xe28c                                        |         r0 = fcn_0000e28c ();
    0x0001718e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00017190 beq.w 0x187b0                                     |             goto label_107;
                                                                 |         }
    0x00017194 add.w r4, r0, 0x13                                |         r4 = r0 + 0x13;
    0x00017198 mov r1, r5                                        |         r1 = r5;
    0x0001719a mov r2, r8                                        |         r2 = r8;
    0x0001719c mov r3, r4                                        |         r3 = r4;
    0x0001719e movs r0, 0                                        |         r0 = 0;
    0x000171a0 bl 0x44820                                        |         zbx_dsprintf ();
    0x000171a4 mov r1, r7                                        |         r1 = r7;
    0x000171a6 mov r6, r0                                        |         r6 = r0;
    0x000171a8 blx 0xdec0                                        |         r0 = fcn_0000dec0 ();
    0x000171ac cmp r0, 0                                         |         
    0x000171ae beq 0x17174                                       |         
                                                                 |     }
    0x000171b0 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x000171b4 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x000171b6 ble 0x17182                                       |         goto label_7;
                                                                 |     }
    0x000171b8 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000171bc ldr r0, [r0]                                      |     r0 = *(r0);
    0x000171be bl 0x30b74                                        |     zbx_strerror ();
    0x000171c2 ldr r1, [sp, 0x5c]                                |     r1 = *(arg_5ch);
    0x000171c4 mov r3, r0                                        |     r3 = r0;
    0x000171c6 mov r2, r6                                        |     r2 = r6;
    0x000171c8 movs r0, 4                                        |     r0 = 4;
    0x000171ca bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000171ce b 0x17182                                         |     goto label_7;
                                                                 | label_76:
    0x000171d0 add r3, sp, 0x178                                 |     r3 += arg_178h;
    0x000171d2 mov r1, r3                                        |     r1 = r3;
    0x000171d4 mov r4, r3                                        |     r4 = r3;
    0x000171d6 bl 0x41798                                        |     r0 = is_double ();
    0x000171da cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000171dc bne.w 0x19210                                     |         goto label_108;
                                                                 |     }
    0x000171e0 vldr d10, [r4]                                    |     __asm ("vldr d10, [r4]");
    0x000171e4 vcmpe.f64 d10, 0                                  |     __asm ("vcmpe.f64 d10, 0");
    0x000171e8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 0) {
    0x000171ec bmi.w 0x19210                                     |         goto label_108;
                                                                 |     }
    0x000171f0 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x000171f2 vcvt.f32.f64 s20, d10                             |     __asm ("vcvt.f32.f64 s20, d10");
    0x000171f6 ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
    0x000171fa ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x000171fc b 0x16d58                                         |     goto label_8;
                                                                 | label_78:
    0x000171fe ldr.w r1, [pc, 0x830]                             |     
    0x00017202 mov r0, r7                                        |     r0 = r7;
    0x00017204 add r1, pc                                        |     r1 = 0x2ec3a;
    0x00017206 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x0001720a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001720c bne.w 0x18c8e                                     |         goto label_109;
                                                                 |     }
    0x00017210 ldr r3, [sp, 0xb0]                                |     r3 = *(arg_b0h);
                                                                 |     if (r3 != 0) {
                                                                 | label_84:
    0x00017212 cbz r3, 0x17266                                   |         
    0x00017214 movs r3, 2                                        |         r3 = 2;
    0x00017216 str r3, [sp, 0xec]                                |         *(arg_ech) = r3;
    0x00017218 b 0x16efa                                         |         goto label_9;
                                                                 | label_93:
    0x0001721a subs r2, r2, r1                                   |         r2 -= r1;
    0x0001721c ldr.w r1, [pc, 0x814]                             |         r1 = *(0x00017a34);
    0x00017220 movs r0, 3                                        |         r0 = 3;
    0x00017222 add r1, pc                                        |         r1 += pc;
    0x00017224 bl 0x30d1c                                        |         zbx_zabbix_log ();
                                                                 | label_92:
    0x00017228 ldr.w r3, [fp, 0x18]                              |         r3 = *(arg_18h);
    0x0001722c str r3, [sp, 0x38]                                |         *(arg_38h) = r3;
    0x0001722e b 0x17048                                         |         goto label_10;
                                                                 | label_65:
    0x00017230 ldr r3, [sp, 0x64]                                |         r3 = *(arg_bp_40h);
    0x00017232 ldr r1, [sp, 0x68]                                |         r1 = *(arg_68h);
    0x00017234 adds r4, r3, 1                                    |         r4 = r3 + 1;
    0x00017236 mov r0, r4                                        |         r0 = r4;
    0x00017238 bl 0x31f68                                        |         r0 = zbx_global_regexp_exists ();
    0x0001723c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001723e bne.w 0x194f0                                     |             goto label_110;
                                                                 |         }
    0x00017242 ldr r3, [sp, 0x48]                                |         r3 = *(arg_48h);
    0x00017244 ldr r4, [r3, 4]                                   |         r4 = *((r3 + 4));
    0x00017246 b 0x16c74                                         |         goto label_11;
                                                                 | label_88:
    0x00017248 ldr.w r3, [fp, 0x18]                              |         r3 = *(arg_18h);
    0x0001724c vldr d9, [fp, 8]                                  |         __asm ("vldr d9, [fp, 8]");
    0x00017250 str r3, [sp, 0x124]                               |         *(arg_124h) = r3;
    0x00017252 ldr.w r3, [fp, 0x20]                              |         r3 = *(arg_20h);
    0x00017256 str r3, [sp, 0x128]                               |         *(arg_128h) = r3;
    0x00017258 ldr r3, [sp, 0x40]                                |         r3 = *(arg_40h);
    0x0001725a str r3, [sp, 0x2c]                                |         *(arg_8h) = r3;
    0x0001725c str r3, [sp, 0x12c]                               |         *(arg_12ch) = r3;
    0x0001725e b 0x16fba                                         |         goto label_12;
                                                                 | label_30:
    0x00017260 movs r3, 3                                        |         r3 = 3;
                                                                 | label_31:
    0x00017262 str r3, [sp, 0xec]                                |         *(arg_ech) = r3;
    0x00017264 b 0x16fa0                                         |         goto label_13;
                                                                 |     }
    0x00017266 movs r3, 2                                        |     r3 = 2;
    0x00017268 str r3, [sp, 0xec]                                |     *(arg_ech) = r3;
    0x0001726a b 0x16fa0                                         |     goto label_13;
                                                                 | label_94:
    0x0001726c add r4, sp, 0x178                                 |     r4 += arg_178h;
    0x0001726e mov r0, r6                                        |     r0 = r6;
    0x00017270 mov r1, r4                                        |     r1 = r4;
    0x00017272 blx 0xdec0                                        |     r0 = fcn_0000dec0 ();
    0x00017276 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017278 bne.w 0x174a0                                     |         
    0x0001727c ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x0001727e and r3, r3, 0xf000                                |         r3 &= 0xf000;
    0x00017282 cmp.w r3, 0x8000                                  |         
                                                                 |         if (r3 == fcn.00000004) {
    0x00017286 beq.w 0x18a72                                     |             goto label_111;
                                                                 |         }
    0x0001728a ldr r4, [sp, 0x7c]                                |         r4 = *(arg_7ch);
    0x0001728c mov r2, r6                                        |         r2 = r6;
    0x0001728e ldr.w r1, [pc, 0x7a8]                             |         
    0x00017292 ldr r0, [r4]                                      |         r0 = *(r4);
    0x00017294 add r1, pc                                        |         r1 = 0x2ecd2;
    0x00017296 bl 0x44820                                        |         zbx_dsprintf ();
    0x0001729a str r0, [r4]                                      |         *(r4) = r0;
                                                                 | label_91:
    0x0001735a ldr.w r2, [pc, 0x6ec]                             |         
    0x0001735e movs r0, 4                                        |         r0 = 4;
    0x00017360 str r4, [sp, 0x10]                                |         var_10h = r4;
    0x00017362 str r6, [sp]                                      |         *(sp) = r6;
    0x00017364 ldr.w r1, [pc, 0x6e4]                             |         r1 = *(0x00017a4c);
    0x00017368 add r2, pc                                        |         r2 = 0x2edb6;
    0x0001736a ldrd r4, r5, [fp, 8]                              |         __asm ("ldrd r4, r5, [arg_8h_2]");
    0x0001736e adds r2, 0x5c                                     |         r2 += 0x5c;
    0x00017370 ldr r3, [sp, 0xd0]                                |         r3 = *(arg_d0h);
    0x00017372 add r1, pc                                        |         r1 += pc;
    0x00017374 strd r4, r5, [sp, 8]                              |         __asm ("strd r4, r5, [sp, 8]");
    0x00017378 bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x0001737c ldr.w r4, [fp, 0x18]                              |         r4 = *(arg_18h);
    0x00017380 b 0x17026                                         |         goto label_14;
                                                                 | label_83:
    0x00017382 add.w r8, r8, r8, lsl 2                           |         r8 += (r8 << 2);
    0x00017386 lsl.w r8, r8, 1                                   |         r8 <<= 1;
    0x0001738a b 0x16e42                                         |         goto label_15;
                                                                 | label_90:
    0x0001738c ldr r3, [sp, 0x4c]                                |         r3 = *(arg_4ch);
    0x0001738e add r4, sp, 0x144                                 |         r4 += arg_144h;
    0x00017390 add r7, sp, 0x264                                 |         r7 += arg_264h;
    0x00017392 ldr r0, [sp, 0x6c]                                |         r0 = *(arg_6ch);
    0x00017394 mov.w r2, 0x800                                   |         r2 = 0x800;
    0x00017398 mov r1, r7                                        |         r1 = r7;
    0x0001739a str r3, [r4]                                      |         *(r4) = r3;
    0x0001739c mov r3, r4                                        |         r3 = r4;
    0x0001739e bl 0x1a530                                        |         r0 = zbx_read_persistent_file ();
    0x000173a2 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000173a4 bne.w 0x18e18                                     |             goto label_112;
                                                                 |         }
    0x000173a8 ldr.w r3, [pc, 0x65c]                             |         
    0x000173ac add r2, sp, 0x178                                 |         r2 += arg_178h;
    0x000173ae vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x000173b2 add.w r8, sp, 0x148                               |         r8 += arg_148h;
    0x000173b6 str r2, [sp, 0x30]                                |         *(arg_30h) = r2;
    0x000173b8 str.w r0, [r8]                                    |         __asm ("str.w r0, [r8]");
    0x000173bc vstr d16, [sp, 0x178]                             |         __asm ("vstr d16, [sp, 0x178]");
    0x000173c0 ldr r3, [r5, r3]                                  |         r3 = *((r5 + r3));
    0x000173c2 str r3, [sp, 0x70]                                |         *(arg_70h) = r3;
    0x000173c4 ldr r3, [r3]                                      |         r3 = *(0x17a08);
    0x000173c6 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x000173c8 bgt.w 0x19234                                     |             goto label_113;
                                                                 |         }
                                                                 | label_45:
    0x000173cc mov r0, r7                                        |         r0 = r7;
    0x000173ce ldr r7, [sp, 0x30]                                |         r7 = *(arg_30h);
    0x000173d0 ldr r1, [sp, 0x114]                               |         r1 = *(arg_114h);
    0x000173d2 add.w r2, fp, 0x2c                                |         r2 += arg_2ch;
    0x000173d6 strd r8, r4, [sp]                                 |         __asm ("strd r8, r4, [sp]");
    0x000173da mov r3, r7                                        |         r3 = r7;
    0x000173dc bl 0x1aeb8                                        |         r0 = zbx_restore_file_details ();
    0x000173e0 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000173e2 bne.w 0x1915c                                     |             goto label_114;
                                                                 |         }
    0x000173e4 strh r3, [r7, 0x34]                               |         *((r7 + 0x34)) = r3;
    0x000173e6 ldrd r0, r2, [fp, 8]                              |         __asm ("ldrd r0, r2, [arg_8h_2]");
    0x000173ea ldrd r1, r3, [r7]                                 |         __asm ("ldrd r1, r3, [r7]");
    0x000173ee cmp r2, r3                                        |         
    0x000173f0 it eq                                             |         
                                                                 |         if (r2 == r3) {
    0x000173f2 cmpeq r0, r1                                      |             __asm ("cmpeq r0, r1");
                                                                 |         }
                                                                 |         if (r2 == r3) {
    0x000173f4 bne 0x17402                                       |             
    0x000173f6 ldr.w r4, [fp, 0x18]                              |             r4 = *(arg_18h);
    0x000173fa ldr.w r3, [r8]                                    |             r3 = *(r8);
    0x000173fe cmp r4, r3                                        |             
                                                                 |             if (r4 >= r3) {
    0x00017400 bge 0x1748c                                       |                 goto label_115;
                                                                 |             }
                                                                 |         }
    0x00017402 ldr.w r3, [pc, 0x64c]                             |         r3 = *(0x00017a50);
    0x00017406 add r7, sp, 0x14c                                 |         r7 += arg_14ch;
    0x00017408 add r4, sp, 0x154                                 |         r4 += arg_0h_2;
    0x0001740a mov r0, r7                                        |         r0 = r7;
    0x0001740c mov r2, r4                                        |         r2 = r4;
    0x0001740e add r3, pc                                        |         r3 += pc;
    0x00017410 adds r3, 0x48                                     |         r3 += 0x48;
    0x00017412 str r3, [sp]                                      |         *(sp) = r3;
    0x00017414 ldr.w r3, [fp]                                    |         r3 = *(fp);
    0x00017418 str r3, [sp, 4]                                   |         var_4h = r3;
    0x0001741a add r3, sp, 0x150                                 |         r3 += arg_150h;
    0x0001741c mov r1, r3                                        |         r1 = r3;
    0x0001741e str r3, [sp, 0xb8]                                |         *(arg_b8h) = r3;
    0x00017420 movs r3, 0                                        |         r3 = 0;
    0x00017422 mov sb, r1                                        |         sb = r1;
    0x00017424 str r3, [r1]                                      |         *(r1) = r3;
    0x00017426 str r3, [r7]                                      |         *(r7) = r3;
    0x00017428 str r3, [r4]                                      |         *(r4) = r3;
    0x0001742a ldr.w r3, [pc, 0x628]                             |         r3 = *(0x00017a54);
    0x0001742e add r3, pc                                        |         r3 += pc;
    0x00017430 bl 0x43fb4                                        |         zbx_snprintf_alloc ();
    0x00017434 ldr r1, [sp, 0x30]                                |         r1 = *(arg_30h);
    0x00017436 ldrd r2, r3, [fp, 8]                              |         __asm ("ldrd r2, r3, [arg_8h_2]");
    0x0001743a ldr r0, [r1]                                      |         r0 = *(r1);
    0x0001743c ldr r1, [r1, 4]                                   |         r1 = *((r1 + 4));
    0x0001743e cmp r3, r1                                        |         
    0x00017440 it eq                                             |         
                                                                 |         if (r3 == r1) {
    0x00017442 cmpeq r2, r0                                      |             __asm ("cmpeq r2, r0");
                                                                 |         }
                                                                 |         if (r3 != r1) {
    0x00017444 beq 0x17468                                       |             
    0x00017446 strd r2, r3, [sp]                                 |             __asm ("strd r2, r3, [sp]");
    0x0001744a mov r2, r4                                        |             r2 = r4;
    0x0001744c ldr.w r3, [pc, 0x608]                             |             
    0x00017450 strd r0, r1, [sp, 8]                              |             __asm ("strd r0, r1, [sp, 8]");
    0x00017454 mov r1, sb                                        |             r1 = sb;
    0x00017456 mov r0, r7                                        |             r0 = r7;
    0x00017458 add r3, pc                                        |             r3 = 0x2eeb4;
    0x0001745a bl 0x43fb4                                        |             zbx_snprintf_alloc ();
    0x0001745e ldr r1, [sp, 0x30]                                |             r1 = *(arg_30h);
    0x00017460 ldrd r2, r3, [r1]                                 |             __asm ("ldrd r2, r3, [r1]");
    0x00017464 strd r2, r3, [fp, 8]                              |             __asm ("strd r2, r3, [fp, 8]");
                                                                 |         }
    0x00017468 ldr.w r3, [fp, 0x18]                              |         r3 = *(arg_18h);
    0x0001746c ldr.w r2, [r8]                                    |         r2 = *(r8);
    0x00017470 cmp r3, r2                                        |         
                                                                 |         if (r3 < r2) {
    0x00017472 blt.w 0x19426                                     |             goto label_116;
                                                                 |         }
                                                                 | label_52:
    0x00017476 ldr r3, [sp, 0x70]                                |         r3 = *(arg_70h);
    0x00017478 ldr r3, [r3]                                      |         r3 = *(r3);
    0x0001747a cmp r3, 2                                         |         
                                                                 |         if (r3 > 2) {
    0x0001747c bgt.w 0x19416                                     |             goto label_117;
                                                                 |         }
                                                                 | label_51:
    0x00017480 ldr r0, [r7]                                      |         r0 = *(r7);
                                                                 |         if (r0 != 0) {
    0x00017482 cbz r0, 0x17488                                   |             
                                                                 | label_38:
    0x00017484 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
                                                                 | label_39:
    0x00017488 ldr.w r4, [fp, 0x18]                              |         r4 = *(arg_18h);
                                                                 | label_115:
    0x0001748c ldrb.w r3, [fp, 0x1d]                             |         r3 = *(arg_1dh_2);
    0x00017490 str r3, [sp, 0xd0]                                |         *(arg_d0h) = r3;
    0x00017492 ldr.w r3, [fp, 0x2c]                              |         r3 = *(arg_2ch);
    0x00017496 str r3, [sp, 0x4c]                                |         *(arg_4ch) = r3;
    0x00017498 ldr.w r3, [fp, 0x48]                              |         r3 = *(arg_bp_48h);
    0x0001749c str r3, [sp, 0x6c]                                |         *(arg_6ch) = r3;
    0x0001749e b 0x16fea                                         |         goto label_16;
                                                                 |     }
    0x000174a0 ldr r5, [sp, 0x7c]                                |     r5 = *(arg_7ch);
    0x000174a2 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000174a6 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000174a8 ldr r4, [r5]                                      |     r4 = *(r5);
    0x000174aa bl 0x30b74                                        |     zbx_strerror ();
    0x000174ac invalid                                           |     
    0x000174b0 asrs r4, r5, 0x16                                 |     r4 = r5 >> 0x16;
    0x000174b2 mov r3, r0                                        |     r3 = r0;
    0x000174b4 mov r2, r6                                        |     r2 = r6;
    0x000174b6 mov r0, r4                                        |     r0 = r4;
    0x000174b8 add r1, pc                                        |     r1 += pc;
    0x000174ba bl 0x44820                                        |     zbx_dsprintf ();
    0x000174be str r0, [r5]                                      |     *(r5) = r0;
    0x000174c0 ldrb.w r3, [fp, 0x1c]                             |     r3 = *(arg_1ch);
    0x000174c4 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x000174c6 beq.w 0x18b50                                     |         goto label_118;
                                                                 |     }
    0x000174ca ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x000174cc lsls r0, r3, 0x1c                                 |     r0 = r3 << 0x1c;
                                                                 |     if (r0 >= r3) {
    0x000174ce bpl.w 0x1729c                                     |         void (*0x1729c)() ();
                                                                 |     }
    0x000174d0 add r6, sp, 0x394                                 |     r6 = sp + 0x394;
                                                                 | label_20:
    0x00017558 adds r3, r5, 1                                    |     r3 = r5 + 1;
    0x0001755a ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x0001755e bics r3, r3, 4                                    |     __asm ("bics r3, r3, 4");
                                                                 |     if (r3 == r5) {
    0x00017562 beq.w 0x18b34                                     |         goto label_119;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x00017566 cbz r5, 0x17570                                   |         void (*0x17570)() ();
                                                                 |     }
    0x00017568 ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001756a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001756c bne.w 0x1729c                                     |         void (*0x1729c)() ();
                                                                 |     }
                                                                 | label_74:
    0x00018200 ldr.w r3, [pc, 0x628]                             |     
    0x00018204 mov.w sb, 6                                       |     sb = 6;
    0x00018208 add r3, pc                                        |     r3 = 0x30a38;
    0x0001820a str r3, [sp, 0x100]                               |     *(arg_100h) = r3;
    0x0001820c b.w 0x16d3c                                       |     goto label_4;
                                                                 | label_106:
    0x00018580 ldr r2, [r7, 0x50]                                |     r2 = *((r7 + 0x50));
    0x00018582 ldr r3, [sp, 0x38]                                |     r3 = *(arg_38h);
    0x00018584 cmp r2, r3                                        |     
                                                                 |     if (r2 < r3) {
    0x00018586 blt.w 0x17182                                     |         goto label_7;
                                                                 |     }
    0x0001858a ldr r1, [sp, 0x84]                                |     r1 = *(arg_84h);
    0x0001858c mov r0, r4                                        |     r0 = r4;
    0x0001858e bl 0x31a70                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00018592 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018594 bne.w 0x17182                                     |         goto label_7;
                                                                 |     }
    0x00018598 ldr r2, [sp, 0x50]                                |     r2 = *(arg_50h);
    0x0001859a mov r3, r6                                        |     r3 = r6;
    0x0001859c ldr r1, [sp, 0x58]                                |     r1 = *(arg_58h);
    0x0001859e ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x000185a0 str r7, [sp]                                      |     *(sp) = r7;
    0x000185a2 bl 0x153fc                                        |     fcn_000153fc (r0, r1, r2, r3, r4);
    0x000185a6 b.w 0x17182                                       |     goto label_7;
                                                                 | label_98:
    0x000185aa ldr r2, [pc, 0x288]                               |     
    0x000185ac mov r3, r6                                        |     r3 = r6;
    0x000185ae ldr r1, [pc, 0x288]                               |     
    0x000185b0 str r0, [sp]                                      |     *(sp) = r0;
    0x000185b2 movs r0, 4                                        |     r0 = 4;
    0x000185b4 add r2, pc                                        |     r2 = 0x30dee;
    0x000185b6 adds r2, 0x7c                                     |     r2 += 0x7c;
    0x000185b8 add r1, pc                                        |     r1 = 0x30df6;
    0x000185ba bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000185be mov r0, r6                                        |     r0 = r6;
    0x000185c0 blx 0xdf68                                        |     fcn_0000df68 ();
    0x000185c4 cmp r6, r4                                        |     
                                                                 |     if (r6 > r4) {
    0x000185c6 bhi 0x185d2                                       |         goto label_120;
                                                                 |     }
    0x000185c8 subs r3, r0, 1                                    |     r3 = r0 - 1;
    0x000185ca add r3, r6                                        |     r3 += r6;
    0x000185cc cmp r4, r3                                        |     
                                                                 |     if (r4 <= r3) {
    0x000185ce blo.w 0x170b8                                     |         goto label_17;
                                                                 |     }
                                                                 | label_120:
    0x000185d2 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x000185d4 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000185d6 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x000185d8 ble.w 0x192f4                                     |         goto label_99;
                                                                 |     }
    0x000185dc ldr r3, [pc, 0x25c]                               |     
    0x000185de movs r0, 4                                        |     r0 = 4;
    0x000185e0 ldr r1, [pc, 0x25c]                               |     
    0x000185e2 add r3, pc                                        |     
    0x000185e4 add.w r4, r3, 0x7c                                |     r4 = r3 + 0x7c;
    0x000185e8 add r1, pc                                        |     r1 = 0x30e2c;
    0x000185ea mov r2, r4                                        |     r2 = r4;
    0x000185ec bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000185f0 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x000185f2 ldr r3, [r3]                                      |     r3 = *(0x30e22);
    0x000185f4 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000185f6 bgt.w 0x194cc                                     |         goto label_121;
                                                                 |     }
    0x000185fa ldr r1, [pc, 0x248]                               |     
    0x000185fc add r1, pc                                        |     r1 = 0x30e46;
                                                                 | label_97:
    0x000185fe ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x00018600 movs r2, 0x2f                                     |     r2 = 0x2f;
    0x00018602 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00018604 bl 0x44820                                        |     zbx_dsprintf ();
                                                                 | label_49:
    0x00018608 str r0, [r4]                                      |     *(r4) = r0;
                                                                 | label_47:
    0x0001860a ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x0001860c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001860e cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00018610 bgt.w 0x19354                                     |         goto label_122;
                                                                 |     }
                                                                 | label_24:
    0x00018614 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00018616 vcmp.f32 s20, 0                                   |     __asm ("vcmp.f32 s20, 0");
    0x0001861a vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x0001861e ldr r3, [r3]                                      |     r3 = *(r3);
                                                                 |     if (r3 != 3) {
    0x00018620 bne.w 0x19482                                     |         void (*0x19482)() ();
                                                                 |     }
                                                                 | label_100:
    0x000186ce movs r0, 0                                        |     r0 = 0;
    0x000186d0 bl 0x45514                                        |     r0 = zbx_result_string ();
    0x000186d4 mov r3, r0                                        |     r3 = r0;
    0x000186d6 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x000186da beq.w 0x18e0a                                     |         goto label_123;
                                                                 |     }
    0x000186de mov r2, r8                                        |     r2 = r8;
    0x000186e0 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000186e2 beq.w 0x18de8                                     |         goto label_124;
                                                                 |     }
    0x000186e6 ldr r2, [pc, 0x170]                               |     
    0x000186e8 movs r0, 4                                        |     r0 = 4;
    0x000186ea ldr r1, [pc, 0x170]                               |     
    0x000186ec strd r8, r6, [sp]                                 |     __asm ("strd r8, r6, [sp]");
    0x000186f0 add r2, pc                                        |     r2 = 0x30f4e;
    0x000186f2 adds r2, 0x7c                                     |     r2 += 0x7c;
    0x000186f4 add r1, pc                                        |     r1 = 0x30f56;
    0x000186f6 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000186fa b.w 0x170fe                                       |     goto label_18;
                                                                 | label_73:
    0x000186fe ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
    0x00018702 b.w 0x16dee                                       |     goto label_19;
                                                                 | label_107:
    0x000187b0 mov r0, sb                                        |     r0 = sb;
    0x000187b2 ldr r6, [sp, 0x78]                                |     r6 = *(arg_78h);
    0x000187b4 ldr r4, [sp, 0x80]                                |     r4 = *(arg_80h);
    0x000187b6 blx 0xe0d0                                        |     fcn_0000e0d0 ();
    0x000187ba adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x000187bc beq.w 0x1954e                                     |         goto label_125;
                                                                 |     }
    0x000187c0 ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x000187c2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000187c4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000187c6 beq.w 0x190c4                                     |         goto label_126;
                                                                 |     }
                                                                 | label_42:
    0x000187ca ldr r0, [r4]                                      |     r0 = *(r4);
    0x000187cc bl 0x31a44                                        |     zbx_regexp_free ();
    0x000187d0 mov r0, r8                                        |     r0 = r8;
    0x000187d2 blx 0xde30                                        |     fcn_0000de30 ();
                                                                 |     if (r6 != 0) {
    0x000187d6 cbz r6, 0x187de                                   |         
    0x000187d8 mov r0, r6                                        |         r0 = r6;
    0x000187da blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 | label_28:
    0x000187de ldr r3, [sp, 0x50]                                |     r3 = *(arg_50h);
    0x000187e0 ldr r2, [sp, 0xb4]                                |     r2 = *(arg_b4h);
    0x000187e2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000187e4 ldr r4, [r2]                                      |     r4 = *(r2);
    0x000187e6 cmp r3, 0                                         |     
    0x000187e8 str r3, [sp, 0x84]                                |     *(arg_84h) = r3;
                                                                 |     if (r3 <= 0) {
    0x000187ea ble.w 0x174f0                                     |         void (*0x174f0)() ();
                                                                 |     }
    0x000187ee ldr r7, [sp, 0x7c]                                |     r7 = *(arg_7ch);
    0x000187f0 adds r4, 0x60                                     |     r4 += 0x60;
    0x000187f2 mov.w r8, 0                                       |     r8 = 0;
    0x000187f6 movw sb, 0x201                                    |     sb = 0x201;
    0x000187fa mov sl, r3                                        |     sl = r3;
    0x000187fc str.w fp, [sp, 0x38]                              |     __asm ("str.w fp, [arg_38h]");
    0x00018800 b 0x18896                                         |     goto label_127;
                                                                 | label_22:
    0x00018864 str r7, [sp, 4]                                   |     var_4h = r7;
    0x00018866 mov r0, r6                                        |     r0 = r6;
    0x00018868 ldr r3, [r4, -0x60]                               |     r3 = *((r4 - 0x60));
    0x0001886c str r3, [sp]                                      |     *(sp) = r3;
    0x0001886e mov r3, r4                                        |     r3 = r4;
    0x00018870 bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x00018874 mov r5, r0                                        |     r5 = r0;
                                                                 | label_21:
    0x00018876 mov r0, r6                                        |     r0 = r6;
    0x00018878 ldr r6, [r4, -0x60]                               |     r6 = *((r4 - 0x60));
    0x0001887c blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00018880 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018882 bne 0x1891c                                       |         goto label_128;
                                                                 |     }
    0x00018884 adds r3, r5, 1                                    |     r3 = r5 + 1;
                                                                 |     if (r3 == r5) {
    0x00018886 beq.w 0x19520                                     |         goto label_129;
                                                                 |     }
                                                                 | label_23:
    0x0001888a add.w r8, r8, 1                                   |     r8++;
    0x0001888e adds r4, 0x70                                     |     r4 += 0x70;
    0x00018890 cmp sl, r8                                        |     
                                                                 |     if (sl == r8) {
    0x00018892 beq.w 0x17558                                     |         goto label_20;
                                                                 |     }
                                                                 | label_127:
    0x00018896 ldr r5, [r4, -0x60]                               |     r5 = *((r4 - 0x60));
    0x0001889a movs r1, 0                                        |     r1 = 0;
    0x0001889c mov r0, r5                                        |     r0 = r5;
    0x0001889e blx 0xe030                                        |     r0 = fcntl64 ();
    0x000188a2 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x000188a4 mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r2 == r0) {
    0x000188a6 beq 0x1895a                                       |         goto label_130;
                                                                 |     }
    0x000188a8 ldrd r2, r3, [r4, -0x30]                          |     __asm ("ldrd r2, r3, [r4, -0x30]");
    0x000188ac sub.w fp, r4, 0x1c                                |     
    0x000188b0 movs r1, 0                                        |     r1 = 0;
    0x000188b2 cmp r2, sb                                        |     
    0x000188b4 sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
    0x000188b8 it hs                                             |     
                                                                 |     if (r2 < sb) {
    0x000188ba movhs r2, 0x200                                   |         r2 = 0x200;
                                                                 |     }
    0x000188be str r2, [r4, -0x20]                               |     *((r4 - 0x20)) = r2;
    0x000188c2 str r7, [sp, 4]                                   |     var_4h = r7;
    0x000188c4 ldr r3, [r4, -0x60]                               |     r3 = *((r4 - 0x60));
    0x000188c8 str r3, [sp]                                      |     *(sp) = r3;
    0x000188ca mov r3, fp                                        |     r3 = fp;
    0x000188cc bl 0x15710                                        |     r0 = fcn_00015710 (r0, r1, r2, r3, r4, r5, r6);
    0x000188d0 mov r5, r0                                        |     r5 = r0;
    0x000188d2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000188d4 bne 0x18876                                       |         goto label_21;
                                                                 |     }
    0x000188d6 ldr r2, [r4, -0x20]                               |     r2 = *((r4 - 0x20));
    0x000188da ldr r1, [r4, -0x30]                               |     r1 = *((r4 - 0x30));
    0x000188de ldr r0, [r4, -0x2c]                               |     r0 = *((r4 - 0x2c));
    0x000188e2 subs r1, r1, r2                                   |     r1 -= r2;
    0x000188e4 sbc r0, r0, 0                                     |     __asm ("sbc r0, r0, 0");
    0x000188e8 str r1, [r4, -0x8]                                |     *((r4 - 0x8)) = r1;
    0x000188ec str r0, [r4, -0x4]                                |     *((r4 - 0x4)) = r0;
    0x000188f0 orrs r0, r1                                       |     r0 |= r1;
                                                                 |     if (r0 != r1) {
    0x000188f2 bne 0x18864                                       |         goto label_22;
                                                                 |     }
    0x000188f4 ldr.w r5, [fp]                                    |     r5 = *(fp);
    0x000188f8 mov r0, r6                                        |     r0 = r6;
    0x000188fa ldr.w r1, [fp, 4]                                 |     r1 = *(arg_158h);
    0x000188fe ldr.w r2, [fp, 8]                                 |     r2 = *(arg_8h_2);
    0x00018902 ldr.w r3, [fp, 0xc]                               |     r3 = *(arg_ch);
    0x00018906 str r5, [r4]                                      |     *(r4) = r5;
    0x00018908 str r1, [r4, 4]                                   |     *((r4 + 4)) = r1;
    0x0001890a str r2, [r4, 8]                                   |     *((r4 + 8)) = r2;
    0x0001890c str r3, [r4, 0xc]                                 |     *((r4 + 0xc)) = r3;
    0x0001890e ldr r6, [r4, -0x60]                               |     r6 = *((r4 - 0x60));
    0x00018912 blx 0xe0ac                                        |     r0 = fcn_0000e0ac ();
    0x00018916 mov r5, r0                                        |     r5 = r0;
    0x00018918 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001891a beq 0x1888a                                       |         goto label_23;
                                                                 |     }
                                                                 | label_128:
    0x0001891c ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x0001891e ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x00018922 ldr r4, [r3]                                      |     r4 = *(r3);
    0x00018924 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00018926 beq.w 0x191ee                                     |         goto label_131;
                                                                 |     }
                                                                 | label_25:
    0x0001892a ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x0001892c ldr r3, [r0]                                      |     r3 = *(r0);
                                                                 |     if (r3 != 0) {
    0x0001892e cbz r3, 0x18938                                   |         
                                                                 | label_33:
    0x00018930 ldr r2, [sp, 0x50]                                |         r2 = *(arg_50h);
    0x00018932 ldr r1, [sp, 0x58]                                |         r1 = *(arg_58h);
    0x00018934 bl 0x16b54                                        |         destroy_logfile_list ();
                                                                 |     }
                                                                 | label_27:
    0x00018938 mov.w r5, -1                                      |     r5 = -1;
                                                                 | label_29:
    0x0001893c ldr r3, [sp, 0x3c]                                |     r3 = *(arg_3ch);
    0x0001893e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00018940 bne.w 0x1729c                                     |         void (*0x1729c)() ();
                                                                 |     }
                                                                 | label_34:
    0x00018944 ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x00018946 sub.w r5, r5, -1                                  |     r5 -= -1;
    0x0001894a clz r5, r5                                        |     r5 &= r5;
    0x0001894e lsrs r5, r5, 5                                    |     r5 >>= 5;
    0x00018950 ands.w r5, r5, r3, lsr 3                          |     r5 &= (r3 >> 3);
                                                                 |     if (r5 == r5) {
    0x00018954 beq.w 0x174ea                                     |         void (*0x174ea)() ();
                                                                 |     }
    0x00018958 b 0x18614                                         |     goto label_24;
                                                                 | label_130:
    0x0001895a ldr r6, [sp, 0x7c]                                |     r6 = *(arg_7ch);
    0x0001895c blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00018960 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00018962 ldr r4, [r6]                                      |     r4 = *(r6);
    0x00018964 ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x00018968 bl 0x30b74                                        |     zbx_strerror ();
    0x0001896c ldr.w r1, [pc, 0xc58]                             |     r1 = *(0x000195c8);
    0x00018970 mov r3, r0                                        |     r3 = r0;
    0x00018972 mov r2, r5                                        |     r2 = r5;
    0x00018974 mov r0, r4                                        |     r0 = r4;
    0x00018976 add r1, pc                                        |     r1 += pc;
    0x00018978 bl 0x44820                                        |     zbx_dsprintf ();
    0x0001897c str r0, [r6]                                      |     *(r6) = r0;
    0x0001897e b 0x1892a                                         |     goto label_25;
                                                                 | label_103:
    0x00018980 movs r0, 0                                        |     r0 = 0;
    0x00018982 mov r5, r8                                        |     r5 = r8;
    0x00018984 bl 0x45514                                        |     r0 = zbx_result_string ();
    0x00018988 mov r3, r0                                        |     r3 = r0;
    0x0001898a cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x0001898c bne.w 0x18fbe                                     |         goto label_132;
                                                                 |     }
                                                                 | label_46:
    0x00018990 ldr.w r1, [pc, 0xc38]                             |     r1 = *(0x000195cc);
    0x00018994 movs r0, 4                                        |     r0 = 4;
    0x00018996 ldr.w r2, [pc, 0xc38]                             |     r2 = *(0x000195d0);
    0x0001899a str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x0001899e add r1, pc                                        |     r1 += pc;
    0x000189a0 str r1, [sp, 4]                                   |     var_4h = r1;
    0x000189a2 add r2, pc                                        |     r2 += pc;
    0x000189a4 ldr.w r1, [pc, 0xc2c]                             |     r1 = *(0x000195d4);
    0x000189a8 adds r2, 0x6c                                     |     r2 += 0x6c;
    0x000189aa add r1, pc                                        |     r1 += pc;
    0x000189ac bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000189b0 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000189b2 bne.w 0x18614                                     |         goto label_24;
                                                                 |     }
    0x000189b6 mov r8, r5                                        |     r8 = r5;
    0x000189b8 add r3, sp, 0x178                                 |     r3 += arg_178h;
    0x000189ba str r3, [sp, 0x30]                                |     *(arg_30h) = r3;
                                                                 | label_40:
    0x000189bc add r4, sp, 0x154                                 |     r4 += arg_0h_2;
    0x000189be ldr r2, [sp, 0x30]                                |     r2 = *(arg_30h);
    0x000189c0 mov r1, r4                                        |     r1 = r4;
    0x000189c2 mov r0, r6                                        |     r0 = r6;
    0x000189c4 bl 0x31a30                                        |     r0 = zbx_regexp_compile ();
    0x000189c8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000189ca beq.w 0x1713e                                     |         goto label_26;
                                                                 |     }
    0x000189ce ldr r4, [sp, 0x30]                                |     r4 = *(arg_30h);
    0x000189d0 ldr r5, [sp, 0x7c]                                |     r5 = *(arg_7ch);
    0x000189d2 ldr.w r1, [pc, 0xc04]                             |     r1 = *(0x000195d8);
    0x000189d6 ldr r2, [r4]                                      |     r2 = *(r4);
    0x000189d8 ldr r0, [r5]                                      |     r0 = *(r5);
    0x000189da add r1, pc                                        |     r1 += pc;
    0x000189dc bl 0x44820                                        |     zbx_dsprintf ();
    0x000189e0 str r0, [r5]                                      |     *(r5) = r0;
    0x000189e2 ldr r0, [r4]                                      |     r0 = *(r4);
    0x000189e4 bl 0x3211c                                        |     zbx_regexp_err_msg_free ();
    0x000189e8 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x000189ec bne.w 0x18d46                                     |         goto label_133;
                                                                 |     }
    0x000189f0 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000189f2 beq.w 0x18d52                                     |         goto label_134;
                                                                 |     }
                                                                 | label_32:
    0x000189f6 mov r0, r6                                        |     r0 = r6;
    0x000189f8 blx 0xde30                                        |     fcn_0000de30 ();
    0x000189fc ldr r3, [sp, 0xb4]                                |     r3 = *(arg_b4h);
    0x000189fe ldr r3, [r3]                                      |     r3 = *(r3);
    0x00018a00 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00018a02 beq 0x18938                                       |         goto label_27;
                                                                 |     }
                                                                 | label_56:
    0x00018a04 ldr r2, [sp, 0x50]                                |     r2 = *(arg_50h);
    0x00018a06 ldr r1, [sp, 0x58]                                |     r1 = *(arg_58h);
    0x00018a08 ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x00018a0a bl 0x16b54                                        |     destroy_logfile_list ();
    0x00018a0e b 0x18938                                         |     goto label_27;
                                                                 | label_111:
    0x00018a72 str r0, [r4, 0x50]                                |     *((r4 + 0x50)) = r0;
    0x00018a74 mov r3, r6                                        |     r3 = r6;
    0x00018a76 ldr r2, [sp, 0x50]                                |     r2 = *(arg_50h);
    0x00018a78 ldr r1, [sp, 0x58]                                |     r1 = *(arg_58h);
    0x00018a7a ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x00018a7c str r4, [sp]                                      |     *(sp) = r4;
    0x00018a7e bl 0x153fc                                        |     fcn_000153fc (r0, r1, r2, r3, r4);
    0x00018a82 movs r3, 1                                        |     r3 = 1;
    0x00018a84 str.w r3, [fp, 0x24]                              |     __asm ("str.w r3, [arg_178h]");
    0x00018a88 b 0x187de                                         |     goto label_28;
                                                                 | label_62:
    0x00018aa6 ldr.w r3, [pc, 0xb34]                             |     
    0x00018aaa movw r1, 0xf19                                    |     r1 = 0xf19;
    0x00018aae ldr r2, [sp, 0x7c]                                |     r2 = *(arg_7ch);
    0x00018ab0 ldr.w r0, [pc, 0xb2c]                             |     
    0x00018ab4 add r3, pc                                        |     r3 = 0x32096;
    0x00018ab6 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00018ab8 add r0, pc                                        |     r0 = zbx_wildcard_match;
    0x00018aba bl 0x40ed8                                        |     zbx_strdup2 ();
                                                                 | label_36:
    0x00018abe mov.w r3, -1                                      |     r3 = -1;
    0x00018ac2 str r3, [sp, 0x38]                                |     *(arg_38h) = r3;
    0x00018ac4 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x00018ac6 str r0, [r3]                                      |     *(r3) = r0;
    0x00018ac8 b.w 0x1732a                                       |     void (*0x1732a)() ();
                                                                 | label_41:
    0x00018b18 cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x00018b1a bgt.w 0x193d0                                     |         goto label_135;
                                                                 |     }
                                                                 | label_50:
    0x00018b1e movs r5, 3                                        |     r5 = 3;
                                                                 | label_57:
    0x00018b20 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00018b22 bl 0x31a44                                        |     zbx_regexp_free ();
    0x00018b26 mov r0, r8                                        |     r0 = r8;
    0x00018b28 blx 0xde30                                        |     fcn_0000de30 ();
                                                                 |     if (r6 != 0) {
    0x00018b2c cbz r6, 0x18b34                                   |         
    0x00018b2e mov r0, r6                                        |         r0 = r6;
    0x00018b30 blx 0xde30                                        |         fcn_0000de30 ();
                                                                 |     }
                                                                 | label_119:
    0x00018b34 ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x00018b36 ldr r3, [r0]                                      |     r3 = *(r0);
                                                                 |     if (r3 != 0) {
    0x00018b38 cbz r3, 0x18b42                                   |         
    0x00018b3a ldr r2, [sp, 0x50]                                |         r2 = *(arg_50h);
    0x00018b3c ldr r1, [sp, 0x58]                                |         r1 = *(arg_58h);
    0x00018b3e bl 0x16b54                                        |         destroy_logfile_list ();
                                                                 |     }
    0x00018b42 cmp r5, 3                                         |     
                                                                 |     if (r5 != 3) {
    0x00018b44 bne.w 0x1893c                                     |         goto label_29;
                                                                 |     }
    0x00018b48 ldrb.w r3, [fp, 0x1c]                             |     r3 = *(arg_1ch);
    0x00018b4c cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00018b4e bne 0x18b60                                       |         void (*0x18b60)() ();
                                                                 |     }
                                                                 | label_118:
    0x00018b50 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00018b52 movs r2, 0                                        |     r2 = 0;
    0x00018b54 strb.w r2, [fp, 0x1c]                             |     *(arg_1ch) = r2;
    0x00018b58 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00018b5a cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00018b5c bgt.w 0x1927c                                     |         void (*0x1927c)() ();
                                                                 |     }
                                                                 | label_109:
    0x00018c8e ldr.w r1, [pc, 0x95c]                             |     
    0x00018c92 mov r0, r7                                        |     r0 = r7;
    0x00018c94 add r1, pc                                        |     r1 = 0x32286;
    0x00018c96 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00018c9a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018c9c bne.w 0x191d0                                     |         goto label_136;
                                                                 |     }
                                                                 | label_44:
    0x00018ca0 ldr r3, [sp, 0xb0]                                |     r3 = *(arg_b0h);
    0x00018ca2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00018ca4 beq.w 0x17260                                     |         goto label_30;
                                                                 |     }
    0x00018ca8 movs r3, 3                                        |     r3 = 3;
    0x00018caa str r3, [sp, 0xec]                                |     *(arg_ech) = r3;
    0x00018cac b.w 0x16efa                                       |     goto label_9;
                                                                 | label_79:
    0x00018cb0 ldr.w r1, [pc, 0x93c]                             |     r1 = *(0x000195f0);
    0x00018cb4 mov r0, r7                                        |     r0 = r7;
    0x00018cb6 add r1, pc                                        |     r1 += pc;
    0x00018cb8 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00018cbc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018cbe bne.w 0x19048                                     |         goto label_137;
                                                                 |     }
    0x00018cc2 ldr r3, [sp, 0xb0]                                |     r3 = *(arg_b0h);
    0x00018cc4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00018cc6 beq.w 0x17262                                     |         goto label_31;
                                                                 |     }
    0x00018cca str r0, [sp, 0xec]                                |     *(arg_ech) = r0;
    0x00018ccc b.w 0x16efa                                       |     goto label_9;
                                                                 | label_104:
    0x00018d2c ldr r4, [sp, 0x30]                                |     r4 = *(arg_30h);
    0x00018d2e ldr r5, [sp, 0x7c]                                |     r5 = *(arg_7ch);
    0x00018d30 ldr.w r1, [pc, 0x8c0]                             |     
    0x00018d34 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00018d36 ldr r0, [r5]                                      |     r0 = *(r5);
    0x00018d38 add r1, pc                                        |     r1 = 0x32330;
    0x00018d3a bl 0x44820                                        |     zbx_dsprintf ();
    0x00018d3e str r0, [r5]                                      |     *(r5) = r0;
    0x00018d40 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00018d42 bl 0x3211c                                        |     zbx_regexp_err_msg_free ();
                                                                 | label_133:
    0x00018d46 mov r0, r8                                        |     r0 = r8;
    0x00018d48 blx 0xde30                                        |     fcn_0000de30 ();
    0x00018d4c cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00018d4e bne.w 0x189f6                                     |         goto label_32;
                                                                 |     }
                                                                 | label_134:
    0x00018d52 ldr r0, [sp, 0xb4]                                |     r0 = *(arg_b4h);
    0x00018d54 ldr r3, [r0]                                      |     r3 = *(r0);
    0x00018d56 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00018d58 bne.w 0x18930                                     |         goto label_33;
                                                                 |     }
    0x00018d5c mov.w r5, -1                                      |     r5 = -1;
    0x00018d60 b 0x18944                                         |     goto label_34;
                                                                 | label_87:
    0x00018d62 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x00018d64 movw r1, 0xf65                                    |     r1 = 0xf65;
    0x00018d68 ldr.w r3, [pc, 0x88c]                             |     r3 = *(0x000195f8);
    0x00018d6c ldr.w r0, [pc, 0x88c]                             |     
    0x00018d70 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00018d72 add r3, pc                                        |     r3 += pc;
    0x00018d74 add r0, pc                                        |     r0 = 0x32374;
    0x00018d76 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00018d7a str r0, [r4]                                      |     *(r4) = r0;
    0x00018d7c b.w 0x16e98                                       |     goto label_35;
                                                                 | label_59:
    0x00018db4 ldr r2, [sp, 0x7c]                                |     r2 = *(arg_7ch);
    0x00018db6 movw r1, 0xf0e                                    |     r1 = 0xf0e;
    0x00018dba ldr.w r3, [pc, 0x844]                             |     
    0x00018dbe ldr.w r0, [pc, 0x844]                             |     r0 = *(0x00019604);
    0x00018dc2 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00018dc4 add r3, pc                                        |     r3 = 0x323ca;
    0x00018dc6 add r0, pc                                        |     r0 += pc;
    0x00018dc8 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00018dcc b 0x18abe                                         |     goto label_36;
                                                                 |     do {
    0x00018de2 ldr.w r2, [pc, 0x828]                             |         r2 = *(0x0001960c);
    0x00018de6 add r2, pc                                        |         r2 += pc;
                                                                 | label_124:
    0x00018de8 ldr.w r1, [pc, 0x824]                             |         
    0x00018dec add r1, pc                                        |         r1 = 0x32400;
                                                                 | label_37:
    0x00018dee strd r2, r1, [sp]                                 |         __asm ("strd r2, r1, [sp]");
    0x00018df2 movs r0, 4                                        |         r0 = 4;
    0x00018df4 ldr.w r2, [pc, 0x81c]                             |         
    0x00018df8 ldr.w r1, [pc, 0x81c]                             |         
    0x00018dfc add r2, pc                                        |         r2 = 0x32414;
    0x00018dfe adds r2, 0x7c                                     |         r2 += 0x7c;
    0x00018e00 add r1, pc                                        |         r1 = 0x3241c;
    0x00018e02 bl 0x30d1c                                        |         zbx_zabbix_log ();
    0x00018e06 b.w 0x170fe                                       |         goto label_18;
                                                                 | label_123:
    0x00018e0a cmp r6, 0                                         |         
    0x00018e0c beq 0x18de2                                       |         
                                                                 |     } while (r6 == 0);
    0x00018e0e ldr.w r2, [pc, 0x80c]                             |     
    0x00018e12 mov r1, r6                                        |     r1 = r6;
    0x00018e14 add r2, pc                                        |     r2 = 0x32436;
    0x00018e16 b 0x18dee                                         |     goto label_37;
                                                                 | label_112:
    0x00018e18 ldr.w r3, [pc, 0x804]                             |     
    0x00018e1c ldr r3, [r5, r3]                                  |     r3 = *((r5 + r3));
    0x00018e1e str r3, [sp, 0x70]                                |     *(arg_70h) = r3;
    0x00018e20 ldr r3, [r3]                                      |     r3 = *(0x19620);
    0x00018e22 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00018e24 bgt.w 0x19258                                     |         goto label_138;
                                                                 |     }
                                                                 | label_43:
    0x00018e28 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00018e2a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018e2c bne.w 0x17484                                     |         goto label_38;
                                                                 |     }
    0x00018e30 b.w 0x17488                                       |     goto label_39;
                                                                 | label_132:
    0x00018fbe ldr.w r2, [pc, 0x668]                             |     
    0x00018fc2 movs r0, 4                                        |     r0 = 4;
    0x00018fc4 ldr.w r1, [pc, 0x664]                             |     
    0x00018fc8 strd r8, r6, [sp]                                 |     __asm ("strd r8, r6, [sp]");
    0x00018fcc add r2, pc                                        |     r2 = 0x325fa;
    0x00018fce adds r2, 0x6c                                     |     r2 += 0x6c;
    0x00018fd0 add r1, pc                                        |     r1 = 0x32600;
    0x00018fd2 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00018fd6 b 0x189bc                                         |     goto label_40;
                                                                 | label_137:
    0x00019048 ldr.w r1, [pc, 0x5e8]                             |     r1 = *(0x00019634);
    0x0001904c mov r0, r7                                        |     r0 = r7;
    0x0001904e add r1, pc                                        |     r1 += pc;
    0x00019050 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x00019054 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00019056 bne.w 0x191be                                     |         goto label_139;
                                                                 |     }
    0x0001905a ldr r3, [sp, 0xb0]                                |     r3 = *(arg_b0h);
    0x0001905c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001905e beq.w 0x17262                                     |         goto label_31;
                                                                 |     }
    0x00019062 str r0, [sp, 0xec]                                |     *(arg_ech) = r0;
    0x00019064 b.w 0x16efa                                       |     goto label_9;
                                                                 | label_70:
    0x00019076 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x00019078 movw r1, 0xe5e                                    |     r1 = 0xe5e;
    0x0001907c ldr.w r3, [pc, 0x5b8]                             |     r3 = *(0x00019638);
    0x00019080 ldr.w r0, [pc, 0x5b8]                             |     
    0x00019084 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00019086 add r3, pc                                        |     r3 += pc;
    0x00019088 add r0, pc                                        |     r0 = zbx_vector_uint64_remove;
    0x0001908a bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0001908e str r0, [r4]                                      |     *(r4) = r0;
    0x00019090 b.w 0x16e98                                       |     goto label_35;
                                                                 | label_126:
    0x000190c4 movs r1, 1                                        |     r1 = 1;
    0x000190c6 mov r0, r8                                        |     r0 = r8;
    0x000190c8 blx 0xde6c                                        |     fcn_0000de6c ();
    0x000190cc ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x000190ce ldr r3, [r3]                                      |     r3 = *(r3);
    0x000190d0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000190d2 beq.w 0x18b18                                     |         goto label_41;
                                                                 |     }
    0x000190d6 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x000190d8 ble.w 0x187ca                                     |         goto label_42;
                                                                 |     }
    0x000190dc blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000190e0 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000190e2 bl 0x30b74                                        |     zbx_strerror ();
    0x000190e6 ldr.w r1, [pc, 0x55c]                             |     
    0x000190ea mov r3, r0                                        |     r3 = r0;
    0x000190ec mov r2, r8                                        |     r2 = r8;
    0x000190ee movs r0, 3                                        |     r0 = 3;
    0x000190f0 add r1, pc                                        |     r1 = 0x3273a;
    0x000190f2 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000190f6 b.w 0x187ca                                       |     goto label_42;
                                                                 | label_60:
    0x00019116 ldr r2, [sp, 0x7c]                                |     r2 = *(arg_7ch);
    0x00019118 movw r1, 0xe32                                    |     r1 = 0xe32;
    0x0001911c ldr.w r3, [pc, 0x528]                             |     r3 = *(0x00019648);
    0x00019120 ldr.w r0, [pc, 0x528]                             |     
    0x00019124 ldr r2, [r2]                                      |     r2 = *(r2);
    0x00019126 add r3, pc                                        |     r3 += pc;
    0x00019128 add r0, pc                                        |     r0 = zbx_vector_uint64_nearestindex;
    0x0001912a bl 0x40ed8                                        |     zbx_strdup2 ();
    0x0001912e b 0x18abe                                         |     goto label_36;
                                                                 | label_61:
    0x00019130 ldr r2, [sp, 0x7c]                                |     r2 = *(arg_7ch);
    0x00019132 movw r1, 0xe3d                                    |     r1 = 0xe3d;
    0x00019136 ldr.w r3, [pc, 0x518]                             |     
    0x0001913a ldr.w r0, [pc, 0x518]                             |     r0 = *(0x00019654);
    0x0001913e ldr r2, [r2]                                      |     r2 = *(r2);
    0x00019140 add r3, pc                                        |     r3 = 0x32796;
    0x00019142 add r0, pc                                        |     r0 += pc;
    0x00019144 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00019148 b 0x18abe                                         |     goto label_36;
                                                                 | label_114:
    0x0001915c ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x0001915e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00019160 cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x00019162 ble.w 0x18e28                                     |         goto label_43;
                                                                 |     }
    0x00019166 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00019168 movs r0, 3                                        |     r0 = 3;
    0x0001916a ldr.w r2, [pc, 0x4ec]                             |     
    0x0001916e ldr.w r1, [pc, 0x4ec]                             |     
    0x00019172 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00019174 ldr.w r3, [fp, 0x48]                              |     r3 = *(arg_bp_48h);
    0x00019178 add r2, pc                                        |     r2 = 0x327d6;
    0x0001917a adds r2, 0x48                                     |     r2 += 0x48;
    0x0001917c add r1, pc                                        |     r1 = 0x327de;
    0x0001917e str r3, [sp]                                      |     *(sp) = r3;
    0x00019180 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x00019184 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00019188 b 0x18e28                                         |     goto label_43;
                                                                 | label_139:
    0x000191be ldr.w r1, [pc, 0x4a8]                             |     
    0x000191c2 mov r0, r7                                        |     r0 = r7;
    0x000191c4 add r1, pc                                        |     r1 = 0x32832;
    0x000191c6 blx 0xe3b0                                        |     r0 = fcn_0000e3b0 ();
    0x000191ca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000191cc beq.w 0x18ca0                                     |         goto label_44;
                                                                 |     }
                                                                 | label_136:
    0x000191d0 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x000191d2 movw r1, 0xeb1                                    |     r1 = 0xeb1;
    0x000191d6 ldr.w r3, [pc, 0x494]                             |     
    0x000191da ldr.w r0, [pc, 0x494]                             |     r0 = *(0x00019670);
    0x000191de ldr r2, [r4]                                      |     r2 = *(r4);
    0x000191e0 add r3, pc                                        |     r3 = 0x32852;
    0x000191e2 add r0, pc                                        |     r0 += pc;
    0x000191e4 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x000191e8 str r0, [r4]                                      |     *(r4) = r0;
    0x000191ea b.w 0x16e98                                       |     goto label_35;
                                                                 | label_131:
    0x000191ee blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x000191f2 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000191f4 bl 0x30b74                                        |     zbx_strerror ();
    0x000191f8 ldr.w r1, [pc, 0x478]                             |     r1 = *(0x00019674);
    0x000191fc mov r3, r0                                        |     r3 = r0;
    0x000191fe mov r2, r6                                        |     r2 = r6;
    0x00019200 mov r0, r4                                        |     r0 = r4;
    0x00019202 add r1, pc                                        |     r1 += pc;
    0x00019204 bl 0x44820                                        |     zbx_dsprintf ();
    0x00019208 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x0001920a str r0, [r3]                                      |     *(r3) = r0;
    0x0001920c b.w 0x1892a                                       |     goto label_25;
                                                                 | label_108:
    0x00019210 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x00019212 cmp.w sb, 5                                       |     
    0x00019216 ldr r0, [r3]                                      |     r0 = *(r3);
                                                                 |     if (sb == 5) {
    0x00019218 beq.w 0x19444                                     |         goto label_140;
                                                                 |     }
    0x0001921c ldr.w r2, [pc, 0x458]                             |     
    0x00019220 add r2, pc                                        |     r2 = 0x3289c;
                                                                 | label_53:
    0x00019222 ldr.w r1, [pc, 0x458]                             |     r1 = *(0x0001967c);
    0x00019226 add r1, pc                                        |     r1 += pc;
    0x00019228 bl 0x44820                                        |     zbx_dsprintf ();
    0x0001922c ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x0001922e str r0, [r3]                                      |     *(r3) = r0;
    0x00019230 b.w 0x16e98                                       |     goto label_35;
                                                                 | label_113:
    0x00019234 ldr.w r2, [pc, 0x448]                             |     
    0x00019238 movs r0, 4                                        |     r0 = 4;
    0x0001923a str r7, [sp, 4]                                   |     var_4h = r7;
    0x0001923c ldr.w r1, [pc, 0x444]                             |     
    0x00019240 ldr.w r3, [fp, 0x48]                              |     r3 = *(arg_bp_48h);
    0x00019244 add r2, pc                                        |     r2 = 0x328c8;
    0x00019246 adds r2, 0x48                                     |     r2 += 0x48;
    0x00019248 add r1, pc                                        |     r1 = 0x328d0;
    0x0001924a str r3, [sp]                                      |     *(sp) = r3;
    0x0001924c ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x00019250 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00019254 b.w 0x173cc                                       |     goto label_45;
                                                                 | label_138:
    0x00019258 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001925a movs r0, 4                                        |     r0 = 4;
    0x0001925c ldr.w r2, [pc, 0x428]                             |     r2 = *(0x00019688);
    0x00019260 ldr.w r1, [pc, 0x428]                             |     r1 = *(0x0001968c);
    0x00019264 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00019266 ldr.w r3, [fp, 0x48]                              |     r3 = *(arg_bp_48h);
    0x0001926a add r2, pc                                        |     r2 += pc;
    0x0001926c adds r2, 0x48                                     |     r2 += 0x48;
    0x0001926e add r1, pc                                        |     r1 += pc;
    0x00019270 str r3, [sp]                                      |     *(sp) = r3;
    0x00019272 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x00019276 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x0001927a b 0x18e28                                         |     goto label_43;
                                                                 | label_99:
    0x000192f4 ldr r1, [pc, 0x3a4]                               |     
    0x000192f6 add r1, pc                                        |     r1 = 0x32996;
                                                                 | label_55:
    0x000192f8 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x000192fa movs r2, 0x2f                                     |     r2 = 0x2f;
    0x000192fc ldr r0, [r4]                                      |     r0 = *(r4);
    0x000192fe bl 0x44820                                        |     zbx_dsprintf ();
    0x00019302 ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x00019304 str r0, [r4]                                      |     *(r4) = r0;
    0x00019306 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00019308 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0001930a ble.w 0x18614                                     |         goto label_24;
                                                                 |     }
    0x0001930e ldr.w r8, [pc, 0x390]                             |     r8 = *(0x000196a0);
    0x00019312 mov.w r0, -1                                      |     r0 = -1;
    0x00019316 bl 0x45514                                        |     zbx_result_string ();
    0x0001931a movs r5, 0                                        |     r5 = 0;
    0x0001931c mov r3, r0                                        |     r3 = r0;
    0x0001931e add r8, pc                                        |     r8 += pc;
    0x00019320 mov.w r6, -1                                      |     r6 = -1;
    0x00019324 b.w 0x18990                                       |     goto label_46;
                                                                 | label_102:
    0x00019328 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x0001932a mov r2, r8                                        |     r2 = r8;
    0x0001932c ldr r1, [pc, 0x374]                               |     
    0x0001932e ldr r0, [r4]                                      |     r0 = *(r4);
    0x00019330 add r1, pc                                        |     r1 = zbx_vector_str_destroy;
    0x00019332 bl 0x44820                                        |     zbx_dsprintf ();
    0x00019336 str r0, [r4]                                      |     *(r4) = r0;
    0x00019338 mov r0, r8                                        |     r0 = r8;
    0x0001933a blx 0xde30                                        |     fcn_0000de30 ();
    0x0001933e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00019340 beq.w 0x1860a                                     |         goto label_47;
                                                                 |     }
                                                                 | label_54:
    0x00019344 mov r0, r6                                        |     r0 = r6;
    0x00019346 blx 0xde30                                        |     fcn_0000de30 ();
    0x0001934a ldr r3, [sp, 0x70]                                |     r3 = *(arg_70h);
    0x0001934c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001934e cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00019350 ble.w 0x18614                                     |         goto label_24;
                                                                 |     }
                                                                 | label_122:
    0x00019354 mov.w r0, -1                                      |     r0 = -1;
    0x00019358 bl 0x45514                                        |     zbx_result_string ();
    0x0001935c ldr r2, [pc, 0x348]                               |     
    0x0001935e mov r3, r0                                        |     r3 = r0;
    0x00019360 ldr r1, [pc, 0x348]                               |     
    0x00019362 movs r0, 4                                        |     r0 = 4;
    0x00019364 add r2, pc                                        |     r2 = 0x32a10;
    0x00019366 strd r2, r2, [sp]                                 |     __asm ("strd r2, r2, [sp]");
    0x0001936a add r1, pc                                        |     r1 = 0x32a1a;
    0x0001936c ldr r2, [pc, 0x340]                               |     
    0x0001936e add r2, pc                                        |     r2 = 0x32a22;
    0x00019370 adds r2, 0x6c                                     |     r2 += 0x6c;
    0x00019372 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00019376 b.w 0x18614                                       |     goto label_24;
                                                                 | label_75:
    0x0001937a ldrb.w r1, [fp, 0x1d]                             |     r1 = *(arg_1dh_2);
    0x0001937e b.w 0x16df4                                       |     goto label_48;
                                                                 | label_96:
    0x00019382 ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x00019384 movs r1, 0x86                                     |     r1 = 0x86;
    0x00019386 ldr r3, [pc, 0x32c]                               |     
    0x00019388 ldr r0, [pc, 0x32c]                               |     
    0x0001938a ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001938c add r3, pc                                        |     r3 = 0x32a46;
    0x0001938e add r0, pc                                        |     r0 = 0x32a4a;
    0x00019390 bl 0x40ed8                                        |     zbx_strdup2 ();
    0x00019394 b.w 0x18608                                       |     goto label_49;
                                                                 | label_95:
    0x00019398 ldr r4, [pc, 0x320]                               |     
    0x0001939a movw r3, 0x777                                    |     r3 = 0x777;
    0x0001939e str r3, [sp]                                      |     *(sp) = r3;
    0x000193a0 ldr r1, [pc, 0x31c]                               |     
    0x000193a2 ldr r0, [pc, 0x320]                               |     
    0x000193a4 add r4, pc                                        |     r4 = 0x32a64;
    0x000193a6 ldr r3, [pc, 0x320]                               |     
    0x000193a8 adds r4, 0x8c                                     |     r4 += 0x8c;
    0x000193aa mov r2, r4                                        |     r2 = r4;
    0x000193ac add r1, pc                                        |     r1 = zbx_vector_str_append_ptr;
    0x000193ae add r0, pc                                        |     r0 = 0x32a78;
    0x000193b0 add r3, pc                                        |     r3 = 0x32a7e;
    0x000193b2 bl 0x43cd4                                        |     zbx_error ();
    0x000193b6 bl 0x356ac                                        |     zbx_backtrace ();
    0x000193ba mov r2, r4                                        |     r2 = r4;
    0x000193bc ldr r1, [pc, 0x30c]                               |     
    0x000193be ldr r4, [sp, 0x7c]                                |     r4 = *(arg_7ch);
    0x000193c0 ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x000193c2 add r1, pc                                        |     r1 = 0x32a92;
    0x000193c4 ldr r0, [r4]                                      |     r0 = *(0x32a64);
    0x000193c6 bl 0x44820                                        |     zbx_dsprintf ();
    0x000193ca str r0, [r4]                                      |     *(r4) = r0;
    0x000193cc b.w 0x174ea                                       |     void (*0x174ea)() ();
                                                                 | label_135:
    0x000193d0 ldr r1, [pc, 0x2fc]                               |     
    0x000193d2 mov r3, r8                                        |     r3 = r8;
    0x000193d4 mov r2, r6                                        |     r2 = r6;
    0x000193d6 movs r0, 3                                        |     r0 = 3;
    0x000193d8 add r1, pc                                        |     r1 = 0x32aac;
    0x000193da bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000193de b.w 0x18b1e                                       |     goto label_50;
                                                                 | label_117:
    0x00019416 ldr r1, [pc, 0x2c0]                               |     
    0x00019418 movs r0, 3                                        |     r0 = 3;
    0x0001941a ldr r2, [r7]                                      |     r2 = *(r7);
    0x0001941c add r1, pc                                        |     r1 = 0x32afa;
    0x0001941e bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x00019422 b.w 0x17480                                       |     goto label_51;
                                                                 | label_116:
    0x00019426 strd r3, r2, [sp]                                 |     __asm ("strd r3, r2, [sp]");
    0x0001942a mov r0, r7                                        |     r0 = r7;
    0x0001942c ldr r3, [pc, 0x2ac]                               |     
    0x0001942e mov r2, r4                                        |     r2 = r4;
    0x00019430 ldr r1, [sp, 0xb8]                                |     r1 = *(arg_b8h);
    0x00019432 add r3, pc                                        |     r3 = 0x32b12;
    0x00019434 bl 0x43fb4                                        |     zbx_snprintf_alloc ();
    0x00019438 ldr.w r3, [r8]                                    |     r3 = *(r8);
    0x0001943c str.w r3, [fp, 0x18]                              |     __asm ("str.w r3, [arg_18h]");
    0x00019440 b.w 0x17476                                       |     goto label_52;
                                                                 | label_140:
    0x00019444 ldr r2, [pc, 0x298]                               |     
    0x00019446 add r2, pc                                        |     r2 = 0x32b2a;
    0x00019448 b 0x19222                                         |     goto label_53;
                                                                 | label_101:
    0x00019490 ldr r7, [sp, 0x7c]                                |     r7 = *(arg_7ch);
    0x00019492 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00019496 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00019498 ldr r4, [r7]                                      |     r4 = *(r7);
    0x0001949a bl 0x30b74                                        |     zbx_strerror ();
    0x0001949e ldr r1, [pc, 0x244]                               |     
    0x000194a0 mov r2, r0                                        |     r2 = r0;
    0x000194a2 mov r0, r4                                        |     r0 = r4;
    0x000194a4 add r1, pc                                        |     r1 = 0x32b8e;
    0x000194a6 bl 0x44820                                        |     zbx_dsprintf ();
    0x000194aa str r0, [r7]                                      |     *(r7) = r0;
    0x000194ac mov r0, r8                                        |     r0 = r8;
    0x000194ae blx 0xde30                                        |     fcn_0000de30 ();
    0x000194b2 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000194b4 bne.w 0x19344                                     |         goto label_54;
                                                                 |     }
    0x000194b8 b.w 0x1860a                                       |     goto label_47;
                                                                 | label_121:
    0x000194cc mov.w r0, -1                                      |     r0 = -1;
    0x000194d0 bl 0x45514                                        |     zbx_result_string ();
    0x000194d4 ldr r1, [pc, 0x210]                               |     
    0x000194d6 mov r3, r0                                        |     r3 = r0;
    0x000194d8 mov r2, r4                                        |     r2 = r4;
    0x000194da movs r0, 4                                        |     r0 = 4;
    0x000194dc add r1, pc                                        |     r1 = 0x32bc8;
    0x000194de strd r1, r1, [sp]                                 |     __asm ("strd r1, r1, [sp]");
    0x000194e2 ldr r1, [pc, 0x208]                               |     
    0x000194e4 add r1, pc                                        |     r1 = 0x32bd6;
    0x000194e6 bl 0x30d1c                                        |     zbx_zabbix_log ();
    0x000194ea ldr r1, [pc, 0x204]                               |     
    0x000194ec add r1, pc                                        |     r1 = 0x32be2;
    0x000194ee b 0x192f8                                         |     goto label_55;
                                                                 | label_110:
    0x000194f0 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x000194f2 mov r2, r4                                        |     r2 = r4;
    0x000194f4 ldr r1, [pc, 0x1fc]                               |     
    0x000194f6 ldr r0, [r3]                                      |     r0 = *(r3);
    0x000194f8 add r1, pc                                        |     r1 = 0x32bf0;
    0x000194fa bl 0x44820                                        |     zbx_dsprintf ();
    0x000194fe b.w 0x18abe                                       |     goto label_36;
                                                                 | label_86:
    0x00019502 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x00019504 cmp.w sl, 8                                       |     
    0x00019508 ldr r0, [r3]                                      |     r0 = *(r3);
                                                                 |     if (sl == 8) {
    0x0001950a beq 0x195c0                                       |         goto label_141;
                                                                 |     }
    0x0001950c ldr r2, [pc, 0x1e8]                               |     
    0x0001950e add r2, pc                                        |     r2 = 0x32c0a;
                                                                 | label_58:
    0x00019510 ldr r1, [pc, 0x1e8]                               |     
    0x00019512 add r1, pc                                        |     r1 = 0x32c12;
    0x00019514 bl 0x44820                                        |     zbx_dsprintf ();
    0x00019518 ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x0001951a str r0, [r3]                                      |     *(r3) = r0;
    0x0001951c b.w 0x16e98                                       |     goto label_35;
                                                                 | label_129:
    0x00019520 ldr r3, [sp, 0xb4]                                |     r3 = *(arg_b4h);
    0x00019522 ldr.w fp, [sp, 0x38]                              |     fp = *(arg_38h);
    0x00019526 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00019528 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001952a bne.w 0x18a04                                     |         goto label_56;
                                                                 |     }
    0x0001952e b.w 0x18938                                       |     goto label_27;
                                                                 | label_125:
    0x0001954e ldr r3, [sp, 0x7c]                                |     r3 = *(arg_7ch);
    0x00019550 ldr r5, [r3]                                      |     r5 = *(r3);
    0x00019552 blx 0xe3d4                                        |     r0 = fcn_0000e3d4 ();
    0x00019556 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00019558 bl 0x30b74                                        |     zbx_strerror ();
    0x0001955c ldr r1, [pc, 0x1a0]                               |     
    0x0001955e mov r3, r0                                        |     r3 = r0;
    0x00019560 mov r2, r8                                        |     r2 = r8;
    0x00019562 mov r0, r5                                        |     r0 = r5;
    0x00019564 add r1, pc                                        |     r1 = 0x32c68;
    0x00019566 bl 0x44820                                        |     zbx_dsprintf ();
                                                                 |     do {
    0x0001956a ldr r3, [sp, 0x7c]                                |         r3 = *(arg_7ch);
    0x0001956c mov.w r5, -1                                      |         r5 = -1;
    0x00019570 str r0, [r3]                                      |         *(r3) = r0;
    0x00019572 b.w 0x18b20                                       |         goto label_57;
                                                                 | label_105:
    0x000195a2 ldr r3, [sp, 0x7c]                                |         r3 = *(arg_7ch);
    0x000195a4 ldr r5, [r3]                                      |         r5 = *(r3);
    0x000195a6 blx 0xe3d4                                        |         r0 = fcn_0000e3d4 ();
    0x000195aa ldr r0, [r0]                                      |         r0 = *(r0);
    0x000195ac bl 0x30b74                                        |         zbx_strerror ();
    0x000195b0 ldr r1, [pc, 0x150]                               |         
    0x000195b2 mov r3, r0                                        |         r3 = r0;
    0x000195b4 mov r2, r8                                        |         r2 = r8;
    0x000195b6 mov r0, r5                                        |         r0 = r5;
    0x000195b8 add r1, pc                                        |         r1 = 0x32cc0;
    0x000195ba bl 0x44820                                        |         zbx_dsprintf ();
    0x000195be b 0x1956a                                         |         
                                                                 |     } while (1);
                                                                 | label_141:
    0x000195c0 ldr r2, [pc, 0x144]                               |     
    0x000195c2 add r2, pc                                        |     r2 = 0x32cce;
    0x000195c4 b 0x19510                                         |     goto label_58;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1c638 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.process ()                                           | void process (int16_t arg_24h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_64h, int16_t arg_7ch, int16_t arg_87ch, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0001c638 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001c63c mov r4, r1                                            |     r4 = r1;
    0x0001c63e ldr.w r6, [pc, 0x448]                                 |     
    0x0001c642 subw sp, sp, 0x884                                    |     __asm ("subw sp, sp, 0x884");
    0x0001c646 mov r5, r0                                            |     r5 = r0;
    0x0001c648 ldr.w r1, [pc, 0x440]                                 |     r1 = *(0x0001ca8c);
    0x0001c64c ldr.w r3, [pc, 0x440]                                 |     
    0x0001c650 add r6, pc                                            |     r6 = 0x390de;
    0x0001c652 str r6, [sp, 0x14]                                    |     var_14h = r6;
    0x0001c654 add r6, sp, 0x40                                      |     r6 += arg_40h;
    0x0001c656 add r1, pc                                            |     r1 += pc;
    0x0001c658 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0001c65c ldr r3, [r1, r3]                                      |     r3 = *((r1 + r3));
    0x0001c65e ldr r3, [r3]                                          |     r3 = *(0x1ca90);
    0x0001c660 str.w r3, [sp, 0x87c]                                 |     __asm ("str.w r3, [arg_87ch]");
    0x0001c664 mov.w r3, 0                                           |     r3 = 0;
    0x0001c668 movs r3, 0                                            |     r3 = 0;
    0x0001c66a strd r3, r3, [r6]                                     |     __asm ("strd r3, r3, [r6]");
    0x0001c66e str r3, [r6, 8]                                       |     *((r6 + 8)) = r3;
    0x0001c670 strd r3, r3, [r6, 0x18]                               |     __asm ("strd r3, r3, [r6, 0x18]");
    0x0001c674 lsls r3, r4, 0x1d                                     |     r3 = r4 << 0x1d;
    0x0001c676 str r2, [sp, 0x10]                                    |     var_10h = r2;
    0x0001c678 vstr d16, [r6, 0x10]                                  |     __asm ("vstr d16, [r6, 0x10]");
                                                                     |     if (r3 < r4) {
    0x0001c67c bmi.w 0x1c89e                                         |         goto label_9;
                                                                     |     }
                                                                     | label_3:
    0x0001c680 mov r1, r6                                            |     r1 = r6;
    0x0001c682 bl 0x1c384                                            |     r0 = parse_item_key ();
    0x0001c686 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001c688 bne.w 0x1ca0c                                         |         goto label_10;
                                                                     |     }
    0x0001c68c lsls r7, r4, 0x1f                                     |     r7 = r4 << 0x1f;
                                                                     |     if (r7 >= r4) {
    0x0001c68e bpl 0x1c758                                           |         goto label_11;
                                                                     |     }
    0x0001c690 ldr.w r3, [pc, 0x400]                                 |     
    0x0001c694 add r3, pc                                            |     r3 = 0x3912c;
    0x0001c696 ldr r5, [r3, 4]                                       |     r5 = *(0x39130);
    0x0001c698 ldr r0, [r5]                                          |     r0 = *(0x39130);
    0x0001c69a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001c69c beq 0x1c780                                           |         goto label_12;
                                                                     |     }
    0x0001c69e ldr r7, [r6]                                          |     r7 = *(r6);
    0x0001c6a0 b 0x1c6aa                                             |     
                                                                     |     while (r0 != 0) {
    0x0001c6a2 ldr r0, [r5, 0x10]!                                   |         r0 = *((r5 += 0x10));
    0x0001c6a6 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001c6a8 beq 0x1c780                                           |             goto label_12;
                                                                     |         }
    0x0001c6aa mov r1, r7                                            |         r1 = r7;
    0x0001c6ac blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001c6b0 cmp r0, 0                                             |         
    0x0001c6b2 bne 0x1c6a2                                           |         
                                                                     |     }
                                                                     | label_2:
    0x0001c6b4 ldr r3, [r5]                                          |     r3 = *(r5);
    0x0001c6b6 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0001c6b8 beq.w 0x1c9c0                                         |         goto label_13;
                                                                     |     }
    0x0001c6bc lsls r4, r4, 0x1e                                     |     r4 <<= 0x1e;
    0x0001c6be ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
                                                                     |     if (r4 < r4) {
    0x0001c6c0 bpl 0x1c6ca                                           |         
    0x0001c6c2 ands r2, r3, 2                                        |         r2 = r3 & 2;
                                                                     |         if (r2 == r3) {
    0x0001c6c6 beq.w 0x1c97e                                         |             goto label_14;
                                                                     |         }
                                                                     |     }
    0x0001c6ca ands r2, r3, 1                                        |     r2 = r3 & 1;
                                                                     |     if (r2 == r3) {
    0x0001c6ce beq 0x1c7a8                                           |         goto label_15;
                                                                     |     }
    0x0001c6d0 lsls r1, r3, 0x1d                                     |     r1 = r3 << 0x1d;
                                                                     |     if (r1 >= r3) {
    0x0001c6d2 bpl 0x1c7d2                                           |         goto label_4;
                                                                     |     }
    0x0001c6d4 movs r3, 0                                            |     r3 = 0;
    0x0001c6d6 ldr r2, [r5, 0xc]                                     |     r2 = *((r5 + 0xc));
    0x0001c6d8 str r3, [sp, 0x28]                                    |     *(arg_28h) = r3;
    0x0001c6da add r7, sp, 0x28                                      |     r7 += arg_28h;
    0x0001c6dc str r3, [sp, 0x2c]                                    |     *(arg_2ch) = r3;
    0x0001c6de add.w fp, sp, 0x2c                                    |     
    0x0001c6e2 str r3, [sp, 0x30]                                    |     *(arg_30h) = r3;
    0x0001c6e4 add.w sb, sp, 0x30                                    |     sb += arg_30h;
    0x0001c6e8 ldr r3, [pc, 0x3ac]                                   |     
    0x0001c6ea mov r8, r2                                            |     r8 = r2;
    0x0001c6ec str r2, [sp, 0x18]                                    |     var_18h = r2;
    0x0001c6ee str r5, [sp, 0x24]                                    |     *(arg_24h) = r5;
    0x0001c6f0 add r3, pc                                            |     r3 = 0x3918c;
    0x0001c6f2 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001c6f4 add r3, sp, 0x64                                      |     r3 += arg_64h;
    0x0001c6f6 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001c6f8 b 0x1c71a                                             |     
                                                                     |     while (r3 == 0) {
    0x0001c6fa ldrb r3, [r4]                                         |         r3 = *(r4);
    0x0001c6fc cmp r3, 0x30                                          |         
                                                                     |         if (r3 == 0x30) {
    0x0001c6fe beq 0x1c74a                                           |             goto label_16;
                                                                     |         }
                                                                     | label_0:
    0x0001c700 sub.w r2, r3, 0x31                                    |         r2 = r3 - 0x31;
    0x0001c704 cmp r2, 8                                             |         
                                                                     |         if (r2 > 8) {
    0x0001c706 bhi.w 0x1c816                                         |             goto label_17;
                                                                     |         }
    0x0001c70a ldr r2, [r6, 4]                                       |         r2 = *((r6 + 4));
    0x0001c70c sub.w r1, r3, 0x30                                    |         r1 = r3 - 0x30;
    0x0001c710 cmp r1, r2                                            |         
                                                                     |         if (r1 <= r2) {
    0x0001c712 ble.w 0x1c834                                         |             goto label_18;
                                                                     |         }
                                                                     | label_1:
    0x0001c716 add.w r8, r4, 1                                       |         r8 = r4 + 1;
    0x0001c71a movs r1, 0x24                                         |         r1 = 0x24;
    0x0001c71c mov r0, r8                                            |         r0 = r8;
    0x0001c71e blx 0xdcd4                                            |         r0 = fcn_0000dcd4 ();
    0x0001c722 mov r4, r0                                            |         r4 = r0;
    0x0001c724 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001c726 beq.w 0x1c8a4                                         |             goto label_19;
                                                                     |         }
    0x0001c72a sub.w r3, r4, r8                                      |         r3 = r4 - r8;
    0x0001c72e mov r2, sb                                            |         r2 = sb;
    0x0001c730 str r3, [sp]                                          |         *(sp) = r3;
    0x0001c732 mov r1, fp                                            |         r1 = fp;
    0x0001c734 mov r3, r8                                            |         r3 = r8;
    0x0001c736 mov r0, r7                                            |         r0 = r7;
    0x0001c738 bl 0x440f8                                            |         zbx_strncpy_alloc ();
    0x0001c73c ldrb r3, [r4, 1]                                      |         r3 = *((r4 + 1));
    0x0001c73e cmp r3, 0                                             |         
    0x0001c740 beq 0x1c6fa                                           |         
                                                                     |     }
    0x0001c742 cmp r3, 0x30                                          |     
    0x0001c744 add.w r4, r4, 1                                       |     r4++;
                                                                     |     if (r3 != 0x30) {
    0x0001c748 bne 0x1c700                                           |         goto label_0;
                                                                     |     }
                                                                     | label_16:
    0x0001c74a ldr r3, [sp, 0x18]                                    |     r3 = var_18h;
    0x0001c74c mov r2, sb                                            |     r2 = sb;
    0x0001c74e mov r1, fp                                            |     r1 = fp;
    0x0001c750 mov r0, r7                                            |     r0 = r7;
    0x0001c752 bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0001c756 b 0x1c716                                             |     goto label_1;
                                                                     | label_11:
    0x0001c758 mov r0, r6                                            |     r0 = r6;
    0x0001c75a bl 0x1c0d4                                            |     r0 = check_request_access_rules ();
    0x0001c75e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001c760 bne.w 0x1ca2c                                         |         goto label_20;
                                                                     |     }
    0x0001c764 ldr r3, [pc, 0x334]                                   |     
    0x0001c766 ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0001c768 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0001c76a ldr r3, [r3]                                          |     r3 = *(0x1ca9c);
    0x0001c76c cmp r3, 1                                             |     
                                                                     |     if (r3 != 1) {
    0x0001c76e beq 0x1c780                                           |         
    0x0001c770 ldr r1, [pc, 0x32c]                                   |         
    0x0001c772 ldr r0, [r6]                                          |         r0 = *(r6);
    0x0001c774 add r1, pc                                            |         r1 = 0x39218;
    0x0001c776 blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001c77a cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001c77c beq.w 0x1c9a0                                         |             goto label_21;
                                                                     |         }
                                                                     |     }
                                                                     | label_12:
    0x0001c780 ldr r3, [pc, 0x320]                                   |     
    0x0001c782 add r3, pc                                            |     r3 = 0x3922a;
    0x0001c784 ldr r5, [r3]                                          |     r5 = *(0x3922a);
    0x0001c786 ldr r0, [r5]                                          |     r0 = *(0x3922a);
    0x0001c788 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001c78a beq.w 0x1c9c0                                         |         goto label_13;
                                                                     |     }
    0x0001c78e ldr r7, [r6]                                          |     r7 = *(r6);
    0x0001c790 b 0x1c79c                                             |     
                                                                     |     while (r0 != 0) {
    0x0001c792 ldr r0, [r5, 0x10]!                                   |         r0 = *((r5 += 0x10));
    0x0001c796 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001c798 beq.w 0x1c9c0                                         |             goto label_13;
                                                                     |         }
    0x0001c79c mov r1, r7                                            |         r1 = r7;
    0x0001c79e blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001c7a2 cmp r0, 0                                             |         
    0x0001c7a4 bne 0x1c792                                           |         
                                                                     |     }
    0x0001c7a6 b 0x1c6b4                                             |     goto label_2;
                                                                     | label_15:
    0x0001c7a8 ldr r4, [r6, 4]                                       |     r4 = *((r6 + 4));
    0x0001c7aa cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0001c7ac bne.w 0x1ca58                                         |         goto label_22;
                                                                     |     }
    0x0001c7b0 lsls r0, r3, 0x1d                                     |     r0 = r3 << 0x1d;
                                                                     |     if (r0 < r3) {
    0x0001c7b2 bpl 0x1c7d2                                           |         
    0x0001c7b4 mov r0, r6                                            |         r0 = r6;
    0x0001c7b6 bl 0x1b5d0                                            |         fcn_0001b5d0 (r0);
    0x0001c7ba ldr r0, [pc, 0x2ec]                                   |         
    0x0001c7bc movw r1, 0x4b2                                        |         r1 = 0x4b2;
    0x0001c7c0 ldr r3, [r5, 0xc]                                     |         r3 = *((r5 + 0xc));
    0x0001c7c2 mov r2, r4                                            |         r2 = r4;
    0x0001c7c4 add r0, pc                                            |         r0 = 0x39272;
    0x0001c7c6 bl 0x40ed8                                            |         r0 = zbx_strdup2 ();
    0x0001c7ca mov r1, r0                                            |         r1 = r0;
    0x0001c7cc mov r0, r6                                            |         r0 = r6;
    0x0001c7ce bl 0x1b658                                            |         fcn_0001b658 (r0, r1);
                                                                     |     }
                                                                     | label_4:
    0x0001c7d2 ldr r3, [r5, 8]                                       |     r3 = *((r5 + 8));
    0x0001c7d4 mov r0, r6                                            |     r0 = r6;
    0x0001c7d6 ldr r1, [sp, 0x10]                                    |     r1 = var_10h;
    0x0001c7d8 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0001c7da mov r4, r0                                            |     r4 = r0;
    0x0001c7dc cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001c7de bne.w 0x1c9e0                                         |         goto label_23;
                                                                     |     }
                                                                     | label_7:
    0x0001c7e2 ldr r0, [r6]                                          |     r0 = *(r6);
                                                                     |     if (r0 != 0) {
    0x0001c7e4 cbz r0, 0x1c7ee                                       |         
    0x0001c7e6 blx 0xde30                                            |         fcn_0000de30 ();
    0x0001c7ea movs r3, 0                                            |         r3 = 0;
    0x0001c7ec str r3, [r6]                                          |         *(r6) = r3;
                                                                     |     }
    0x0001c7ee mov r0, r6                                            |     r0 = r6;
    0x0001c7f0 bl 0x1b5d0                                            |     fcn_0001b5d0 (r0);
    0x0001c7f4 ldr r2, [pc, 0x2b4]                                   |     
    0x0001c7f6 ldr r3, [pc, 0x298]                                   |     r3 = *(0x1ca92);
    0x0001c7f8 add r2, pc                                            |     r2 = 0x392a8;
    0x0001c7fa ldr r3, [r2, r3]                                      |     r3 = *(0x392a8);
    0x0001c7fc ldr r2, [r3]                                          |     r2 = *(0x392a8);
    0x0001c7fe ldr.w r3, [sp, 0x87c]                                 |     r3 = *(arg_87ch);
    0x0001c802 eors r2, r3                                           |     r2 ^= r3;
    0x0001c804 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0001c808 bne.w 0x1ca84                                         |         goto label_24;
                                                                     |     }
    0x0001c80c mov r0, r4                                            |     r0 = r4;
    0x0001c80e addw sp, sp, 0x884                                    |     __asm ("addw sp, var_0h");
    0x0001c812 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_17:
    0x0001c816 cmp r3, 0x24                                          |     
                                                                     |     if (r3 != 0x24) {
    0x0001c818 beq 0x1c828                                           |         
    0x0001c81a movs r3, 0x24                                         |         r3 = 0x24;
    0x0001c81c mov r2, sb                                            |         r2 = sb;
    0x0001c81e mov r1, fp                                            |         r1 = fp;
    0x0001c820 mov r0, r7                                            |         r0 = r7;
    0x0001c822 bl 0x44268                                            |         zbx_chrcpy_alloc ();
    0x0001c826 ldrb r3, [r4]                                         |         r3 = *(r4);
                                                                     |     }
    0x0001c828 mov r2, sb                                            |     r2 = sb;
    0x0001c82a mov r1, fp                                            |     r1 = fp;
    0x0001c82c mov r0, r7                                            |     r0 = r7;
    0x0001c82e bl 0x44268                                            |     zbx_chrcpy_alloc ();
    0x0001c832 b 0x1c716                                             |     goto label_1;
                                                                     | label_18:
    0x0001c834 ldr r2, [r6, 8]                                       |     r2 = *((r6 + 8));
    0x0001c836 add.w r3, r3, 0x40000000                              |     r3 += 0x40000000;
    0x0001c83a subs r3, 0x31                                         |     r3 -= 0x31;
    0x0001c83c ldr.w ip, [sp, 0x1c]                                  |     ip = var_1ch;
    0x0001c840 add.w r8, sp, 0x34                                    |     r8 += arg_34h;
    0x0001c844 ldr r5, [sp, 0xc]                                     |     r5 = var_ch;
    0x0001c846 ldr.w sl, [r2, r3, lsl 2]                             |     offset_0 = r3 << 2;
                                                                     |     sl = *((r2 + offset_0));
    0x0001c84a add r2, sp, 0x38                                      |     r2 += arg_38h;
    0x0001c84c mov r1, r2                                            |     r1 = r2;
    0x0001c84e str r2, [sp, 8]                                       |     var_8h = r2;
    0x0001c850 movs r2, 0x80                                         |     r2 = 0x80;
    0x0001c852 movs r3, 0                                            |     r3 = 0;
    0x0001c854 str r2, [r1]                                          |     *(r1) = r2;
    0x0001c856 add r2, sp, 0x3c                                      |     r2 += arg_3ch;
    0x0001c858 str.w r3, [r8]                                        |     __asm ("str.w r3, [r8]");
    0x0001c85c str r2, [sp, 0x20]                                    |     var_20h = r2;
    0x0001c85e str r3, [sp, 0x3c]                                    |     *(arg_3ch) = r3;
    0x0001c860 ldm.w ip!, {r0, r1, r2, r3}                           |     r0 = *(ip!);
                                                                     |     r1 = *((ip! + 4));
                                                                     |     r2 = *((ip! + 8));
                                                                     |     r3 = *((ip! + 12));
    0x0001c864 ldr.w lr, [pc, 0x248]                                 |     lr = *(0x1cab0);
    0x0001c868 stm r5!, {r0, r1, r2, r3}                             |     *(r5!) = r0;
                                                                     |     *((r5! + 4)) = r1;
                                                                     |     *((r5! + 8)) = r2;
                                                                     |     *((r5! + 12)) = r3;
    0x0001c86a ldm.w ip, {r0, r1}                                    |     r0 = *(ip);
                                                                     |     r1 = *((ip + 4));
    0x0001c86e ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0001c870 stm.w r5, {r0, r1}                                    |     *(r5) = r0;
                                                                     |     *((r5 + 4)) = r1;
    0x0001c874 ldr.w r3, [r3, lr]                                    |     r3 = *((r3 + lr));
    0x0001c878 ldr r3, [r3]                                          |     r3 = *(r3);
                                                                     |     if (r3 != 0) {
    0x0001c87a cbnz r3, 0x1c890                                      |         goto label_25;
                                                                     |     }
    0x0001c87c ldr r5, [sp, 0xc]                                     |     r5 = var_ch;
    0x0001c87e movs r1, 0x5c                                         |     r1 = 0x5c;
                                                                     |     do {
    0x0001c880 mov r0, sl                                            |         r0 = sl;
    0x0001c882 blx 0xdcd4                                            |         r0 = fcn_0000dcd4 ();
                                                                     |         if (r0 != 0) {
    0x0001c886 cbnz r0, 0x1c8c2                                      |             goto label_26;
                                                                     |         }
    0x0001c888 ldrb r1, [r5, 1]!                                     |         r1 = *((r5 += 1));
    0x0001c88c cmp r1, 0                                             |         
    0x0001c88e bne 0x1c880                                           |         
                                                                     |     } while (r1 != 0);
                                                                     | label_25:
    0x0001c890 mov r3, sl                                            |     r3 = sl;
    0x0001c892 mov r2, sb                                            |     r2 = sb;
    0x0001c894 mov r1, fp                                            |     r1 = fp;
    0x0001c896 mov r0, r7                                            |     r0 = r7;
    0x0001c898 bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0001c89c b 0x1c716                                             |     goto label_1;
                                                                     | label_9:
    0x0001c89e bl 0x303a4                                            |     zbx_alias_get ();
    0x0001c8a2 b 0x1c680                                             |     goto label_3;
                                                                     | label_19:
    0x0001c8a4 mov r1, fp                                            |     r1 = fp;
    0x0001c8a6 mov r3, r8                                            |     r3 = r8;
    0x0001c8a8 mov r2, sb                                            |     r2 = sb;
    0x0001c8aa mov r0, r7                                            |     r0 = r7;
    0x0001c8ac ldr r5, [sp, 0x24]                                    |     r5 = *(arg_24h);
    0x0001c8ae bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0001c8b2 mov r0, r6                                            |     r0 = r6;
    0x0001c8b4 bl 0x1b5d0                                            |     fcn_0001b5d0 (r0);
    0x0001c8b8 ldr r1, [r7]                                          |     r1 = *(r7);
    0x0001c8ba mov r0, r6                                            |     r0 = r6;
    0x0001c8bc bl 0x1b658                                            |     fcn_0001b658 (r0, r1);
    0x0001c8c0 b 0x1c7d2                                             |     goto label_4;
                                                                     | label_26:
    0x0001c8c2 ldr r0, [pc, 0x1f0]                                   |     
    0x0001c8c4 movs r3, 0x80                                         |     r3 = 0x80;
    0x0001c8c6 ldr.w sb, [pc, 0x1f0]                                 |     sb = *(0x0001cab8);
    0x0001c8ca movs r2, 0                                            |     r2 = 0;
    0x0001c8cc ldr.w sl, [pc, 0x1ec]                                 |     
    0x0001c8d0 movw r1, 0x404                                        |     r1 = 0x404;
    0x0001c8d4 add r0, pc                                            |     r0 = 0x3938e;
    0x0001c8d6 movs r4, 0x5c                                         |     r4 = 0x5c;
    0x0001c8d8 bl 0x40dd8                                            |     zbx_malloc2 ();
    0x0001c8dc ldr r5, [sp, 0xc]                                     |     r5 = var_ch;
    0x0001c8de add sb, pc                                            |     sb += pc;
    0x0001c8e0 ldr.w fp, [sp, 0x20]                                  |     fp = var_20h;
    0x0001c8e4 add sl, pc                                            |     sl = 0x393a4;
    0x0001c8e6 str.w r0, [r8]                                        |     __asm ("str.w r0, [r8]");
                                                                     |     do {
                                                                     | label_5:
    0x0001c8ea blx 0xe110                                            |         r0 = fcn_0000e110 ();
    0x0001c8ee ldr r3, [r0]                                          |         r3 = *(r0);
    0x0001c8f0 ldrh.w r3, [r3, r4, lsl 1]                            |         offset_1 = r4 << 1;
                                                                     |         r3 = *((r3 + offset_1));
    0x0001c8f4 lsls r2, r3, 0x11                                     |         r2 = r3 << 0x11;
                                                                     |         if (r2 >= r3) {
    0x0001c8f6 bpl 0x1c91e                                           |             goto label_27;
                                                                     |         }
    0x0001c8f8 mov r3, r4                                            |         r3 = r4;
    0x0001c8fa ldr r1, [sp, 8]                                       |         r1 = var_8h;
    0x0001c8fc mov r2, fp                                            |         r2 = fp;
    0x0001c8fe mov r0, r8                                            |         r0 = r8;
    0x0001c900 bl 0x44268                                            |         zbx_chrcpy_alloc ();
    0x0001c904 ldrb r4, [r5, 1]!                                     |         r4 = *((r5 += 1));
                                                                     |         if (r4 == 0) {
    0x0001c908 cbz r4, 0x1c934                                       |             goto label_28;
                                                                     |         }
                                                                     | label_6:
    0x0001c90a ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0001c90c cmp r5, r3                                            |         
    0x0001c90e beq 0x1c8ea                                           |         
                                                                     |     } while (r5 == r3);
    0x0001c910 ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0001c912 mov r3, sl                                            |     r3 = sl;
    0x0001c914 mov r2, fp                                            |     r2 = fp;
    0x0001c916 mov r0, r8                                            |     r0 = r8;
    0x0001c918 bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0001c91c b 0x1c8ea                                             |     goto label_5;
                                                                     | label_27:
    0x0001c91e str r4, [sp]                                          |     *(sp) = r4;
    0x0001c920 mov r3, sb                                            |     r3 = sb;
    0x0001c922 ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0001c924 mov r2, fp                                            |     r2 = fp;
    0x0001c926 mov r0, r8                                            |     r0 = r8;
    0x0001c928 bl 0x43fb4                                            |     zbx_snprintf_alloc ();
    0x0001c92c ldrb r4, [r5, 1]!                                     |     r4 = *((r5 += 1));
    0x0001c930 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0001c932 bne 0x1c90a                                           |         goto label_6;
                                                                     |     }
                                                                     | label_28:
    0x0001c934 ldr r2, [pc, 0x188]                                   |     
    0x0001c936 add r4, sp, 0x7c                                      |     r4 += arg_7ch;
    0x0001c938 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0001c93c mov.w r1, 0x800                                       |     r1 = 0x800;
    0x0001c940 mov r0, r4                                            |     r0 = r4;
    0x0001c942 add r2, pc                                            |     r2 = 0x39406;
    0x0001c944 bl 0x43f38                                            |     zbx_snprintf ();
    0x0001c948 ldr.w r0, [r8]                                        |     r0 = *(r8);
                                                                     |     if (r0 != 0) {
    0x0001c94c cbz r0, 0x1c952                                       |         
    0x0001c94e blx 0xde30                                            |         fcn_0000de30 ();
                                                                     |     }
    0x0001c952 ldr r0, [r7]                                          |     r0 = *(r7);
                                                                     |     if (r0 != 0) {
    0x0001c954 cbz r0, 0x1c95e                                       |         
    0x0001c956 blx 0xde30                                            |         fcn_0000de30 ();
    0x0001c95a movs r3, 0                                            |         r3 = 0;
    0x0001c95c str r3, [r7]                                          |         *(r7) = r3;
                                                                     |     }
    0x0001c95e ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0001c960 mov r3, r4                                            |     r3 = r4;
    0x0001c962 movs r2, 0                                            |     r2 = 0;
    0x0001c964 ldr r1, [r0, 0x28]                                    |     r1 = *((r0 + 0x28));
    0x0001c966 mov r4, r0                                            |     r4 = r0;
    0x0001c968 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001c96c str r1, [r0, 0x28]                                    |     *((r0 + 0x28)) = r1;
    0x0001c96e mov.w r1, 0x4a8                                       |     r1 = 0x4a8;
    0x0001c972 ldr r0, [pc, 0x150]                                   |     
    0x0001c974 add r0, pc                                            |     r0 = 0x3943e;
    0x0001c976 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001c97a str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001c97c b 0x1c99a                                             |     goto label_8;
                                                                     | label_14:
    0x0001c97e ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0001c980 ldr r3, [pc, 0x144]                                   |     
    0x0001c982 ldr r0, [pc, 0x148]                                   |     
    0x0001c984 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0001c986 add r3, pc                                            |     r3 = 0x39452;
    0x0001c988 add r0, pc                                            |     r0 = 0x3945a;
    0x0001c98a orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001c98e str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001c990 movw r1, 0x495                                        |     r1 = 0x495;
    0x0001c994 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001c998 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
                                                                     |     do {
                                                                     | label_8:
    0x0001c99a mvn r4, 1                                             |         r4 = ~1;
    0x0001c99e b 0x1c7e2                                             |         goto label_7;
                                                                     | label_21:
    0x0001c9a0 ldr r4, [sp, 0x10]                                    |         r4 = var_10h;
    0x0001c9a2 mov r2, r0                                            |         r2 = r0;
    0x0001c9a4 ldr r3, [pc, 0x128]                                   |         
    0x0001c9a6 ldr r0, [pc, 0x12c]                                   |         
    0x0001c9a8 ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0001c9aa add r3, pc                                            |         r3 = 0x3947e;
    0x0001c9ac add r0, pc                                            |         r0 = 0x39486;
    0x0001c9ae orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0001c9b0 lsls r0, r4, 4                                        |         r0 = r4 << 4;
    0x0001c9b2 str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0001c9b4 movw r1, 0x475                                        |         r1 = 0x475;
    0x0001c9b8 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0001c9bc str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001c9be b 0x1c99a                                             |         
                                                                     |     } while (1);
                                                                     | label_13:
    0x0001c9c0 ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0001c9c2 movs r2, 0                                            |     r2 = 0;
    0x0001c9c4 ldr r3, [pc, 0x110]                                   |     
    0x0001c9c6 ldr r0, [pc, 0x114]                                   |     
    0x0001c9c8 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0001c9ca add r3, pc                                            |     r3 = 0x394a6;
    0x0001c9cc add r0, pc                                            |     r0 = 0x394ae;
    0x0001c9ce orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001c9d2 str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001c9d4 movw r1, 0x48e                                        |     r1 = 0x48e;
    0x0001c9d8 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001c9dc str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001c9de b 0x1c99a                                             |     goto label_8;
                                                                     | label_23:
    0x0001c9e0 ldr r3, [r5, 4]                                       |     r3 = *((r5 + 4));
    0x0001c9e2 lsls r3, r3, 0x1e                                     |     r3 <<= 0x1e;
                                                                     |     if (r3 >= r3) {
    0x0001c9e4 bpl 0x1c99a                                           |         goto label_8;
                                                                     |     }
    0x0001c9e6 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0001c9e8 ldr r1, [r3, 0x28]                                    |     r1 = *((r3 + 0x28));
    0x0001c9ea ands r2, r1, 0x20                                     |     r2 = r1 & 0x20;
                                                                     |     if (r2 != r1) {
    0x0001c9ee bne 0x1c99a                                           |         goto label_8;
                                                                     |     }
    0x0001c9f0 ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0001c9f2 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001c9f6 ldr r3, [pc, 0xe8]                                    |     
    0x0001c9f8 ldr r0, [pc, 0xe8]                                    |     
    0x0001c9fa str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001c9fc movw r1, 0x4bc                                        |     r1 = 0x4bc;
    0x0001ca00 add r3, pc                                            |     r3 = 0x394e6;
    0x0001ca02 add r0, pc                                            |     r0 = 0x394ea;
    0x0001ca04 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001ca08 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001ca0a b 0x1c99a                                             |     goto label_8;
                                                                     | label_10:
    0x0001ca0c ldr r4, [sp, 0x10]                                    |     r4 = var_10h;
    0x0001ca0e movs r2, 0                                            |     r2 = 0;
    0x0001ca10 ldr r3, [pc, 0xd4]                                    |     
    0x0001ca12 ldr r0, [pc, 0xd8]                                    |     
    0x0001ca14 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0001ca16 add r3, pc                                            |     r3 = 0x39502;
    0x0001ca18 add r0, pc                                            |     r0 = 0x3950a;
    0x0001ca1a orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001ca1e str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001ca20 movw r1, 0x466                                        |     r1 = 0x466;
    0x0001ca24 bl 0x40ed8                                            |     zbx_strdup2 ();
    0x0001ca28 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001ca2a b 0x1c99a                                             |     goto label_8;
                                                                     | label_20:
    0x0001ca2c ldr r3, [pc, 0xc0]                                    |     
    0x0001ca2e ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0001ca30 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0001ca32 ldr r3, [r3]                                          |     r3 = *(0x1caf0);
    0x0001ca34 cmp r3, 3                                             |     
    0x0001ca36 bgt 0x1ca76                                           |     
                                                                     |     while (1) {
    0x0001ca38 ldr r4, [sp, 0x10]                                    |         r4 = var_10h;
    0x0001ca3a movs r2, 0                                            |         r2 = 0;
    0x0001ca3c ldr r3, [pc, 0xb4]                                    |         
    0x0001ca3e ldr r0, [pc, 0xb8]                                    |         
    0x0001ca40 ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0001ca42 add r3, pc                                            |         r3 = 0x3953a;
    0x0001ca44 add r0, pc                                            |         r0 = 0x39542;
    0x0001ca46 orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0001ca4a str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0001ca4c movw r1, 0x46d                                        |         r1 = 0x46d;
    0x0001ca50 bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0001ca54 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001ca56 b 0x1c99a                                             |         goto label_8;
                                                                     | label_22:
    0x0001ca58 ldr r4, [sp, 0x10]                                    |         r4 = var_10h;
    0x0001ca5a ldr r3, [pc, 0xa0]                                    |         
    0x0001ca5c ldr r0, [pc, 0xa0]                                    |         
    0x0001ca5e ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0001ca60 add r3, pc                                            |         r3 = 0x39562;
    0x0001ca62 add r0, pc                                            |         r0 = 0x39566;
    0x0001ca64 orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0001ca68 str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0001ca6a movw r1, 0x49c                                        |         r1 = 0x49c;
    0x0001ca6e bl 0x40ed8                                            |         zbx_strdup2 ();
    0x0001ca72 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001ca74 b 0x1c99a                                             |         goto label_8;
    0x0001ca76 ldr r1, [pc, 0x8c]                                    |         
    0x0001ca78 mov r2, r5                                            |         r2 = r5;
    0x0001ca7a movs r0, 4                                            |         r0 = 4;
    0x0001ca7c add r1, pc                                            |         r1 = 0x39586;
    0x0001ca7e bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0001ca82 b 0x1ca38                                             |         
                                                                     |     }
                                                                     | label_24:
    0x0001ca84 blx 0xe158                                            |     fcn_0000e158 ();
    0x0001ca88 invalid                                               |     
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x31c00 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.regexp_sub_ex ()                                 | void regexp_sub_ex (int16_t arg_50h, int16_t arg_54h, int16_t arg1, int16_t arg2, uint32_t arg3, uint32_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00031c00 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00031c04 mov sl, r0                                        |     sl = r0;
    0x00031c06 ldr r0, [pc, 0x330]                               |     
    0x00031c08 mov r8, r1                                        |     r8 = r1;
    0x00031c0a sub sp, 0x2c                                      |     
    0x00031c0c ldr r1, [pc, 0x32c]                               |     r1 = *(0x31f3c);
    0x00031c0e add r0, pc                                        |     r0 = 0x63b4c;
    0x00031c10 ldr.w ip, [sp, 0x50]                              |     ip = *(arg_50h);
    0x00031c14 ldr r1, [r0, r1]                                  |     
    0x00031c16 ldr r1, [r1]                                      |     r1 = *(0x63b4c);
    0x00031c18 str r1, [sp, 0x24]                                |     var_24h = r1;
    0x00031c1a mov.w r1, 0                                       |     r1 = 0;
    0x00031c1e ldr r1, [sp, 0x54]                                |     r1 = *(arg_54h);
    0x00031c20 str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x00031c22 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00031c24 beq.w 0x31e2c                                     |         goto label_19;
                                                                 |     }
    0x00031c28 mov r1, r2                                        |     r1 = r2;
    0x00031c2a ldrb r2, [r2]                                     |     r2 = *(r2);
    0x00031c2c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00031c2e beq.w 0x31e2c                                     |         goto label_19;
                                                                 |     }
    0x00031c32 cmp r2, 0x40                                      |     
                                                                 |     if (r2 != 0x40) {
    0x00031c34 bne.w 0x31e3c                                     |         goto label_20;
                                                                 |     }
    0x00031c38 ldr.w r6, [sl, 4]                                 |     r6 = *((sl + 4));
    0x00031c3c add.w lr, r1, 1                                   |     lr = r1 + 1;
    0x00031c40 cmp r6, 0                                         |     
                                                                 |     if (r6 <= 0) {
    0x00031c42 ble.w 0x31e64                                     |         goto label_16;
                                                                 |     }
    0x00031c44 strh r7, [r1, 8]                                  |     *((r1 + 8)) = r7;
    0x00031c46 movs r3, 0                                        |     r3 = 0;
    0x00031c48 mov.w r4, -1                                      |     r4 = -1;
    0x00031c4c mov r5, r3                                        |     r5 = r3;
    0x00031c4e str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00031c50 str.w lr, [sp, 8]                                 |     __asm ("str.w lr, [var_8h]");
    0x00031c54 str.w ip, [sp, 0x14]                              |     __asm ("str.w ip, [var_14h]");
                                                                 |     do {
                                                                 | label_1:
    0x00031c58 ldr.w r3, [sl]                                    |         r3 = *(sl);
    0x00031c5c ldr r1, [sp, 8]                                   |         r1 = var_8h;
    0x00031c5e ldr.w r7, [r3, r5, lsl 2]                         |         offset_0 = r5 << 2;
                                                                 |         r7 = *((r3 + offset_0));
    0x00031c62 ldr r0, [r7]                                      |         r0 = *(r7);
    0x00031c64 blx 0xe3b0                                        |         r0 = fcn_0000e3b0 ();
    0x00031c68 mov fp, r0                                        |         
    0x00031c6a cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00031c6c bne 0x31d62                                       |             goto label_6;
                                                                 |         }
    0x00031c6e ldr r4, [r7, 8]                                   |         r4 = *((r7 + 8));
    0x00031c70 cmp r4, 4                                         |         
                                                                 |         if (r4 > 4) {
    0x00031c72 bhi.w 0x31f0c                                     |             goto label_21;
                                                                 |         }
                                                                 |         /* switch table (5 cases) at 0x31c7a */
    0x00031c76 tbb [pc, r4]                                      |         __asm ("tbb [0x00031c7c]");
    0x00031c80 ldrb r3, [r7, 0xd]                                |         r3 = *((r7 + 0xd));
    0x00031c82 mov r0, r8                                        |         r0 = r8;
    0x00031c84 ldr r1, [r7, 4]                                   |         r1 = *((r7 + 4));
    0x00031c86 cmp r3, 0                                         |         
    0x00031c88 mov.w r3, -1                                      |         r3 = -1;
    0x00031c8c ite eq                                            |         
                                                                 |         if (r3 != 0) {
    0x00031c8e moveq r2, 3                                       |             r2 = 3;
                                                                 |         }
                                                                 |         if (r3 == 0) {
    0x00031c90 movne r2, 2                                       |             r2 = 2;
                                                                 |         }
    0x00031c92 str r3, [sp, 0x20]                                |         var_20h = r3;
    0x00031c94 add r3, sp, 0x20                                  |         r3 += var_20h;
    0x00031c96 bl 0x3161c                                        |         r0 = fcn_0003161c (r0, r1, r2, r3);
    0x00031c9a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00031c9c beq.w 0x31eba                                     |             goto label_22;
                                                                 |         }
                                                                 | label_13:
    0x00031ca0 movs r4, 0                                        |         r4 = 0;
                                                                 | label_0:
    0x00031ca2 ldr r3, [sp, 0x10]                                |         r3 = var_10h;
                                                                 |         if (r3 != 0) {
    0x00031ca4 cbz r3, 0x31cac                                   |             
                                                                 | label_17:
    0x00031ca6 ldr r0, [sp, 0x10]                                |             r0 = var_10h;
    0x00031ca8 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
                                                                 | label_9:
    0x00031cac ldr r2, [pc, 0x290]                               |         
    0x00031cae ldr r3, [pc, 0x28c]                               |         r3 = *(0x31f3e);
    0x00031cb0 add r2, pc                                        |         r2 = 0x63bf4;
    0x00031cb2 ldr r3, [r2, r3]                                  |         r3 = *(0x63bf4);
    0x00031cb4 ldr r2, [r3]                                      |         r2 = *(0x63bf4);
    0x00031cb6 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00031cb8 eors r2, r3                                       |         r2 ^= r3;
    0x00031cba mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00031cbe bne.w 0x31f08                                     |             goto label_23;
                                                                 |         }
    0x00031cc2 mov r0, r4                                        |         r0 = r4;
    0x00031cc4 add sp, 0x2c                                      |         
    0x00031cc6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00031cca ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x00031ccc ldr r1, [r7, 4]                                   |         r1 = *((r7 + 4));
    0x00031cce ldrb r3, [r7, 0xd]                                |         r3 = *((r7 + 0xd));
    0x00031cd0 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00031cd2 beq.w 0x31e92                                     |             goto label_24;
                                                                 |         }
    0x00031cd6 add r2, sp, 0x20                                  |         r2 += var_20h;
    0x00031cd8 cmp r3, 0                                         |         
    0x00031cda str r2, [sp]                                      |         *(sp) = r2;
    0x00031cdc mov.w r2, 0                                       |         r2 = 0;
    0x00031ce0 it eq                                             |         
                                                                 |         if (r3 != 0) {
    0x00031ce2 moveq r3, r4                                      |             r3 = r4;
                                                                 |         }
    0x00031ce4 str r2, [sp, 0x20]                                |         var_20h = r2;
    0x00031ce6 it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x00031ce8 movne r3, 2                                       |             r3 = 2;
                                                                 |         }
    0x00031cea ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x00031cec mov r0, r8                                        |         r0 = r8;
    0x00031cee bl 0x31978                                        |         fcn_00031978 (r0, r1, r2, r3);
    0x00031cf0 cdp2 p6, 4, c4, c3, c4, 0                         |         __asm ("cdp2 p6, 4, c4, c3, c4, 0");
    0x00031cf4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00031cf6 bne.w 0x31e6a                                     |             goto label_25;
                                                                 |         }
    0x00031cfa ldr r6, [sp, 0x20]                                |         r6 = var_20h;
    0x00031cfc ldr r3, [sp, 0x10]                                |         r3 = var_10h;
    0x00031cfe cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00031d00 beq.w 0x31f00                                     |             goto label_26;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x00031d04 cbz r3, 0x31d0c                                   |             
    0x00031d06 mov r0, r3                                        |             r0 = r3;
    0x00031d08 blx 0xde30                                        |             fcn_0000de30 ();
                                                                 |         }
    0x00031d0c str r6, [sp, 0x10]                                |         var_10h = r6;
    0x00031d0e adds r5, 1                                        |         r5++;
    0x00031d10 ldr.w r6, [sl, 4]                                 |         r6 = *((sl + 4));
    0x00031d14 movs r4, 1                                        |         r4 = 1;
    0x00031d16 cmp r6, r5                                        |         
    0x00031d18 bgt 0x31c58                                       |         
                                                                 |     } while (r6 > r5);
                                                                 | label_2:
    0x00031d1a sub.w r3, r4, 1                                   |     r3 = r4 - 1;
    0x00031d1e ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x00031d20 clz r3, r3                                        |     r3 &= r3;
    0x00031d24 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x00031d26 cmp r2, 0                                         |     
    0x00031d28 ite eq                                            |     
                                                                 |     if (r2 != 0) {
    0x00031d2a moveq r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r2 == 0) {
    0x00031d2c andne r2, r3, 1                                   |         r2 = r3 & 1;
                                                                 |     }
    0x00031d30 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00031d32 beq.w 0x31e70                                     |         goto label_27;
                                                                 |     }
    0x00031d36 ldrd r3, r2, [sp, 0xc]                            |     __asm ("ldrd r3, r2, [var_ch]");
    0x00031d3a str r2, [r3]                                      |     *(r3) = r2;
    0x00031d3c b 0x31e38                                         |     goto label_14;
    0x00031d3e ldrb r3, [r7, 0xd]                                |     r3 = *((r7 + 0xd));
    0x00031d40 ldr r1, [r7, 4]                                   |     r1 = *((r7 + 4));
    0x00031d42 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00031d44 beq.w 0x31e8a                                     |         goto label_28;
                                                                 |     }
    0x00031d48 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00031d4a bne 0x31e08                                       |         goto label_29;
                                                                 |     }
    0x00031d4c mov r0, r8                                        |     r0 = r8;
    0x00031d4e blx 0xe090                                        |     r0 = res_ninit ();
                                                                 | label_11:
    0x00031d52 clz r4, r0                                        |     r4 &= r0;
    0x00031d56 lsrs r4, r4, 5                                    |     r4 >>= 5;
    0x00031d58 adds r3, r4, 1                                    |     r3 = r4 + 1;
                                                                 | label_3:
    0x00031d5a cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x00031d5c beq 0x31ca2                                       |         goto label_0;
                                                                 |     }
    0x00031d5e ldr.w r6, [sl, 4]                                 |     r6 = *((sl + 4));
                                                                 | label_6:
    0x00031d62 adds r5, 1                                        |     r5++;
    0x00031d64 cmp r6, r5                                        |     
                                                                 |     if (r6 > r5) {
    0x00031d66 bgt.w 0x31c58                                     |         goto label_1;
                                                                 |     }
    0x00031d6a b 0x31d1a                                         |     goto label_2;
    0x00031d6c ldrb r3, [r7, 0xd]                                |     r3 = *((r7 + 0xd));
    0x00031d6e ldr r1, [r7, 4]                                   |     r1 = *((r7 + 4));
    0x00031d70 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00031d72 beq.w 0x31e82                                     |         goto label_30;
                                                                 |     }
    0x00031d76 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00031d78 bne 0x31ca2                                       |         goto label_0;
                                                                 |     }
    0x00031d7a mov r0, r8                                        |     r0 = r8;
    0x00031d7c blx 0xe090                                        |     r0 = res_ninit ();
                                                                 | label_10:
    0x00031d80 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00031d82 it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x00031d84 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x00031d86 adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00031d88 b 0x31d5a                                         |     goto label_3;
    0x00031d8a ldr.w sb, [r7, 4]                                 |     sb = *((r7 + 4));
    0x00031d8e ldrb r6, [r7, 0xd]                                |     r6 = *((r7 + 0xd));
    0x00031d90 ldrb r7, [r7, 0xc]                                |     r7 = *((r7 + 0xc));
    0x00031d92 ldrb.w r4, [sb]                                   |     r4 = *(sb);
    0x00031d96 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00031d98 beq 0x31ca2                                       |         goto label_0;
                                                                 |     }
                                                                 | label_5:
    0x00031d9a mov r1, r7                                        |     r1 = r7;
    0x00031d9c mov r0, sb                                        |     r0 = sb;
    0x00031d9e blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00031da2 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x00031da4 cbz r0, 0x31dce                                   |         goto label_31;
                                                                 |     }
                                                                 | label_4:
    0x00031da6 mov.w r3, 0                                       |     r3 = 0;
    0x00031daa strb r3, [r0]                                     |     *(r0) = r3;
                                                                 |     if (r6 == 0) {
    0x00031dac cbz r6, 0x31e0c                                   |         goto label_32;
                                                                 |     }
    0x00031dae cmp r6, 1                                         |     
                                                                 |     if (r6 == 1) {
    0x00031db0 beq 0x31de6                                       |         goto label_33;
                                                                 |     }
    0x00031db2 mov sb, r0                                        |     sb = r0;
    0x00031db4 strb r7, [sb], 1                                  |     *(sb) = r7;
                                                                 |     sb++;
    0x00031db8 ldrb r4, [r0, 1]                                  |     r4 = *((r0 + 1));
    0x00031dba cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00031dbc beq.w 0x31ca2                                     |         goto label_0;
                                                                 |     }
    0x00031dc0 mov r1, r7                                        |     r1 = r7;
    0x00031dc2 mov r0, sb                                        |     r0 = sb;
    0x00031dc4 blx 0xdcd4                                        |     r0 = fcn_0000dcd4 ();
    0x00031dc8 mov r4, r0                                        |     r4 = r0;
    0x00031dca cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00031dcc bne 0x31da6                                       |         goto label_4;
                                                                 |     }
                                                                 |     if (r6 == 0) {
                                                                 | label_31:
    0x00031dce cbz r6, 0x31e1c                                   |         goto label_34;
                                                                 |     }
    0x00031dd0 cmp r6, 1                                         |     
                                                                 |     if (r6 != 1) {
    0x00031dd2 bne 0x31eb6                                       |         goto label_35;
                                                                 |     }
    0x00031dd4 mov r1, sb                                        |     r1 = sb;
    0x00031dd6 mov r0, r8                                        |     r0 = r8;
    0x00031dd8 blx 0xe090                                        |     r0 = res_ninit ();
    0x00031ddc subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00031dde it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x00031de0 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 | label_8:
    0x00031de2 adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00031de4 b 0x31d5a                                         |     goto label_3;
                                                                 | label_33:
    0x00031de6 mov r1, sb                                        |     r1 = sb;
    0x00031de8 mov r0, r8                                        |     r0 = r8;
    0x00031dea blx 0xe090                                        |     res_ninit ();
    0x00031dee subs r0, 0                                        |     
    0x00031df0 it ne                                             |     
                                                                 |     if (r0 == 0) {
    0x00031df2 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
                                                                 | label_7:
    0x00031df4 mov sb, r4                                        |     sb = r4;
    0x00031df6 strb r7, [sb], 1                                  |     *(sb) = r7;
                                                                 |     sb++;
    0x00031dfa ldrb r3, [r4, 1]                                  |     r3 = *((r4 + 1));
    0x00031dfc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00031dfe beq 0x31ed4                                       |         goto label_36;
                                                                 |     }
    0x00031e00 cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
    0x00031e02 bne 0x31d9a                                       |         goto label_5;
                                                                 |     }
                                                                 | label_12:
    0x00031e04 ldr.w r6, [sl, 4]                                 |     r6 = *((sl + 4));
                                                                 | label_29:
    0x00031e08 movs r4, 1                                        |     r4 = 1;
    0x00031e0a b 0x31d62                                         |     goto label_6;
                                                                 | label_32:
    0x00031e0c mov r1, sb                                        |     r1 = sb;
    0x00031e0e mov r0, r8                                        |     r0 = r8;
    0x00031e10 bl 0x44f9c                                        |     zbx_strcasestr ();
    0x00031e14 subs r0, 0                                        |     
    0x00031e16 it ne                                             |     
                                                                 |     if (r0 == 0) {
    0x00031e18 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x00031e1a b 0x31df4                                         |     goto label_7;
                                                                 | label_34:
    0x00031e1c mov r1, sb                                        |     r1 = sb;
    0x00031e1e mov r0, r8                                        |     r0 = r8;
    0x00031e20 bl 0x44f9c                                        |     r0 = zbx_strcasestr ();
    0x00031e24 subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00031e26 it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x00031e28 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
    0x00031e2a b 0x31de2                                         |     goto label_8;
                                                                 | label_19:
    0x00031e2c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00031e2e cbz r3, 0x31e38                                   |     
                                                                 |     while (r3 != 0) {
                                                                 | label_15:
    0x00031e30 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00031e32 ldr r4, [r3]                                      |         r4 = *(r3);
    0x00031e34 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00031e36 beq 0x31ec2                                       |             goto label_37;
                                                                 |         }
                                                                 | label_14:
    0x00031e38 movs r4, 1                                        |         r4 = 1;
    0x00031e3a b 0x31cac                                         |         goto label_9;
                                                                 | label_20:
    0x00031e3c cmp r3, 0                                         |         
    0x00031e3e mov.w r3, -1                                      |         r3 = -1;
    0x00031e42 str r3, [sp, 0x20]                                |         var_20h = r3;
    0x00031e44 it eq                                             |         
                                                                 |         if (r3 != 0) {
    0x00031e46 moveq r2, 3                                       |             r2 = 3;
                                                                 |         }
    0x00031e48 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x00031e4a it ne                                             |         
                                                                 |         if (r3 == 0) {
    0x00031e4c movne r2, 2                                       |             r2 = 2;
                                                                 |         }
    0x00031e4e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00031e50 beq 0x31eea                                       |             goto label_38;
                                                                 |         }
    0x00031e52 ldr r4, [sp, 0xc]                                 |         r4 = var_ch;
    0x00031e54 mov r3, r2                                        |         r3 = r2;
    0x00031e56 mov r0, r8                                        |         r0 = r8;
    0x00031e58 mov r2, ip                                        |         r2 = ip;
    0x00031e5a str r4, [sp]                                      |         *(sp) = r4;
    0x00031e5c bl 0x31978                                        |         r0 = fcn_00031978 (r0, r1, r2, r3);
    0x00031e60 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00031e62 beq 0x31eda                                       |             goto label_39;
                                                                 |         }
                                                                 | label_16:
    0x00031e64 mov.w r4, -1                                      |         r4 = -1;
    0x00031e68 b 0x31cac                                         |         goto label_9;
                                                                 | label_25:
    0x00031e6a mov.w r4, -1                                      |         r4 = -1;
    0x00031e6e b 0x31ca2                                         |         goto label_0;
                                                                 | label_27:
    0x00031e70 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x00031e72 cmp r2, 0                                         |         
    0x00031e74 ite eq                                            |         
                                                                 |         if (r2 != 0) {
    0x00031e76 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r2 == 0) {
    0x00031e78 andne r3, r3, 1                                   |             r3 &= 1;
                                                                 |         }
    0x00031e7c cmp r3, 0                                         |         
    0x00031e7e bne 0x31e30                                       |         
                                                                 |     }
    0x00031e80 b 0x31cac                                         |     goto label_9;
                                                                 | label_30:
    0x00031e82 mov r0, r8                                        |     r0 = r8;
    0x00031e84 bl 0x44f9c                                        |     zbx_strcasestr ();
    0x00031e88 b 0x31d80                                         |     goto label_10;
                                                                 | label_28:
    0x00031e8a mov r0, r8                                        |     r0 = r8;
    0x00031e8c bl 0x44f9c                                        |     zbx_strcasestr ();
    0x00031e90 b 0x31d52                                         |     goto label_11;
                                                                 | label_24:
    0x00031e92 cmp r3, 0                                         |     
    0x00031e94 mov.w r3, -1                                      |     r3 = -1;
    0x00031e98 ite eq                                            |     
                                                                 |     if (r3 != 0) {
    0x00031e9a moveq r2, r4                                      |         r2 = r4;
                                                                 |     }
                                                                 |     if (r3 == 0) {
    0x00031e9c movne r2, 2                                       |         r2 = 2;
                                                                 |     }
    0x00031e9e str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00031ea0 mov r0, r8                                        |     r0 = r8;
    0x00031ea2 add r3, sp, 0x20                                  |     r3 += var_20h;
    0x00031ea4 bl 0x3161c                                        |     r0 = fcn_0003161c (r0, r1, r2, r3);
    0x00031ea8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00031eaa bne 0x31e04                                       |         goto label_12;
                                                                 |     }
    0x00031eac ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x00031eae adds r0, r1, 1                                    |     r0 = r1 + 1;
                                                                 |     if (r0 != r1) {
    0x00031eb0 bne.w 0x31ca0                                     |         goto label_13;
                                                                 |     }
    0x00031eb4 mov fp, r1                                        |     
                                                                 | label_35:
    0x00031eb6 mov r4, fp                                        |     r4 = fp;
    0x00031eb8 b 0x31ca2                                         |     goto label_0;
                                                                 | label_22:
    0x00031eba ldr r4, [sp, 0x20]                                |     r4 = var_20h;
    0x00031ebc adds r2, r4, 1                                    |     r2 = r4 + 1;
                                                                 |     if (r2 != r4) {
    0x00031ebe bne 0x31e04                                       |         goto label_12;
                                                                 |     }
    0x00031ec0 b 0x31ca2                                         |     goto label_0;
                                                                 | label_37:
    0x00031ec2 ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x00031ec4 mov r3, r8                                        |     r3 = r8;
    0x00031ec6 add r2, sp, 0x1c                                  |     r2 += var_1ch;
    0x00031ec8 add r1, sp, 0x20                                  |     r1 += var_20h;
    0x00031eca strd r4, r4, [sp, 0x1c]                           |     __asm ("strd r4, r4, [var_1ch]");
    0x00031ece bl 0x44240                                        |     zbx_strcpy_alloc ()
    0x00031ed2 b 0x31e38                                         |     goto label_14;
                                                                 | label_36:
    0x00031ed4 mov r4, r0                                        |     r4 = r0;
    0x00031ed6 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00031ed8 b 0x31d5a                                         |     goto label_3;
                                                                 | label_39:
    0x00031eda ldr r3, [r4]                                      |     r3 = *(r4);
    0x00031edc subs r3, 0                                        |     
    0x00031ede it ne                                             |     
                                                                 |     if (r3 == 0) {
    0x00031ee0 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00031ee2 mov r4, r3                                        |     r4 = r3;
    0x00031ee4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00031ee6 bne 0x31e30                                       |         goto label_15;
                                                                 |     }
    0x00031ee8 b 0x31cac                                         |     goto label_9;
                                                                 | label_38:
    0x00031eea add r3, sp, 0x20                                  |     r3 += var_20h;
    0x00031eec mov r0, r8                                        |     r0 = r8;
    0x00031eee bl 0x3161c                                        |     r0 = fcn_0003161c (r0, r1, r2, r3);
    0x00031ef2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00031ef4 bne 0x31e38                                       |         goto label_14;
                                                                 |     }
    0x00031ef6 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00031ef8 adds r3, 1                                        |     r3++;
                                                                 |     if (r3 == 1) {
    0x00031efa beq 0x31e64                                       |         goto label_16;
                                                                 |     }
                                                                 | label_18:
    0x00031efc movs r4, 0                                        |     r4 = 0;
    0x00031efe b 0x31cac                                         |     goto label_9;
                                                                 | label_26:
    0x00031f00 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00031f02 bne.w 0x31ca6                                     |         goto label_17;
                                                                 |     }
    0x00031f06 b 0x31efc                                         |     goto label_18;
                                                                 | label_23:
    0x00031f08 blx 0xe158                                        |     fcn_0000e158 ();
                                                                 | label_21:
    0x00031f0c movw r0, 0x423                                    |     r0 = 0x423;
    0x00031f10 ldr r2, [pc, 0x30]                                |     
    0x00031f12 str r0, [sp]                                      |     *(sp) = r0;
    0x00031f14 ldr r3, [pc, 0x30]                                |     
    0x00031f16 ldr r1, [pc, 0x34]                                |     
    0x00031f18 add r2, pc                                        |     r2 = 0x63e60;
    0x00031f1a ldr r0, [pc, 0x34]                                |     
    0x00031f1c adds r2, 0xc                                      |     r2 += 0xc;
    0x00031f1e add r3, pc                                        |     r3 = 0x63e6a;
    0x00031f20 add r1, pc                                        |     r1 = 0x63e72;
    0x00031f22 add r0, pc                                        |     r0 = 0x63e78;
    0x00031f24 bl 0x43cd4                                        |     zbx_error ();
    0x00031f28 bl 0x356ac                                        |     zbx_backtrace ();
    0x00031f2c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00031f2e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00031f30 beq 0x31e64                                       |         goto label_16;
                                                                 |     }
    0x00031f32 mov.w r4, -1                                      |     r4 = -1;
    0x00031f36 b 0x31ca6                                         |     goto label_17;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1cc4c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.test_parameters ()                                   | void test_parameters () {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
    0x0001cc4c ldr r2, [pc, 0xe0]                                    |     
    0x0001cc4e ldr r3, [pc, 0xe4]                                    |     r3 = *(0x1cd36);
    0x0001cc50 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001cc54 sub sp, 0x14                                          |     
    0x0001cc56 add r2, pc                                            |     r2 = 0x3998a;
    0x0001cc58 ldr r6, [pc, 0xdc]                                    |     
    0x0001cc5a movs r4, 0                                            |     r4 = 0;
    0x0001cc5c ldr r3, [r2, r3]                                      |     
    0x0001cc5e add r6, pc                                            |     r6 = 0x3999a;
    0x0001cc60 ldr r3, [r3]                                          |     r3 = *(0x3998a);
    0x0001cc62 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001cc64 mov.w r3, 0                                           |     r3 = 0;
    0x0001cc68 ldr r3, [r6]                                          |     r3 = *(0x3999a);
    0x0001cc6a strd r4, r4, [sp]                                     |     __asm ("strd r4, r4, [sp]");
    0x0001cc6e ldr r5, [r3]                                          |     r5 = *(0x3999a);
    0x0001cc70 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0001cc72 beq 0x1cd0e                                           |         goto label_2;
                                                                     |     }
    0x0001cc74 ldr r7, [pc, 0xc4]                                    |     
    0x0001cc76 ldr.w sb, [pc, 0xc8]                                  |     
    0x0001cc7a add r7, pc                                            |     r7 = 0x399ba;
    0x0001cc7c add sb, pc                                            |     sb = 0x399c2;
    0x0001cc7e b 0x1cc8a                                             |     
                                                                     |     while (r0 == 0) {
                                                                     | label_0:
    0x0001cc80 ldr r3, [r6]                                          |         r3 = *(r6);
    0x0001cc82 adds r4, 0x10                                         |         r4 += 0x10;
    0x0001cc84 ldr r5, [r3, r4]                                      |         r5 = *((r3 + r4));
    0x0001cc86 cmp r5, 0                                             |         
                                                                     |         if (r5 == 0) {
    0x0001cc88 beq 0x1cd04                                           |             goto label_3;
                                                                     |         }
                                                                     | label_1:
    0x0001cc8a mov r1, r7                                            |         r1 = r7;
    0x0001cc8c mov r0, r5                                            |         r0 = r5;
    0x0001cc8e blx 0xe3b0                                            |         r0 = fcn_0000e3b0 ();
    0x0001cc92 cmp r0, 0                                             |         
    0x0001cc94 beq 0x1cc80                                           |         
                                                                     |     }
    0x0001cc96 movs r0, 0                                            |     r0 = 0;
    0x0001cc98 add.w fp, sp, 8                                       |     
    0x0001cc9c add.w sl, sp, 4                                       |     sl += var_4h_2;
    0x0001cca0 mov r8, sp                                            |     r8 = sp;
    0x0001cca2 mov r3, r5                                            |     r3 = r5;
    0x0001cca4 mov r2, fp                                            |     r2 = fp;
    0x0001cca6 str r0, [sp, 8]                                       |     var_8h = r0;
    0x0001cca8 mov r1, sl                                            |     r1 = sl;
    0x0001ccaa mov r0, r8                                            |     r0 = r8;
    0x0001ccac bl 0x44240                                            |     zbx_strcpy_alloc ()
    0x0001ccb0 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0001ccb4 add r3, r4                                            |     r3 += r4;
    0x0001ccb6 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0001ccb8 lsls r2, r2, 0x1d                                     |     r2 <<= 0x1d;
                                                                     |     if (r2 >= r2) {
    0x0001ccba bmi 0x1ccea                                           |         
    0x0001ccbc ldr r3, [r3, 0xc]                                     |         r3 = *((r3 + 0xc));
                                                                     |         if (r3 == 0) {
    0x0001ccbe cbz r3, 0x1ccea                                       |             goto label_4;
                                                                     |         }
    0x0001ccc0 movs r3, 0x5b                                         |         r3 = 0x5b;
    0x0001ccc2 mov r2, fp                                            |         r2 = fp;
    0x0001ccc4 mov r1, sl                                            |         r1 = sl;
    0x0001ccc6 mov r0, r8                                            |         r0 = r8;
    0x0001ccc8 bl 0x44268                                            |         zbx_chrcpy_alloc ();
    0x0001cccc ldr.w r3, [sb]                                        |         r3 = *(sb);
    0x0001ccd0 mov r2, fp                                            |         r2 = fp;
    0x0001ccd2 mov r1, sl                                            |         r1 = sl;
    0x0001ccd4 mov r0, r8                                            |         r0 = r8;
    0x0001ccd6 add r3, r4                                            |         r3 += r4;
    0x0001ccd8 ldr r3, [r3, 0xc]                                     |         r3 = *((r3 + 0xc));
    0x0001ccda bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0001ccde mov r2, fp                                            |         r2 = fp;
    0x0001cce0 mov r1, sl                                            |         r1 = sl;
    0x0001cce2 mov r0, r8                                            |         r0 = r8;
    0x0001cce4 movs r3, 0x5d                                         |         r3 = 0x5d;
    0x0001cce6 bl 0x44268                                            |         zbx_chrcpy_alloc ();
                                                                     |     }
                                                                     | label_4:
    0x0001ccea ldr r0, [sp]                                          |     r0 = *(sp);
    0x0001ccec bl 0x1c5bc                                            |     r0 = check_key_access_rules ();
    0x0001ccf0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001ccf2 bne 0x1cc80                                           |         goto label_0;
                                                                     |     }
    0x0001ccf4 ldr r0, [sp]                                          |     r0 = *(sp);
    0x0001ccf6 adds r4, 0x10                                         |     r4 += 0x10;
    0x0001ccf8 bl 0x1cb08                                            |     test_parameter ();
    0x0001ccfc ldr r3, [r6]                                          |     r3 = *(r6);
    0x0001ccfe ldr r5, [r3, r4]                                      |     r5 = *((r3 + r4));
    0x0001cd00 cmp r5, 0                                             |     
                                                                     |     if (r5 != 0) {
    0x0001cd02 bne 0x1cc8a                                           |         goto label_1;
                                                                     |     }
                                                                     | label_3:
    0x0001cd04 ldr r0, [sp]                                          |     r0 = *(sp);
                                                                     |     if (r0 != 0) {
    0x0001cd06 cbz r0, 0x1cd0e                                       |         
    0x0001cd08 blx 0xde30                                            |         fcn_0000de30 ();
    0x0001cd0c str r5, [sp]                                          |         *(sp) = r5;
                                                                     |     }
                                                                     | label_2:
    0x0001cd0e bl 0x302a4                                            |     test_aliases ();
    0x0001cd12 ldr r2, [pc, 0x30]                                    |     
    0x0001cd14 ldr r3, [pc, 0x1c]                                    |     r3 = *(0x1cd34);
    0x0001cd16 add r2, pc                                            |     r2 = 0x39a60;
    0x0001cd18 ldr r3, [r2, r3]                                      |     r3 = *(0x39a60);
    0x0001cd1a ldr r2, [r3]                                          |     r2 = *(0x39a60);
    0x0001cd1c ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0001cd1e eors r2, r3                                           |     r2 ^= r3;
    0x0001cd20 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 == r3) {
    0x0001cd24 bne 0x1cd2c                                           |         
    0x0001cd26 add sp, 0x14                                          |         
    0x0001cd28 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     |     }
    0x0001cd2c blx 0xe158                                            |     fcn_0000e158 ();
    0x0001cd30 vaddl.s8 q0, d2, d3                                   |     __asm ("vaddl.s8 q0, d2, d3");
    0x0001cd34 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0001cd36 movs r0, r0                                           |     
    0x0001cd38 ldc2l p0, c0, [r6, -0xc]!                             |     __asm ("ldc2l p0, c0, [r6, -0xc]!");
    0x0001cd3c subs r7, 0x5a                                         |     r7 -= 0x5a;
    0x0001cd3e movs r3, r0                                           |     r3 = r0;
    0x0001cd40 ldc2l p0, c0, [r8, -0xc]                              |     __asm ("ldc2l p0, c0, [r8, -0xc]");
    0x0001cd44 cdp p0, 0xc, c0, c2, c3, 0                            |     __asm ("cdp p0, 0xc, c0, c2, c3, 0");
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x303a4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_alias_get ()                         | void zbx_alias_get (int16_t arg1) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_ch;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
    0x000303a4 movwhs r4, 0x93a                          |     __asm ("movwhs r4, aav.0x0002b828");
    0x000303a8 ldr r2, [pc, 0xe8]                        |     
    0x000303aa push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x000303ae sub sp, 0x1c                              |     
    0x000303b0 add r1, pc                                |     r1 += pc;
    0x000303b2 mov r5, r0                                |     r5 = r0;
    0x000303b4 add r0, sp, 0x10                          |     r0 += var_10h;
    0x000303b6 ldr r2, [r1, r2]                          |     r2 = *((r1 + r2));
    0x000303b8 ldr r2, [r2]                              |     r2 = *(0x30494);
    0x000303ba str r2, [sp, 0x14]                        |     var_14h = r2;
    0x000303bc mov.w r2, 0                               |     r2 = 0;
    0x000303c0 strd r3, r5, [sp, 0xc]                    |     __asm ("strd r3, r5, [var_10h]");
    0x000303c4 bl 0x449d0                                |     r0 = parse_key ();
                                                         |     if (r0 != 0) {
    0x000303c8 cbnz r0, 0x303ee                          |         goto label_1;
                                                         |     }
    0x000303ca ldr r3, [sp, 0x10]                        |     r3 = var_10h;
    0x000303cc ldrb r3, [r3]                             |     r3 = *(r3);
                                                         |     if (r3 != 0) {
    0x000303ce cbnz r3, 0x303ee                          |         goto label_1;
                                                         |     }
    0x000303d0 ldr r3, [pc, 0xc4]                        |     
    0x000303d2 add r3, pc                                |     r3 = 0x6086e;
    0x000303d4 ldr r6, [r3]                              |     r6 = *(0x6086e);
                                                         |     if (r6 == 0) {
    0x000303d6 cbz r6, 0x303ee                           |         goto label_1;
                                                         |     }
    0x000303d8 mov r4, r6                                |     r4 = r6;
    0x000303da b 0x303e0                                 |     
                                                         |     while (r0 != 0) {
    0x000303dc ldr r4, [r4]                              |         r4 = *(r4);
                                                         |         if (r4 == 0) {
    0x000303de cbz r4, 0x3040a                           |             goto label_2;
                                                         |         }
    0x000303e0 ldr r0, [r4, 4]                           |         r0 = *((r4 + 4));
    0x000303e2 mov r1, r5                                |         r1 = r5;
    0x000303e4 blx 0xe3b0                                |         r0 = fcn_0000e3b0 ();
    0x000303e8 cmp r0, 0                                 |         
    0x000303ea bne 0x303dc                               |         
                                                         |     }
                                                         |     do {
    0x000303ec ldr r5, [r4, 8]                           |         r5 = *((r4 + 8));
                                                         | label_1:
    0x000303ee ldr r2, [pc, 0xac]                        |         
    0x000303f0 ldr r3, [pc, 0xa0]                        |         r3 = *(0x30494);
    0x000303f2 add r2, pc                                |         r2 = 0x60894;
    0x000303f4 ldr r3, [r2, r3]                          |         r3 = *(0x60894);
    0x000303f6 ldr r2, [r3]                              |         r2 = *(0x60894);
    0x000303f8 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x000303fa eors r2, r3                               |         r2 ^= r3;
    0x000303fc mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00030400 bne 0x3048a                               |             goto label_3;
                                                         |         }
    0x00030402 mov r0, r5                                |         r0 = r5;
    0x00030404 add sp, 0x1c                              |         
    0x00030406 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x0003040a ldr.w r8, [pc, 0x94]                      |         r8 = *(0x000304a0);
    0x0003040e add r8, pc                                |         r8 += pc;
                                                         | label_0:
    0x00030410 ldr r7, [r6, 4]                           |         r7 = *((r6 + 4));
    0x00030412 mov r0, r7                                |         r0 = r7;
    0x00030414 blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x00030418 cmp r0, 3                                 |         
    0x0003041a mov r4, r0                                |         r4 = r0;
                                                         |         if (r0 < 3) {
    0x0003041c bls 0x3047e                               |             goto label_4;
                                                         |         }
    0x0003041e sub.w sb, r0, 3                           |         sb = r0 - 3;
    0x00030422 mov r1, r8                                |         r1 = r8;
    0x00030424 add.w r0, r7, sb                          |         r0 = r7 + sb;
    0x00030428 blx 0xe3b0                                |         r0 = fcn_0000e3b0 ();
                                                         |         if (r0 != 0) {
    0x0003042c cbnz r0, 0x3047e                          |             goto label_4;
                                                         |         }
    0x0003042e subs r2, r4, 2                            |         r2 = r4 - 2;
    0x00030430 mov r0, r7                                |         r0 = r7;
    0x00030432 mov r1, r5                                |         r1 = r5;
    0x00030434 blx 0xe2c8                                |         r0 = fcn_0000e2c8 ();
                                                         |         if (r0 != 0) {
    0x00030438 cbnz r0, 0x3047e                          |             goto label_4;
                                                         |         }
    0x0003043a ldr r6, [r6, 8]                           |         r6 = *((r6 + 8));
    0x0003043c mov r0, r6                                |         r0 = r6;
    0x0003043e blx 0xdf68                                |         r0 = fcn_0000df68 ();
    0x00030442 cmp r0, 3                                 |         
                                                         |         if (r0 < 3) {
    0x00030444 bls 0x30486                               |             goto label_5;
                                                         |         }
    0x00030446 subs r4, r0, 3                            |         r4 = r0 - 3;
    0x00030448 mov r1, r8                                |         r1 = r8;
    0x0003044a adds r0, r6, r4                           |         r0 = r6 + r4;
    0x0003044c blx 0xe3b0                                |         r0 = fcn_0000e3b0 ();
                                                         |         if (r0 != 0) {
    0x00030450 cbnz r0, 0x30486                          |             goto label_5;
                                                         |         }
    0x00030452 str r4, [sp]                              |         *(sp) = r4;
    0x00030454 mov r3, r6                                |         r3 = r6;
    0x00030456 ldr r4, [pc, 0x4c]                        |         
    0x00030458 add r6, sp, 0xc                           |         r6 += var_ch;
    0x0003045a mov r2, r6                                |         r2 = r6;
    0x0003045c add r4, pc                                |         r4 = 0x60906;
    0x0003045e add.w r8, r4, 4                           |         r8 = r4 + 4;
    0x00030462 add.w r7, r4, 8                           |         r7 = r4 + 8;
    0x00030466 mov r1, r8                                |         r1 = r8;
    0x00030468 mov r0, r7                                |         r0 = r7;
    0x0003046a bl 0x440f8                                |         zbx_strncpy_alloc ();
    0x0003046e add.w r3, r5, sb                          |         r3 = r5 + sb;
    0x00030472 mov r2, r6                                |         r2 = r6;
    0x00030474 mov r1, r8                                |         r1 = r8;
    0x00030476 mov r0, r7                                |         r0 = r7;
    0x00030478 bl 0x44240                                |         zbx_strcpy_alloc ()
    0x0003047c b 0x303ec                                 |         
                                                         |     } while (1);
                                                         | label_4:
    0x0003047e ldr r6, [r6]                              |     r6 = *(r6);
    0x00030480 cmp r6, 0                                 |     
                                                         |     if (r6 != 0) {
    0x00030482 bne 0x30410                               |         goto label_0;
                                                         |     }
    0x00030484 b 0x303ee                                 |     goto label_1;
                                                         | label_5:
    0x00030486 mov r5, r6                                |     r5 = r6;
    0x00030488 b 0x303ee                                 |     goto label_1;
                                                         | label_3:
    0x0003048a blx 0xe158                                |     fcn_0000e158 ();
    0x0003048e nop                                       |     
    0x00030490 invalid                                   |     
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x4a57c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.zbx_gen_uuid4 ()                                     | void zbx_gen_uuid4 (int16_t arg_c4h, int16_t arg_144h, int16_t arg_1140h, int16_t arg_1160h, int16_t arg1) {
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_4h_2;
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_1h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_5bh;
                                                                     |     int16_t var_5ch;
                                                                     |     int16_t var_62h;
                                                                     |     int16_t var_64h;
                                                                     |     int16_t var_6ch;
                                                                     |     r0 = arg1;
    0x0004a57c invalid                                               |     
    0x0004a580 ldr r6, [pc, 0xb8]                                    |     
    0x0004a582 sub sp, 0x70                                          |     
    0x0004a584 movs r3, 0x21                                         |     r3 = 0x21;
    0x0004a586 movs r2, 0                                            |     r2 = 0;
    0x0004a588 ldr r4, [pc, 0xb4]                                    |     r4 = *(0x4a640);
    0x0004a58a movs r1, 0xb6                                         |     r1 = 0xb6;
    0x0004a58c add r6, pc                                            |     r6 = 0x94bcc;
    0x0004a58e ldr r0, [pc, 0xb4]                                    |     
    0x0004a590 ldr r4, [r6, r4]                                      |     
    0x0004a592 add r6, sp, 4                                         |     r6 += var_4h;
    0x0004a594 add r0, pc                                            |     r0 = 0x94bde;
    0x0004a596 ldr r4, [r4]                                          |     r4 = *(0x94bcc);
    0x0004a598 str r4, [sp, 0x6c]                                    |     var_6ch = r4;
    0x0004a59a mov.w r4, 0                                           |     r4 = 0;
    0x0004a59c lsls r0, r0, 0x10                                     |     r0 <<= 0x10;
    0x0004a59e bl 0x40dd8                                            |     r0 = zbx_malloc2 ();
    0x0004a5a2 mov r4, r0                                            |     r4 = r0;
    0x0004a5a4 mov r0, r6                                            |     r0 = r6;
    0x0004a5a6 bl 0x4a220                                            |     zbx_md5_init ();
    0x0004a5aa mov r0, r5                                            |     r0 = r5;
    0x0004a5ac blx 0xdf68                                            |     fcn_0000df68 ();
    0x0004a5b0 mov r1, r5                                            |     r1 = r5;
    0x0004a5b2 mov r2, r0                                            |     r2 = r0;
    0x0004a5b4 mov r0, r6                                            |     r0 = r6;
    0x0004a5b6 bl 0x4a250                                            |     zbx_md5_append ();
    0x0004a5ba add r1, sp, 0x5c                                      |     r1 += var_5ch;
    0x0004a5bc mov r0, r6                                            |     r0 = r6;
    0x0004a5be bl 0x4a318                                            |     zbx_md5_finish ();
    0x0004a5c2 ldrb.w r0, [sp, 0x62]                                 |     r0 = var_62h;
    0x0004a5c6 adds r3, r4, 2                                        |     r3 = r4 + 2;
    0x0004a5c8 ldrb.w r2, [sp, 0x64]                                 |     r2 = var_64h;
    0x0004a5cc add.w r1, sp, 0x5b                                    |     r1 += var_5bh;
    0x0004a5d0 ldr.w ip, [pc, 0x74]                                  |     ip = fcn.0000db78;
    0x0004a5d4 and r0, r0, 0xf                                       |     r0 &= 0xf;
    0x0004a5d8 orr r0, r0, 0x40                                      |     r0 |= 0x40;
    0x0004a5dc and r2, r2, 0x3f                                      |     r2 &= 0x3f;
    0x0004a5e0 strb.w r0, [sp, 0x62]                                 |     var_62h = r0;
    0x0004a5e4 add ip, pc                                            |     
    0x0004a5e6 add.w r0, r4, 0x22                                    |     r0 = r4 + 0x22;
    0x0004a5ea orn r2, r2, 0x7f                                      |     r2 |= 0x7f;
                                                                     |     r2 = ~r2;
    0x0004a5ee strb.w r2, [sp, 0x64]                                 |     var_64h = r2;
                                                                     |     do {
    0x0004a5f2 ldrb r2, [r1, 1]!                                     |         r2 = var_5ch;
    0x0004a5f6 adds r3, 2                                            |         r3 += 2;
    0x0004a5f8 cmp r3, r0                                            |         
    0x0004a5fa lsr.w r2, r2, 4                                       |         r2 >>= 4;
    0x0004a5fe ldrb.w r2, [ip, r2]                                   |         r2 = *((ip + r2));
    0x0004a602 strb r2, [r3, -0x4]                                   |         *((r3 - 0x4)) = r2;
    0x0004a606 ldrb r2, [r1]                                         |         r2 = *(r1);
    0x0004a608 and r2, r2, 0xf                                       |         r2 &= 0xf;
    0x0004a60c ldrb.w r2, [ip, r2]                                   |         r2 = *((ip + r2));
    0x0004a610 strb r2, [r3, -0x3]                                   |         *((r3 - 0x3)) = r2;
    0x0004a614 bne 0x4a5f2                                           |         
                                                                     |     } while (r3 != r0);
    0x0004a616 movs r3, 0                                            |     r3 = 0;
    0x0004a618 ldr r2, [pc, 0x30]                                    |     
    0x0004a61a strb.w r3, [r4, 0x20]                                 |     *((r4 + 0x20)) = r3;
    0x0004a61e ldr r3, [pc, 0x20]                                    |     r3 = *(0x4a642);
    0x0004a620 add r2, pc                                            |     r2 = 0x94c70;
    0x0004a622 ldr r3, [r2, r3]                                      |     r3 = *(0x94c70);
    0x0004a624 ldr r2, [r3]                                          |     r2 = *(0x94c70);
    0x0004a626 ldr r3, [sp, 0x6c]                                    |     r3 = var_6ch;
    0x0004a628 eors r2, r3                                           |     r2 ^= r3;
    0x0004a62a mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 == r3) {
    0x0004a62e bne 0x4a636                                           |         
    0x0004a630 mov r0, r4                                            |         r0 = r4;
    0x0004a632 add sp, 0x70                                          |         
    0x0004a634 pop {r4, r5, r6, pc}                                  |         
                                                                     |     }
    0x0004a636 blx 0xe158                                            |     fcn_0000e158 ();
    0x0004a63a nop                                                   |     
    0x0004a63c asrs r4, r1, 0x19                                     |     r4 = r1 >> 0x19;
    0x0004a63e movs r1, r0                                           |     r1 = r0;
    0x0004a640 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0004a642 movs r0, r0                                           |     
                                                                     |     if (r0 <= r0) {
    0x0004a644 bgt 0x4a688                                           |         
    0x0004a646 movs r0, r0                                           |         
                                                                     |         if (r0 < r0) {
    0x0004a648 blt 0x4a73c                                           |             goto label_45;
                                                                     |         }
    0x0004a64a movs r0, r0                                           |         
    0x0004a64c asrs r0, r7, 0x16                                     |         r0 = r7 >> 0x16;
    0x0004a64e movs r1, r0                                           |         r1 = r0;
    0x0004a650 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |         
    0x0004a654 sub sp, 0xc                                           |         
    0x0004a656 ldr r5, [pc, 0x184]                                   |         
    0x0004a658 mov r6, r0                                            |         r6 = r0;
    0x0004a65a mov sb, r1                                            |         sb = r1;
    0x0004a65c ldr r4, [pc, 0x180]                                   |         r4 = *(0x4a7e0);
    0x0004a65e add r5, pc                                            |         r5 = 0x94e40;
    0x0004a660 ldr r3, [pc, 0x180]                                   |         
    0x0004a662 ldr r2, [pc, 0x184]                                   |         r2 = *(0x4a7ea);
    0x0004a664 ldr r4, [r5, r4]                                      |         
    0x0004a666 add r3, pc                                            |         r3 = 0x94e4e;
    0x0004a668 ldr r4, [r4]                                          |         r4 = *(0x94e40);
    0x0004a66a str r4, [sp, 4]                                       |         var_4h_2 = r4;
    0x0004a66c mov.w r4, 0                                           |         r4 = 0;
    0x0004a670 ldr.w r8, [r3, r2]                                    |         r8 = *(0x94e4e);
    0x0004a674 ldr.w r3, [r8]                                        |         r3 = *(0x94e4e);
    0x0004a678 cmp r3, 3                                             |         
                                                                     |         if (r3 > 3) {
    0x0004a67a bgt.w 0x4a7aa                                         |             goto label_46;
                                                                     |         }
                                                                     | label_6:
    0x0004a67e ldr r5, [pc, 0x16c]                                   |         r5 = *(0x4a7ee);
    0x0004a680 mov r7, sp                                            |         r7 = sp;
    0x0004a682 ldr.w fp, [pc, 0x16c]                                 |         fp = fcn.0000dfc0;
    0x0004a686 ldr.w sl, [pc, 0x16c]                                 |         sl = *(0x0004a7f4);
                                                                     |     }
    0x0004a688 adr r1, 0x1b0                                         |     r1 = 0x1b0;
    0x0004a68a add r5, pc                                            |     r5 += pc;
    0x0004a68c add fp, pc                                            |     
    0x0004a68e add sl, pc                                            |     sl += pc;
                                                                     |     do {
                                                                     | label_2:
    0x0004a690 ldr r2, [r5]                                          |         r2 = *(r5);
    0x0004a692 mov r1, r7                                            |         r1 = r7;
    0x0004a694 mov r0, r6                                            |         r0 = r6;
    0x0004a696 orr r2, r2, 2                                         |         r2 |= 2;
    0x0004a69a blx 0xe00c                                            |         open64 ();
    0x0004a69e adds r3, r0, 1                                        |         r3 += var_1h;
    0x0004a6a0 mov r4, r0                                            |         r4 = r0;
                                                                     |         if (r3 == var_1h) {
    0x0004a6a2 beq 0x4a710                                           |             goto label_47;
                                                                     |         }
    0x0004a6a4 ldr r1, [sp]                                          |         r1 = *(sp);
    0x0004a6a6 ands r3, r1, 0x7f                                     |         r3 = r1 & 0x7f;
                                                                     |         if (r3 != r1) {
    0x0004a6aa bne 0x4a726                                           |             goto label_48;
                                                                     |         }
    0x0004a6ac ldr.w r3, [r8]                                        |         r3 = *(r8);
    0x0004a6b0 cmp r3, 3                                             |         
                                                                     |         if (r3 <= 3) {
    0x0004a6b2 bgt 0x4a6e2                                           |             
                                                                     | label_3:
    0x0004a6b4 cmp.w sb, 0                                           |             
                                                                     |             if (sb != 0) {
    0x0004a6b8 beq 0x4a6c6                                           |                 
                                                                     | label_1:
    0x0004a6ba str.w r1, [sb]                                        |                 __asm ("str.w r1, [sb]");
                                                                     | label_0:
    0x0004a6be ldr.w r3, [r8]                                        |                 r3 = *(r8);
    0x0004a6c2 cmp r3, 3                                             |                 
                                                                     |                 if (r3 > 3) {
    0x0004a6c4 bgt 0x4a786                                           |                     goto label_49;
                                                                     |                 }
                                                                     |             }
                                                                     | label_5:
    0x0004a6c6 ldr r2, [pc, 0x130]                                   |             
    0x0004a6c8 ldr r3, [pc, 0x114]                                   |             r3 = *(0x4a7e0);
    0x0004a6ca add r2, pc                                            |             r2 = 0x94ec8;
    0x0004a6cc ldr r3, [r2, r3]                                      |             r3 = *(0x94ec8);
    0x0004a6ce ldr r2, [r3]                                          |             r2 = *(0x94ec8);
    0x0004a6d0 ldr r3, [sp, 4]                                       |             r3 = var_4h;
    0x0004a6d2 eors r2, r3                                           |             r2 ^= r3;
    0x0004a6d4 mov.w r3, 0                                           |             r3 = 0;
                                                                     |             if (r2 != r3) {
    0x0004a6d8 bne 0x4a7d6                                           |                 goto label_50;
                                                                     |             }
    0x0004a6da mov r0, r4                                            |             r0 = r4;
    0x0004a6dc add sp, 0xc                                           |             
    0x0004a6de pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |             
                                                                     |         }
    0x0004a6e2 ldr r2, [pc, 0x118]                                   |         
    0x0004a6e4 ubfx r3, r1, 8, 8                                     |         r3 = (r1 >> 8) & ((1 << 8) - 1);
    0x0004a6e8 ldr r1, [pc, 0x114]                                   |         
    0x0004a6ea movs r0, 4                                            |         r0 = 4;
    0x0004a6ec add r2, pc                                            |         r2 = 0x94eee;
    0x0004a6ee add r1, pc                                            |         r1 = 0x94ef2;
    0x0004a6f0 bl 0x30d1c                                            |         zbx_zabbix_log ();
                                                                     | label_4:
    0x0004a6f4 ldr r1, [sp]                                          |         r1 = *(sp);
    0x0004a6f6 ands r1, r1, 0x7f                                     |         r1 &= 0x7f;
                                                                     |         if (r1 == r1) {
    0x0004a6fa beq 0x4a706                                           |             goto label_51;
                                                                     |         }
    0x0004a6fc adds r1, 1                                            |         r1++;
    0x0004a6fe sbfx r1, r1, 1, 7                                     |         __asm ("sbfx r1, r1, 1, 7");
    0x0004a702 cmp r1, 0                                             |         
    0x0004a704 ble 0x4a690                                           |         
                                                                     |     } while (r1 <= 0);
                                                                     | label_51:
    0x0004a706 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0004a70a beq 0x4a6be                                           |         goto label_0;
                                                                     |     }
                                                                     | label_7:
    0x0004a70c ldr r1, [sp]                                          |     r1 = *(sp);
    0x0004a70e b 0x4a6ba                                             |     goto label_1;
                                                                     | label_47:
    0x0004a710 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004a714 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004a716 cmp r0, 0x16                                          |     
                                                                     |     if (r0 != 0x16) {
    0x0004a718 bne 0x4a798                                           |         goto label_52;
                                                                     |     }
    0x0004a71a ldr r3, [r5]                                          |     r3 = *(r5);
    0x0004a71c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0004a71e beq 0x4a798                                           |         goto label_52;
                                                                     |     }
    0x0004a720 movs r3, 0                                            |     r3 = 0;
    0x0004a722 str r3, [r5]                                          |     *(r5) = r3;
    0x0004a724 b 0x4a690                                             |     goto label_2;
                                                                     | label_48:
    0x0004a726 adds r2, r3, 1                                        |     r2 = r3 + 1;
    0x0004a728 sbfx r2, r2, 1, 7                                     |     __asm ("sbfx r2, r2, 1, 7");
    0x0004a72c cmp r2, 0                                             |     
                                                                     |     if (r2 <= 0) {
    0x0004a72e ble 0x4a744                                           |         goto label_53;
                                                                     |     }
    0x0004a730 ldr.w r2, [r8]                                        |     r2 = *(r8);
    0x0004a734 cmp r2, 3                                             |     
                                                                     |     if (r2 <= 3) {
    0x0004a736 ble 0x4a6b4                                           |         goto label_3;
                                                                     |     }
    0x0004a738 mov r2, fp                                            |     r2 = fp;
    0x0004a73a mov r1, sl                                            |     r1 = sl;
                                                                     | label_45:
    0x0004a73c movs r0, 4                                            |     r0 = 4;
    0x0004a73e bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a742 b 0x4a6f4                                             |     goto label_4;
                                                                     | label_53:
    0x0004a744 uxtb r3, r1                                           |     r3 = (int8_t) r1;
    0x0004a746 cmp r3, 0x7f                                          |     
                                                                     |     if (r3 == 0x7f) {
    0x0004a748 beq 0x4a76a                                           |         goto label_54;
                                                                     |     }
    0x0004a74a movw r3, 0xffff                                       |     r3 = 0xffff;
    0x0004a74e cmp r1, r3                                            |     
                                                                     |     if (r1 != r3) {
    0x0004a750 bne 0x4a690                                           |         goto label_2;
                                                                     |     }
    0x0004a752 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0004a756 cmp r3, 3                                             |     
                                                                     |     if (r3 <= 3) {
    0x0004a758 ble 0x4a690                                           |         goto label_2;
                                                                     |     }
    0x0004a75a ldr r2, [pc, 0xa8]                                    |     
    0x0004a75c movs r0, 4                                            |     r0 = 4;
    0x0004a75e ldr r1, [pc, 0xa8]                                    |     
    0x0004a760 add r2, pc                                            |     r2 = 0x94f6a;
    0x0004a762 add r1, pc                                            |     r1 = 0x94f70;
    0x0004a764 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a768 b 0x4a6f4                                             |     goto label_4;
                                                                     | label_54:
    0x0004a76a ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0004a76e cmp r3, 3                                             |     
                                                                     |     if (r3 <= 3) {
    0x0004a770 ble 0x4a690                                           |         goto label_2;
                                                                     |     }
    0x0004a772 ubfx r3, r1, 8, 8                                     |     r3 = (r1 >> 8) & ((1 << 8) - 1);
    0x0004a776 ldr r2, [pc, 0x94]                                    |     
    0x0004a778 ldr r1, [pc, 0x94]                                    |     
    0x0004a77a movs r0, 4                                            |     r0 = 4;
    0x0004a77c add r2, pc                                            |     r2 = 0x94f8e;
    0x0004a77e add r1, pc                                            |     r1 = 0x94f92;
    0x0004a780 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a784 b 0x4a6f4                                             |     goto label_4;
                                                                     | label_49:
    0x0004a786 ldr r2, [pc, 0x8c]                                    |     
    0x0004a788 mov r3, r4                                            |     r3 = r4;
    0x0004a78a ldr r1, [pc, 0x8c]                                    |     
    0x0004a78c movs r0, 4                                            |     r0 = 4;
    0x0004a78e add r2, pc                                            |     r2 = 0x94fa8;
    0x0004a790 add r1, pc                                            |     r1 = 0x94fae;
    0x0004a792 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a796 b 0x4a6c6                                             |     goto label_5;
                                                                     | label_52:
    0x0004a798 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0004a79c cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0004a79e bgt 0x4a7ba                                           |         goto label_55;
                                                                     |     }
    0x0004a7a0 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0004a7a4 beq 0x4a6c6                                           |         goto label_5;
                                                                     |     }
    0x0004a7a6 ldr r1, [sp]                                          |     r1 = *(sp);
    0x0004a7a8 b 0x4a6ba                                             |     goto label_1;
                                                                     | label_46:
    0x0004a7aa ldr r2, [pc, 0x70]                                    |     
    0x0004a7ac movs r0, 4                                            |     r0 = 4;
    0x0004a7ae ldr r1, [pc, 0x70]                                    |     
    0x0004a7b0 add r2, pc                                            |     r2 = 0x94fd2;
    0x0004a7b2 add r1, pc                                            |     r1 = 0x94fd8;
    0x0004a7b4 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a7b8 b 0x4a67e                                             |     goto label_6;
                                                                     | label_55:
    0x0004a7ba bl 0x30b74                                            |     zbx_strerror ();
    0x0004a7be ldr r2, [pc, 0x64]                                    |     
    0x0004a7c0 mov r3, r0                                            |     r3 = r0;
    0x0004a7c2 ldr r1, [pc, 0x64]                                    |     
    0x0004a7c4 movs r0, 4                                            |     r0 = 4;
    0x0004a7c6 add r2, pc                                            |     r2 = 0x94ff0;
    0x0004a7c8 add r1, pc                                            |     r1 = 0x94ff6;
    0x0004a7ca bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004a7ce cmp.w sb, 0                                           |     
                                                                     |     if (sb != 0) {
    0x0004a7d2 bne 0x4a70c                                           |         goto label_7;
                                                                     |     }
    0x0004a7d4 b 0x4a6be                                             |     goto label_0;
                                                                     | label_50:
    0x0004a7d6 blx 0xe158                                            |     fcn_0000e158 ();
    0x0004a7da nop                                                   |     
    0x0004a7dc asrs r2, r7, 0x15                                     |     r2 = r7 >> 0x15;
    0x0004a7de movs r1, r0                                           |     r1 = r0;
                                                                     |     do {
    0x0004a7e0 lsls r4, r2, 0xe                                      |         r4 = r2 << 0xe;
    0x0004a7e2 movs r0, r0                                           |         
    0x0004a7e4 asrs r2, r6, 0x15                                     |         r2 = r6 >> 0x15;
    0x0004a7e6 movs r1, r0                                           |         r1 = r0;
    0x0004a7e8 lsls r4, r7, 0xe                                      |         r4 = r7 << 0xe;
    0x0004a7ea movs r0, r0                                           |         
    0x0004a7ec movs r1, 0x3a                                         |         r1 = 0x3a;
    0x0004a7ee movs r1, r0                                           |         r1 = r0;
    0x0004a7f0 svc 0xc0                                              |         __asm ("svc 0xc0");
    0x0004a7f2 movs r0, r0                                           |         
                                                                     |         if (r0 < r0) {
    0x0004a7f4 blt 0x4a8c4                                           |             goto label_56;
                                                                     |         }
    0x0004a7f6 movs r0, r0                                           |         
    0x0004a7f8 asrs r6, r1, 0x14                                     |         r6 = r1 >> 0x14;
    0x0004a7fa movs r1, r0                                           |         r1 = r0;
    0x0004a7fc svc 0x60                                              |         __asm ("svc 0x60");
    0x0004a7fe movs r0, r0                                           |         
    0x0004a800 bge 0x4a7e0                                           |         
                                                                     |     } while (r0 >= r0);
    0x0004a802 movs r0, r0                                           |     
    0x0004a804 udf 0xec                                              |     __asm ("udf 0xec");
                                                                     | label_56:
    0x0004a8c4 mov r0, r7                                            |     r0 = r7;
    0x0004a8c6 blx 0xdb3c                                            |     fcn_0000db3c ();
    0x0004a8ca ldr.w r3, [pc, 0x660]                                 |     r3 = *(0x4af2e);
    0x0004a8ce cmp r0, 0                                             |     
    0x0004a8d0 ldr.w sb, [sl, r3]                                    |     sb = *((sl + r3));
                                                                     |     if (r0 < 0) {
    0x0004a8d4 blt.w 0x4ab30                                         |         goto label_57;
                                                                     |     }
                                                                     | label_15:
    0x0004a8d8 movs r1, 0xa                                          |     r1 = 0xa;
    0x0004a8da mov r0, r7                                            |     r0 = r7;
    0x0004a8dc blx 0xdff4                                            |     r0 = backtrace ();
    0x0004a8e0 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0004a8e2 blt.w 0x4ab0c                                         |         goto label_58;
                                                                     |     }
                                                                     | label_14:
    0x0004a8e6 movs r1, 0xc                                          |     r1 = 0xc;
    0x0004a8e8 mov r0, r7                                            |     r0 = r7;
    0x0004a8ea blx 0xdff4                                            |     r0 = backtrace ();
    0x0004a8ee cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0004a8f0 blt.w 0x4aae8                                         |         goto label_59;
                                                                     |     }
                                                                     | label_13:
    0x0004a8f4 add r3, sp, 0xc4                                      |     r3 += arg_c4h;
    0x0004a8f6 mov r1, r7                                            |     r1 = r7;
    0x0004a8f8 mov r2, r3                                            |     r2 = r3;
    0x0004a8fa movs r0, 0                                            |     r0 = 0;
    0x0004a8fc str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0004a8fe blx 0xe14c                                            |     r0 = fcn_0000e14c ();
    0x0004a902 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0004a904 blt.w 0x4aac4                                         |         goto label_60;
                                                                     |     }
                                                                     | label_12:
    0x0004a908 add.w r3, sp, 0x1160                                  |     r3 += arg_1160h;
    0x0004a90c ldr r0, [r3, 0x10]                                    |     r0 = *((r3 + 0x10));
    0x0004a90e adds r3, 0x10                                         |     r3 += 0x10;
    0x0004a910 bl 0x42fc4                                            |     zbx_alarm_on ();
    0x0004a914 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004a918 cmp r3, 3                                             |     
    0x0004a91a bgt 0x4aa1c                                           |     
                                                                     |     while (1) {
                                                                     |         if (r6 != 0) {
    0x0004a91c cbz r6, 0x4a934                                       |             
    0x0004a91e mov r0, r6                                            |             r0 = r6;
    0x0004a920 blx 0xdbdc                                            |             r0 = fcn_0000dbdc ();
    0x0004a924 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004a926 beq.w 0x4ae48                                         |                 goto label_30;
                                                                     |             }
    0x0004a92a blx 0xe0d0                                            |             fcn_0000e0d0 ();
    0x0004a92e adds r0, 1                                            |             r0++;
                                                                     |             if (r0 == 1) {
    0x0004a930 beq.w 0x4ae48                                         |                 goto label_30;
                                                                     |             }
                                                                     |         }
    0x0004a934 sub.w r0, r5, 0xc                                     |         r0 = r5 - 0xc;
    0x0004a938 blx 0xe370                                            |         fcn_0000e370 ();
    0x0004a93c adds r0, 1                                            |         r0++;
                                                                     |         if (r0 == 1) {
    0x0004a93e beq.w 0x4ae48                                         |             goto label_30;
                                                                     |         }
    0x0004a942 bl 0x340a8                                            |         r0 = zbx_fork ();
    0x0004a946 adds r3, r0, 1                                        |         r3 = r0 + 1;
    0x0004a948 mov r7, r0                                            |         r7 = r0;
                                                                     |         if (r3 == r0) {
    0x0004a94a beq.w 0x4ae38                                         |             goto label_61;
                                                                     |         }
    0x0004a94c strh r5, [r6, 0x12]                                   |         *((r6 + 0x12)) = r5;
    0x0004a94e cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0004a950 bne.w 0x4ab54                                         |             goto label_62;
                                                                     |         }
    0x0004a954 sub.w r3, r4, 0x10c                                   |         r3 = r4 - 0x10c;
    0x0004a958 ldr r0, [r3]                                          |         r0 = *(r3);
    0x0004a95a blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0004a95e mov r1, r7                                            |         r1 = r7;
    0x0004a960 mov r0, r7                                            |         r0 = r7;
    0x0004a962 blx 0xde48                                            |         fcn_0000de48 ();
    0x0004a966 adds r0, 1                                            |         r0++;
    0x0004a968 ldr.w r3, [sb]                                        |         r3 = *(sb);
                                                                     |         if (r0 == 1) {
    0x0004a96c beq.w 0x4aea2                                         |             goto label_63;
                                                                     |         }
    0x0004a970 cmp r3, 3                                             |         
                                                                     |         if (r3 > 3) {
    0x0004a972 bgt.w 0x4aa88                                         |             goto label_64;
                                                                     |         }
                                                                     | label_10:
    0x0004a976 movs r0, 1                                            |         r0 = 1;
    0x0004a978 blx 0xe240                                            |         r0 = munmap (r0, r1);
    0x0004a97c mov r7, r0                                            |         r7 = r0;
    0x0004a97e adds r0, r7, 1                                        |         r0 = r7 + 1;
                                                                     |         if (r0 == r7) {
    0x0004a980 beq.w 0x4aeee                                         |             goto label_65;
                                                                     |         }
    0x0004a984 movs r0, 2                                            |         r0 = 2;
    0x0004a986 blx 0xe240                                            |         r0 = munmap (r0, r1);
    0x0004a98a adds r1, r0, 1                                        |         r1 = r0 + 1;
    0x0004a98c mov r5, r0                                            |         r5 = r0;
                                                                     |         if (r1 == r0) {
    0x0004a98e beq.w 0x4aec6                                         |             goto label_66;
                                                                     |         }
    0x0004a992 movs r2, 1                                            |         r2 = 1;
    0x0004a994 movs r1, 2                                            |         r1 = 2;
    0x0004a996 mov r0, r7                                            |         r0 = r7;
    0x0004a998 blx 0xe054                                            |         pcre_compile ();
    0x0004a99c adds r0, 1                                            |         r0++;
                                                                     |         if (r0 == 1) {
    0x0004a99e beq 0x4aa5e                                           |             goto label_67;
                                                                     |         }
                                                                     | label_9:
    0x0004a9a0 movs r2, 1                                            |         r2 = 1;
    0x0004a9a2 movs r1, 2                                            |         r1 = 2;
    0x0004a9a4 mov r0, r5                                            |         r0 = r5;
    0x0004a9a6 blx 0xe054                                            |         pcre_compile ();
    0x0004a9aa adds r0, 1                                            |         r0++;
                                                                     |         if (r0 == 1) {
    0x0004a9ac beq 0x4aa34                                           |             goto label_68;
                                                                     |         }
                                                                     | label_8:
    0x0004a9ae sub.w r4, r4, 0x10c                                   |         r4 -= 0x10c;
    0x0004a9b2 movs r1, 1                                            |         r1 = 1;
    0x0004a9b4 ldr r0, [r4, 4]                                       |         r0 = *((r4 + 4));
    0x0004a9b6 blx 0xe1f8                                            |         closelog ();
    0x0004a9ba ldr r0, [r4, 4]                                       |         r0 = *((r4 + 4));
    0x0004a9bc movs r1, 2                                            |         r1 = 2;
    0x0004a9be blx 0xe1f8                                            |         closelog ();
    0x0004a9c2 ldr r0, [r4, 4]                                       |         r0 = *((r4 + 4));
    0x0004a9c4 blx 0xe0ac                                            |         fcn_0000e0ac ();
                                                                     |         if (r6 != 0) {
    0x0004a9c8 cbz r6, 0x4a9d4                                       |             
    0x0004a9ca mov r0, r6                                            |             r0 = r6;
    0x0004a9cc blx 0xe17c                                            |             r0 = fcn_0000e17c ();
    0x0004a9d0 cmp r0, 0                                             |             
                                                                     |             if (r0 != 0) {
    0x0004a9d2 bne 0x4aa9e                                           |                 goto label_69;
                                                                     |             }
                                                                     |         }
    0x0004a9d4 ldr.w r2, [pc, 0x558]                                 |         r2 = *(0x0004af30);
    0x0004a9d8 movs r3, 0                                            |         r3 = 0;
    0x0004a9da ldr.w r1, [pc, 0x558]                                 |         r1 = *(0x0004af34);
    0x0004a9de ldr.w r0, [pc, 0x558]                                 |         r0 = *(0x0004af38);
    0x0004a9e2 add r2, pc                                            |         r2 += pc;
    0x0004a9e4 str r3, [sp]                                          |         *(sp) = r3;
    0x0004a9e6 add r1, pc                                            |         r1 += pc;
    0x0004a9e8 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0004a9ea add r0, pc                                            |         r0 += pc;
    0x0004a9ec blx 0xdefc                                            |         fcn_0000defc ();
    0x0004a9f0 movs r1, 1                                            |         r1 = 1;
    0x0004a9f2 mov r0, r7                                            |         r0 = r7;
    0x0004a9f4 blx 0xe1f8                                            |         closelog ();
    0x0004a9f8 movs r1, 2                                            |         r1 = 2;
    0x0004a9fa mov r0, r5                                            |         r0 = r5;
    0x0004a9fc blx 0xe1f8                                            |         closelog ();
    0x0004aa00 mov r0, r7                                            |         r0 = r7;
    0x0004aa02 blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0004aa06 mov r0, r5                                            |         r0 = r5;
    0x0004aa08 blx 0xe0ac                                            |         fcn_0000e0ac ();
    0x0004aa0c ldr.w r3, [sb]                                        |         r3 = *(sb);
    0x0004aa10 cmp r3, 2                                             |         
                                                                     |         if (r3 > 2) {
    0x0004aa12 bgt.w 0x4ad0e                                         |             goto label_70;
                                                                     |         }
                                                                     | label_11:
    0x0004aa16 movs r0, 1                                            |         r0 = 1;
    0x0004aa18 blx 0xe3bc                                            |         fcn_0000e3bc ();
    0x0004aa1c ldr.w r2, [pc, 0x51c]                                 |         
    0x0004aa20 movs r0, 4                                            |         r0 = 4;
    0x0004aa22 ldr.w r1, [pc, 0x51c]                                 |         
    0x0004aa26 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0004aa28 add r2, pc                                            |         r2 = 0x95968;
    0x0004aa2a adds r2, 0xc                                          |         r2 += 0xc;
    0x0004aa2c add r1, pc                                            |         r1 = 0x95972;
    0x0004aa2e bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0004aa32 b 0x4a91c                                             |         
                                                                     |     }
                                                                     | label_68:
    0x0004aa34 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004aa38 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004aa3a ble 0x4a9ae                                           |         goto label_8;
                                                                     |     }
    0x0004aa3c blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aa40 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aa42 bl 0x30b74                                            |     zbx_strerror ();
    0x0004aa46 ldr.w r2, [pc, 0x4fc]                                 |     r2 = *(0x0004af44);
    0x0004aa4a mov r3, r0                                            |     r3 = r0;
    0x0004aa4c ldr.w r1, [pc, 0x4f8]                                 |     r1 = *(0x0004af48);
    0x0004aa50 movs r0, 3                                            |     r0 = 3;
    0x0004aa52 add r2, pc                                            |     r2 += pc;
    0x0004aa54 adds r2, 0xc                                          |     r2 += 0xc;
    0x0004aa56 add r1, pc                                            |     r1 += pc;
    0x0004aa58 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aa5c b 0x4a9ae                                             |     goto label_8;
                                                                     | label_67:
    0x0004aa5e ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004aa62 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004aa64 ble 0x4a9a0                                           |         goto label_9;
                                                                     |     }
    0x0004aa66 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aa6a ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aa6c bl 0x30b74                                            |     zbx_strerror ();
    0x0004aa70 ldr.w r2, [pc, 0x4d8]                                 |     r2 = fcn.0000dbd0;
    0x0004aa74 mov r3, r0                                            |     r3 = r0;
    0x0004aa76 ldr.w r1, [pc, 0x4d8]                                 |     
    0x0004aa7a movs r0, 3                                            |     r0 = 3;
    0x0004aa7c add r2, pc                                            |     r2 += pc;
    0x0004aa7e adds r2, 0xc                                          |     r2 += 0xc;
    0x0004aa80 add r1, pc                                            |     r1 = 0x959d6;
    0x0004aa82 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aa86 b 0x4a9a0                                             |     goto label_9;
                                                                     | label_64:
    0x0004aa88 ldr.w r2, [pc, 0x4c8]                                 |     r2 = *(0x0004af54);
    0x0004aa8c movs r0, 4                                            |     r0 = 4;
    0x0004aa8e ldr.w r1, [pc, 0x4c8]                                 |     r1 = *(0x0004af58);
    0x0004aa92 add r2, pc                                            |     r2 += pc;
    0x0004aa94 adds r2, 0xc                                          |     r2 += 0xc;
    0x0004aa96 add r1, pc                                            |     r1 += pc;
    0x0004aa98 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aa9c b 0x4a976                                             |     goto label_10;
                                                                     | label_69:
    0x0004aa9e ldr.w r3, [pc, 0x4bc]                                 |     r3 = *(0x4af5e);
    0x0004aaa2 ldr.w r3, [sl, r3]                                    |     r3 = *((sl + r3));
    0x0004aaa4 adds r0, 3                                            |     r0 += 3;
    0x0004aaa6 ldr r4, [r3]                                          |     r4 = *(0x4af5e);
    0x0004aaa8 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aaac ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aaae bl 0x30b74                                            |     zbx_strerror ();
    0x0004aab2 ldr.w r2, [pc, 0x4ac]                                 |     
    0x0004aab6 mov r3, r0                                            |     r3 = r0;
    0x0004aab8 movs r1, 1                                            |     r1 = 1;
    0x0004aaba mov r0, r4                                            |     r0 = r4;
    0x0004aabc add r2, pc                                            |     r2 = 0x95a22;
    0x0004aabe blx 0xe188                                            |     fcn_0000e188 ();
    0x0004aac2 b 0x4aa16                                             |     goto label_11;
                                                                     | label_60:
    0x0004aac4 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004aac8 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004aaca ble.w 0x4a908                                         |         goto label_12;
                                                                     |     }
    0x0004aace blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aad2 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aad4 bl 0x30b74                                            |     zbx_strerror ();
    0x0004aad8 ldr.w r1, [pc, 0x488]                                 |     
    0x0004aadc mov r2, r0                                            |     r2 = r0;
    0x0004aade movs r0, 3                                            |     r0 = 3;
    0x0004aae0 add r1, pc                                            |     r1 = 0x95a48;
    0x0004aae2 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aae6 b 0x4a908                                             |     goto label_12;
                                                                     | label_59:
    0x0004aae8 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004aaec cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004aaee ble.w 0x4a8f4                                         |         goto label_13;
                                                                     |     }
    0x0004aaf2 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aaf6 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aaf8 bl 0x30b74                                            |     zbx_strerror ();
    0x0004aafc ldr.w r1, [pc, 0x468]                                 |     
    0x0004ab00 mov r2, r0                                            |     r2 = r0;
    0x0004ab02 movs r0, 3                                            |     r0 = 3;
    0x0004ab04 add r1, pc                                            |     r1 = 0x95a70;
    0x0004ab06 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ab0a b 0x4a8f4                                             |     goto label_13;
                                                                     | label_58:
    0x0004ab0c ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ab10 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004ab12 ble.w 0x4a8e6                                         |         goto label_14;
                                                                     |     }
    0x0004ab16 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004ab1a ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004ab1c bl 0x30b74                                            |     zbx_strerror ();
    0x0004ab20 ldr.w r1, [pc, 0x448]                                 |     
    0x0004ab24 mov r2, r0                                            |     r2 = r0;
    0x0004ab26 movs r0, 3                                            |     r0 = 3;
    0x0004ab28 add r1, pc                                            |     r1 = 0x95a98;
    0x0004ab2a bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ab2e b 0x4a8e6                                             |     goto label_14;
                                                                     | label_57:
    0x0004ab30 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ab34 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004ab36 ble.w 0x4a8d8                                         |         goto label_15;
                                                                     |     }
    0x0004ab3a blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004ab3e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004ab40 bl 0x30b74                                            |     zbx_strerror ();
    0x0004ab44 ldr.w r1, [pc, 0x428]                                 |     
    0x0004ab48 mov r2, r0                                            |     r2 = r0;
    0x0004ab4a movs r0, 3                                            |     r0 = 3;
    0x0004ab4c add r1, pc                                            |     r1 = 0x95ac0;
    0x0004ab4e bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ab52 b 0x4a8d8                                             |     goto label_15;
                                                                     | label_62:
    0x0004ab54 sub.w r6, r4, 0x10c                                   |     r6 = r4 - 0x10c;
    0x0004ab58 ldr r0, [r6, 4]                                       |     r0 = *((r6 + 4));
    0x0004ab5a blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0004ab5e ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ab62 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0004ab64 bgt.w 0x4ad34                                         |         goto label_71;
                                                                     |     }
                                                                     | label_21:
    0x0004ab68 sub.w r3, r4, 0x10c                                   |     r3 = r4 - 0x10c;
    0x0004ab6c ldr r1, [r3]                                          |     r1 = *(r3);
    0x0004ab6e adds r6, r1, 1                                        |     r6 = r1 + 1;
                                                                     |     if (r6 == r1) {
    0x0004ab70 beq.w 0x4ae48                                         |         goto label_30;
                                                                     |     }
    0x0004ab74 str r7, [sp, 0x20]                                    |     var_20h = r7;
    0x0004ab76 add r6, sp, 0x144                                     |     r6 += arg_144h;
    0x0004ab78 sub.w sl, r4, 0x118                                   |     sl = r4 - 0x118;
    0x0004ab7c mov.w fp, 0                                           |     
    0x0004ab80 mov r7, r1                                            |     r7 = r1;
    0x0004ab82 b 0x4abaa                                             |     
                                                                     |     while (r0 > 0) {
    0x0004ab84 ldr.w r3, [sl]                                        |         r3 = *(sl);
    0x0004ab88 add r3, r0                                            |         r3 += r0;
    0x0004ab8a cmp.w r3, 0x80000                                     |         
                                                                     |         if (r3 >= 0x80000) {
    0x0004ab8e bhs.w 0x4aca0                                         |             goto label_72;
                                                                     |         }
    0x0004ab92 add r0, r4                                            |         r0 += r4;
    0x0004ab94 mov r3, r6                                            |         r3 = r6;
    0x0004ab96 strb fp, [r0, -0x4]                                   |         *((r0 - 0x4)) = fp;
    0x0004ab9a sub.w r2, r5, 0x18                                    |         r2 = r5 - 0x18;
    0x0004ab9e sub.w r1, r5, 0x1c                                    |         r1 = r5 - 0x1c;
    0x0004aba2 sub.w r0, r5, 0x14                                    |         r0 = r5 - 0x14;
    0x0004aba6 bl 0x44240                                            |         zbx_strcpy_alloc ()
    0x0004aba8 invalid                                               |         
    0x0004abaa movw r2, 0xfff                                        |         r2 = 0xfff;
    0x0004abae mov r1, r6                                            |         r1 = r6;
    0x0004abb0 mov r0, r7                                            |         r0 = r7;
    0x0004abb2 blx 0xde54                                            |         r0 = fcn_0000de54 ();
    0x0004abb6 cmp r0, 0                                             |         
    0x0004abb8 bgt 0x4ab84                                           |         
                                                                     |     }
    0x0004abba mov r1, r7                                            |     r1 = r7;
    0x0004abbc str r0, [sp, 0x24]                                    |     var_24h = r0;
    0x0004abbe mov r0, r1                                            |     r0 = r1;
    0x0004abc0 ldr r7, [sp, 0x20]                                    |     r7 = var_20h;
    0x0004abc2 blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0004abc6 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0004abc8 adds r2, r3, 1                                        |     r2 = r3 + 1;
                                                                     |     if (r2 != r3) {
    0x0004abca bne 0x4acae                                           |         goto label_73;
                                                                     |     }
                                                                     | label_17:
    0x0004abcc blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004abd0 mov r6, r0                                            |     r6 = r0;
    0x0004abd2 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004abd4 cmp r0, 4                                             |     
                                                                     |     if (r0 == 4) {
    0x0004abd6 beq.w 0x4ad48                                         |         goto label_74;
                                                                     |     }
    0x0004abda bl 0x30b74                                            |     zbx_strerror ();
    0x0004abde ldr r2, [pc, 0x394]                                   |     
    0x0004abe0 mov.w r5, -1                                          |     r5 = -1;
    0x0004abe4 mov r3, r0                                            |     r3 = r0;
    0x0004abe6 ldr r1, [sp, 0x18]                                    |     r1 = var_18h;
    0x0004abe8 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004abea add r2, pc                                            |     r2 = 0x95b64;
    0x0004abec bl 0x43f38                                            |     zbx_snprintf ();
                                                                     | label_22:
    0x0004abf0 movs r1, 0xf                                          |     r1 = 0xf;
    0x0004abf2 rsbs r0, r7, 0                                        |     r0 = r7 - ;
    0x0004abf4 blx 0xe2e0                                            |     fcn_0000e2e0 ();
    0x0004abf8 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0004abfa beq.w 0x4ad68                                         |         goto label_75;
                                                                     |     }
                                                                     | label_23:
    0x0004abfe movs r1, 0                                            |     r1 = 0;
    0x0004ac00 mov r0, r7                                            |     r0 = r7;
    0x0004ac02 bl 0x4a650                                            |     void (*0x4a650)() ();
    0x0004ac06 bl 0x42fd4                                            |     zbx_alarm_off ();
    0x0004ac0a ldr r1, [sp, 0x14]                                    |     r1 = var_14h;
    0x0004ac0c movs r2, 0                                            |     r2 = 0;
    0x0004ac0e movs r0, 2                                            |     r0 = 2;
    0x0004ac10 blx 0xe14c                                            |     r0 = fcn_0000e14c ();
    0x0004ac14 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x0004ac16 blt.w 0x4ad28                                         |         goto label_76;
                                                                     |     }
                                                                     | label_19:
    0x0004ac1a adds r3, r5, 4                                        |     r3 = r5 + 4;
                                                                     |     if (r3 == r5) {
    0x0004ac1c beq 0x4ac72                                           |         goto label_77;
                                                                     |     }
                                                                     | label_18:
    0x0004ac1e ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0004ac20 subs r6, r5, 0                                        |     r6 = r5 - 0;
    0x0004ac22 it ne                                                 |     
                                                                     |     if (r6 == r5) {
    0x0004ac24 movne r6, 1                                           |         r6 = 1;
                                                                     |     }
    0x0004ac26 cmp.w r8, 0                                           |     
    0x0004ac2a it eq                                                 |     
                                                                     |     if (r8 != 0) {
    0x0004ac2c orreq r6, r6, 1                                       |         r6 |= 1;
                                                                     |     }
    0x0004ac30 ldrb r3, [r3]                                         |     r3 = *(r3);
                                                                     |     if (r3 != 0) {
    0x0004ac32 cbz r3, 0x4ac3e                                       |         
    0x0004ac34 ldr.w r3, [sb]                                        |         r3 = *(sb);
    0x0004ac38 cmp r3, 2                                             |         
                                                                     |         if (r3 > 2) {
    0x0004ac3a bgt.w 0x4adbe                                         |             goto label_78;
                                                                     |         }
                                                                     |     }
                                                                     | label_26:
    0x0004ac3e cbnz r6, 0x4ac88                                      |     
                                                                     |     while (r8 != 0) {
    0x0004ac40 sub.w r4, r4, 0x114                                   |         r4 -= 0x114;
    0x0004ac44 ldr r3, [r4]                                          |         r3 = *(r4);
    0x0004ac46 str.w r3, [r8]                                        |         __asm ("str.w r3, [r8]");
                                                                     | label_16:
    0x0004ac4a ldr r2, [pc, 0x32c]                                   |         
    0x0004ac4c add.w r1, sp, 0x1140                                  |         r1 += arg_1140h;
    0x0004ac50 ldr r3, [pc, 0x2cc]                                   |         r3 = *(0x4af20);
    0x0004ac52 adds r1, 4                                            |         r1 += 4;
    0x0004ac54 add r2, pc                                            |         r2 = 0x95bd2;
    0x0004ac56 ldr r3, [r2, r3]                                      |         r3 = *(0x95bd2);
    0x0004ac58 ldr r2, [r3]                                          |         r2 = *(0x95bd2);
    0x0004ac5a ldr r3, [r1]                                          |         r3 = *(r1);
    0x0004ac5c eors r2, r3                                           |         r2 ^= r3;
    0x0004ac5e mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0004ac62 bne.w 0x4af16                                         |             goto label_79;
                                                                     |         }
    0x0004ac66 mov r0, r5                                            |         r0 = r5;
    0x0004ac68 add.w sp, sp, 0x1140                                  |         
    0x0004ac6c add sp, 0xc                                           |         
    0x0004ac6e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_77:
    0x0004ac72 ldr r6, [sp, 0x10]                                    |         r6 = var_10h;
    0x0004ac74 ldr r1, [pc, 0x304]                                   |         
    0x0004ac76 ldr r2, [sp, 0x18]                                    |         r2 = var_18h;
    0x0004ac78 mov r0, r6                                            |         r0 = r6;
    0x0004ac7a add r1, pc                                            |         r1 = 0x95bfa;
    0x0004ac7c bl 0x4465c                                            |         zbx_strlcpy ();
    0x0004ac80 ldrb r3, [r6]                                         |         r3 = *(r6);
    0x0004ac82 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0004ac84 bne.w 0x4adce                                         |             goto label_80;
                                                                     |         }
                                                                     | label_27:
    0x0004ac88 sub.w r6, r4, 0x114                                   |         r6 = r4 - 0x114;
    0x0004ac8c ldr r0, [r6]                                          |         r0 = *(r6);
                                                                     |         if (r0 != 0) {
    0x0004ac8e cbz r0, 0x4ac98                                       |             
    0x0004ac90 blx 0xde30                                            |             fcn_0000de30 ();
    0x0004ac94 movs r3, 0                                            |             r3 = 0;
    0x0004ac96 str r3, [r6]                                          |             *(r6) = r3;
                                                                     |         }
    0x0004ac98 cmp.w r8, 0                                           |         
    0x0004ac9c bne 0x4ac40                                           |         
                                                                     |     }
    0x0004ac9e b 0x4ac4a                                             |     goto label_16;
                                                                     | label_72:
    0x0004aca0 mov r1, r7                                            |     r1 = r7;
    0x0004aca2 str r0, [sp, 0x24]                                    |     var_24h = r0;
    0x0004aca4 mov r0, r1                                            |     r0 = r1;
    0x0004aca6 ldr r7, [sp, 0x20]                                    |     r7 = var_20h;
    0x0004aca8 blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0004acac ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
                                                                     | label_73:
    0x0004acae sub.w r1, r5, 0x10                                    |     r1 = r5 - 0x10;
    0x0004acb2 mov r0, r7                                            |     r0 = r7;
    0x0004acb4 str r3, [sp, 0x20]                                    |     var_20h = r3;
    0x0004acb6 bl 0x4a650                                            |     void (*0x4a650)() ();
    0x0004acba adds r0, 1                                            |     r0++;
    0x0004acbc ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
                                                                     |     if (r0 == 1) {
    0x0004acbe beq 0x4abcc                                           |         goto label_17;
                                                                     |     }
    0x0004acc0 sub.w r2, r4, 0x118                                   |     r2 = r4 - 0x118;
    0x0004acc4 ldr r2, [r2]                                          |     r2 = *(r2);
    0x0004acc6 add r3, r2                                            |     r3 += r2;
    0x0004acc8 cmp.w r3, 0x80000                                     |     
                                                                     |     if (r3 <= 0x80000) {
    0x0004accc blo 0x4ad88                                           |         goto label_81;
                                                                     |     }
    0x0004acce ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004acd2 cmp r3, 1                                             |     
                                                                     |     if (r3 > 1) {
    0x0004acd4 bgt.w 0x4ae10                                         |         goto label_82;
                                                                     |     }
                                                                     | label_25:
    0x0004acd8 mov.w r5, -1                                          |     r5 = -1;
                                                                     | label_24:
    0x0004acdc bl 0x42fd4                                            |     zbx_alarm_off ();
    0x0004ace0 ldr r1, [sp, 0x14]                                    |     r1 = var_14h;
    0x0004ace2 movs r2, 0                                            |     r2 = 0;
    0x0004ace4 movs r0, 2                                            |     r0 = 2;
    0x0004ace6 blx 0xe14c                                            |     r0 = fcn_0000e14c ();
    0x0004acea cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0004acec bge 0x4ac1e                                           |         goto label_18;
                                                                     |     }
    0x0004acee ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004acf2 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004acf4 ble 0x4ac1e                                           |         goto label_18;
                                                                     |     }
                                                                     | label_20:
    0x0004acf6 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004acfa ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004acfc bl 0x30b74                                            |     zbx_strerror ();
    0x0004ad00 ldr r1, [pc, 0x27c]                                   |     
    0x0004ad02 mov r2, r0                                            |     r2 = r0;
    0x0004ad04 movs r0, 3                                            |     r0 = 3;
    0x0004ad06 add r1, pc                                            |     r1 = 0x95c8a;
    0x0004ad08 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ad0c b 0x4ac1a                                             |     goto label_19;
                                                                     | label_70:
    0x0004ad0e blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004ad12 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004ad14 bl 0x30b74                                            |     zbx_strerror ();
    0x0004ad18 ldr r1, [pc, 0x268]                                   |     
    0x0004ad1a mov r3, r0                                            |     r3 = r0;
    0x0004ad1c ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0004ad1e movs r0, 3                                            |     r0 = 3;
    0x0004ad20 add r1, pc                                            |     r1 = 0x95ca8;
    0x0004ad22 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ad26 b 0x4aa16                                             |     goto label_11;
                                                                     | label_76:
    0x0004ad28 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ad2c cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004ad2e ble.w 0x4ac1a                                         |         goto label_19;
                                                                     |     }
    0x0004ad32 b 0x4acf6                                             |     goto label_20;
                                                                     | label_71:
    0x0004ad34 ldr r2, [pc, 0x250]                                   |     
    0x0004ad36 movs r0, 4                                            |     r0 = 4;
    0x0004ad38 ldr r1, [pc, 0x250]                                   |     
    0x0004ad3a ldr r3, [r6]                                          |     r3 = *(r6);
    0x0004ad3c add r2, pc                                            |     r2 = 0x95cc8;
    0x0004ad3e adds r2, 0xc                                          |     r2 += 0xc;
    0x0004ad40 add r1, pc                                            |     r1 = 0x95cd0;
    0x0004ad42 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ad46 b 0x4ab68                                             |     goto label_21;
                                                                     | label_74:
    0x0004ad48 mvn r5, 3                                             |     r5 = ~3;
    0x0004ad4c bl 0x42fec                                            |     r0 = zbx_alarm_timed_out ();
    0x0004ad50 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0004ad52 beq.w 0x4abf0                                         |         goto label_22;
                                                                     |     }
    0x0004ad56 ldr r1, [pc, 0x238]                                   |     
    0x0004ad58 mvn r5, 7                                             |     r5 = ~7;
    0x0004ad5c ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0004ad5e ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004ad60 add r1, pc                                            |     r1 = 0x95cf6;
    0x0004ad62 bl 0x4465c                                            |     zbx_strlcpy ();
    0x0004ad66 b 0x4abf0                                             |     goto label_22;
                                                                     | label_75:
    0x0004ad68 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ad6c cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0004ad6e ble.w 0x4abfe                                         |         goto label_23;
                                                                     |     }
    0x0004ad72 ldr r0, [r6]                                          |     r0 = *(r6);
    0x0004ad74 bl 0x30b74                                            |     zbx_strerror ();
    0x0004ad78 ldr r1, [pc, 0x218]                                   |     
    0x0004ad7a mov r3, r0                                            |     r3 = r0;
    0x0004ad7c ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0004ad7e movs r0, 2                                            |     r0 = 2;
    0x0004ad80 add r1, pc                                            |     r1 = 0x95d18;
    0x0004ad82 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ad86 b 0x4abfe                                             |     goto label_23;
                                                                     | label_81:
    0x0004ad88 sub.w r3, r4, 0x110                                   |     r3 = r4 - 0x110;
    0x0004ad8c ldr r3, [r3]                                          |     r3 = *(r3);
    0x0004ad8e ands r5, r3, 0x7f                                     |     r5 = r3 & 0x7f;
                                                                     |     if (r5 != r3) {
    0x0004ad92 bne 0x4ade8                                           |         goto label_83;
                                                                     |     }
    0x0004ad94 ldr r2, [sp, 0x1c]                                    |     r2 = var_1ch;
    0x0004ad96 cmp r2, 1                                             |     
                                                                     |     if (r2 != 1) {
    0x0004ad98 bne 0x4acdc                                           |         goto label_24;
                                                                     |     }
    0x0004ad9a ubfx r5, r3, 8, 8                                     |     r5 = (r3 >> 8) & ((1 << 8) - 1);
    0x0004ad9e cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0004ada0 beq 0x4acdc                                           |         goto label_24;
                                                                     |     }
    0x0004ada2 sub.w r3, r4, 0x114                                   |     r3 = r4 - 0x114;
    0x0004ada6 ldr r1, [r3]                                          |     r1 = *(r3);
    0x0004ada8 ldrb r3, [r1]                                         |     r3 = *(r1);
    0x0004adaa cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0004adac bne 0x4ae20                                           |         goto label_84;
                                                                     |     }
    0x0004adae ldr r2, [pc, 0x1e8]                                   |     
    0x0004adb0 mov r3, r5                                            |     r3 = r5;
    0x0004adb2 ldr r1, [sp, 0x18]                                    |     r1 = var_18h;
    0x0004adb4 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004adb6 add r2, pc                                            |     r2 = 0x95d54;
    0x0004adb8 bl 0x43f38                                            |     zbx_snprintf ();
    0x0004adbc b 0x4acd8                                             |     goto label_25;
                                                                     | label_78:
    0x0004adbe ldr r1, [pc, 0x1dc]                                   |     
    0x0004adc0 movs r0, 3                                            |     r0 = 3;
    0x0004adc2 ldrd r2, r3, [sp, 0xc]                                |     __asm ("ldrd r2, r3, [var_ch]");
    0x0004adc6 add r1, pc                                            |     r1 = 0x95d68;
    0x0004adc8 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004adcc b 0x4ac3e                                             |     goto label_26;
                                                                     | label_80:
    0x0004adce ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004add2 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004add4 ble.w 0x4ac88                                         |         goto label_27;
                                                                     |     }
    0x0004add8 ldr r1, [pc, 0x1c4]                                   |     
    0x0004adda movs r0, 3                                            |     r0 = 3;
    0x0004addc ldrd r2, r3, [sp, 0xc]                                |     __asm ("ldrd r2, r3, [var_ch]");
    0x0004ade0 add r1, pc                                            |     r1 = 0x95d84;
    0x0004ade2 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004ade6 b 0x4ac88                                             |     goto label_27;
                                                                     | label_83:
    0x0004ade8 sub.w r3, r4, 0x114                                   |     r3 = r4 - 0x114;
    0x0004adec ldr r1, [r3]                                          |     r1 = *(r3);
    0x0004adee ldrb r3, [r1]                                         |     r3 = *(r1);
                                                                     |     if (r3 == 0) {
    0x0004adf0 cbnz r3, 0x4ae20                                      |         
    0x0004adf2 adds r3, r5, 1                                        |         r3 = r5 + 1;
    0x0004adf4 sbfx r3, r3, 1, 7                                     |         __asm ("sbfx r3, r3, 1, 7");
    0x0004adf8 cmp r3, 0                                             |         
                                                                     |         if (r3 <= 0) {
    0x0004adfa ble 0x4ae2a                                           |             goto label_85;
                                                                     |         }
    0x0004adfc ldr r2, [pc, 0x1a4]                                   |         
    0x0004adfe mov r3, r5                                            |         r3 = r5;
    0x0004ae00 ldr r1, [sp, 0x18]                                    |         r1 = var_18h;
    0x0004ae02 mvn r5, 7                                             |         r5 = ~7;
    0x0004ae06 ldr r0, [sp, 0x10]                                    |         r0 = var_10h;
    0x0004ae08 add r2, pc                                            |         r2 = 0x95db0;
    0x0004ae0a bl 0x43f38                                            |         zbx_snprintf ();
    0x0004ae0e b 0x4acdc                                             |         goto label_24;
                                                                     | label_82:
    0x0004ae10 ldr r1, [pc, 0x194]                                   |         
    0x0004ae12 mov.w r2, 0x200                                       |         r2 = 0x200;
    0x0004ae16 movs r0, 2                                            |         r0 = 2;
    0x0004ae18 add r1, pc                                            |         r1 = 0x95dc4;
    0x0004ae1a bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0004ae1e b 0x4acd8                                             |         goto label_25;
                                                                     |     }
                                                                     | label_84:
    0x0004ae20 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0004ae22 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004ae24 bl 0x4465c                                            |     zbx_strlcpy ();
    0x0004ae28 b 0x4acd8                                             |     goto label_25;
                                                                     | label_85:
    0x0004ae2a ldr r1, [pc, 0x180]                                   |     
    0x0004ae2c ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0004ae2e ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004ae30 add r1, pc                                            |     r1 = 0x95de2;
    0x0004ae32 bl 0x4465c                                            |     zbx_strlcpy ();
    0x0004ae36 b 0x4acd8                                             |     goto label_25;
                                                                     | label_61:
    0x0004ae38 sub.w r5, r4, 0x10c                                   |     r5 = r4 - 0x10c;
                                                                     | label_29:
    0x0004ae3c ldr r0, [r5]                                          |     r0 = *(r5);
    0x0004ae3e blx 0xe0ac                                            |     fcn_0000e0ac ();
    0x0004ae42 ldr r0, [r5, 4]                                       |     r0 = *((r5 + 4));
    0x0004ae44 blx 0xe0ac                                            |     fcn_0000e0ac ();
                                                                     | label_30:
    0x0004ae48 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
                                                                     | label_31:
    0x0004ae4c ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004ae4e invalid                                               |     
                                                                     | label_32:
    0x0004ae50 invalid                                               |     
    0x0004ae54 mov r1, r0                                            |     r1 = r0;
    0x0004ae56 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0004ae58 bl 0x4465c                                            |     zbx_strlcpy ();
    0x0004ae5c bl 0x42fd4                                            |     zbx_alarm_off ();
    0x0004ae60 ldr r1, [sp, 0x14]                                    |     r1 = var_14h;
    0x0004ae62 movs r2, 0                                            |     r2 = 0;
    0x0004ae64 movs r0, 2                                            |     r0 = 2;
    0x0004ae66 blx 0xe14c                                            |     r0 = fcn_0000e14c ();
    0x0004ae6a cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x0004ae6c blt 0x4ae7a                                           |         
    0x0004ae6e ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0004ae70 ldrb r3, [r3]                                         |         r3 = *(r3);
                                                                     |         if (r3 != 0) {
    0x0004ae72 cbnz r3, 0x4ae8a                                      |             goto label_86;
                                                                     |         }
                                                                     | label_28:
    0x0004ae74 mov.w r5, -1                                          |         r5 = -1;
    0x0004ae78 b 0x4ac88                                             |         goto label_27;
                                                                     |     }
    0x0004ae7a ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ae7e invalid                                               |     
                                                                     | label_35:
    0x0004ae80 adds r5, 0xff                                         |     r5 += 0xff;
    0x0004ae82 cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004ae84 ble.w 0x4ac1e                                         |         goto label_18;
                                                                     |     }
                                                                     | label_41:
    0x0004ae88 b 0x4acf6                                             |     goto label_20;
                                                                     | label_86:
    0x0004ae8a ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004ae8e cmp r3, 2                                             |     
                                                                     |     if (r3 <= 2) {
    0x0004ae90 ble 0x4ae74                                           |         goto label_28;
                                                                     |     }
    0x0004ae92 ldr r1, [pc, 0x11c]                                   |     
    0x0004ae94 movs r0, 3                                            |     r0 = 3;
    0x0004ae96 ldrd r2, r3, [sp, 0xc]                                |     __asm ("ldrd r2, r3, [var_ch]");
    0x0004ae9a add r1, pc                                            |     r1 = 0x95e50;
                                                                     | label_39:
    0x0004ae9c bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aea0 b 0x4ae74                                             |     goto label_28;
                                                                     | label_63:
    0x0004aea2 cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0004aea4 ble.w 0x4aa16                                         |         goto label_11;
                                                                     |     }
    0x0004aea8 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aeac ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aeae bl 0x30b74                                            |     zbx_strerror ();
    0x0004aeb2 ldr r2, [pc, 0x100]                                   |     
    0x0004aeb4 mov r3, r0                                            |     r3 = r0;
    0x0004aeb6 ldr r1, [pc, 0x100]                                   |     
    0x0004aeb8 movs r0, 2                                            |     r0 = 2;
    0x0004aeba add r2, pc                                            |     r2 = 0x95e74;
    0x0004aebc add r1, pc                                            |     r1 = 0x95e7a;
    0x0004aebe adds r2, 0xc                                          |     r2 += 0xc;
    0x0004aec0 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aec4 b 0x4aa16                                             |     goto label_11;
    0x0004aeb0 invalid                                               |     
                                                                     | label_66:
    0x0004aec6 ldr.w r3, [sb]                                        |     r3 = *(sb);
    0x0004aeca cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
                                                                     | label_37:
    0x0004aecc ble.w 0x4aa16                                         |         goto label_11;
                                                                     |     }
    0x0004aed0 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
    0x0004aed4 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aed6 bl 0x30b74                                            |     zbx_strerror ();
    0x0004aeda ldr r2, [pc, 0xe0]                                    |     r2 = *(0x4afbe);
                                                                     | label_43:
    0x0004aedc mov r3, r0                                            |     r3 = r0;
    0x0004aede ldr r1, [pc, 0xe0]                                    |     r1 = *(0x4afc2);
    0x0004aee0 movs r0, 2                                            |     r0 = 2;
    0x0004aee2 add r2, pc                                            |     r2 += pc;
                                                                     | label_33:
    0x0004aee4 add r1, pc                                            |     r1 += pc;
    0x0004aee6 adds r2, 0xc                                          |     r2 += 0xc;
    0x0004aee8 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004aeec b 0x4aa16                                             |     goto label_11;
                                                                     | label_65:
    0x0004aeee ldr.w r3, [sb]                                        |     r3 = *(sb);
                                                                     | label_36:
    0x0004aef0 adds r0, 0                                            |     r0 += 0;
    0x0004aef2 cmp r3, 1                                             |     
                                                                     |     if (r3 <= 1) {
    0x0004aef4 ble.w 0x4aa16                                         |         goto label_11;
                                                                     |     }
    0x0004aef8 blx 0xe3d4                                            |     r0 = fcn_0000e3d4 ();
                                                                     | label_44:
    0x0004aefc ldr r0, [r0]                                          |     r0 = *(r0);
    0x0004aefe bl 0x30b74                                            |     zbx_strerror ();
    0x0004af02 ldr r2, [pc, 0xc0]                                    |     
    0x0004af04 mov r3, r0                                            |     r3 = r0;
    0x0004af06 ldr r1, [pc, 0xc0]                                    |     
    0x0004af08 movs r0, 2                                            |     r0 = 2;
    0x0004af0a add r2, pc                                            |     r2 = 0x95ed4;
    0x0004af0c add r1, pc                                            |     r1 = 0x95eda;
    0x0004af0e adds r2, 0xc                                          |     r2 += 0xc;
    0x0004af10 bl 0x30d1c                                            |     zbx_zabbix_log ();
    0x0004af14 b 0x4aa16                                             |     goto label_11;
                                                                     | label_79:
    0x0004af16 blx 0xe158                                            |     fcn_0000e158 ();
    0x0004af1a nop                                                   |     
    0x0004af1c asrs r0, r2, 0xe                                      |     r0 = r2 >> 0xe;
    0x0004af1e movs r1, r0                                           |     r1 = r0;
    0x0004af20 lsls r4, r2, 0xe                                      |     r4 = r2 << 0xe;
    0x0004af22 movs r0, r0                                           |     
    0x0004af24 asrs r6, r0, 0xe                                      |     r6 = r0 >> 0xe;
    0x0004af26 movs r1, r0                                           |     r1 = r0;
                                                                     |     if (r1 < r0) {
    0x0004af28 bls 0x4ae3c                                           |         goto label_29;
                                                                     |     }
    0x0004af2a movs r0, r0                                           |     
    0x0004af2c lsls r4, r7, 0xe                                      |     r4 = r7 << 0xe;
    0x0004af2e movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
    0x0004af30 bge 0x4ae48                                           |         goto label_30;
                                                                     |     }
    0x0004af32 movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
                                                                     | label_40:
    0x0004af34 bge 0x4ae4c                                           |         goto label_31;
                                                                     |     }
    0x0004af36 movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
    0x0004af38 bge 0x4ae50                                           |         goto label_32;
                                                                     |     }
    0x0004af3a movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
                                                                     | label_34:
    0x0004af3c bgt 0x4af88                                           |         goto label_87;
                                                                     |     }
    0x0004af3e movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
                                                                     | label_38:
    0x0004af40 bhi 0x4aee4                                           |         goto label_33;
                                                                     |     }
    0x0004af42 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af44 blt 0x4af3c                                           |         goto label_34;
                                                                     |     }
    0x0004af46 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af48 bls 0x4ae80                                           |         goto label_35;
                                                                     |     }
    0x0004af4a movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af4c blt 0x4aef0                                           |         goto label_36;
                                                                     |     }
    0x0004af4e movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af50 bls 0x4afa4                                           |         goto label_88;
                                                                     |     }
    0x0004af52 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af54 blt 0x4aecc                                           |         goto label_37;
                                                                     |     }
    0x0004af56 movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
    0x0004af58 bhi 0x4aeb0                                           |         void (*0x4aeb0)() ();
                                                                     |     }
    0x0004af5a movs r0, r0                                           |     
    0x0004af5c lsls r4, r5, 0xf                                      |     r4 = r5 << 0xf;
    0x0004af5e movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004af60 bls 0x4b05c                                           |         void (*0x4b05c)() ();
                                                                     |     }
    0x0004af62 movs r0, r0                                           |     
    0x0004af64 bvc 0x4af40                                           |     __asm ("bvc 0x4af40");
                                                                     |     goto label_38;
    0x0004af66 movs r0, r0                                           |     
    0x0004af68 bvc 0x4ae9c                                           |     __asm ("bvc 0x4ae9c");
                                                                     |     goto label_39;
    0x0004af6a movs r0, r0                                           |     
                                                                     |     do {
    0x0004af6c bvc 0x4aff8                                           |         __asm ("bvc 0x4aff8");
    0x0004af6e movs r0, r0                                           |         
    0x0004af70 bvs 0x4af6c                                           |         __asm ("bvs 0x4af6c");
                                                                     |     } while (1);
    0x0004af72 movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
                                                                     | label_42:
    0x0004af74 bhi 0x4af34                                           |         goto label_40;
                                                                     |     }
    0x0004af76 movs r0, r0                                           |     
    0x0004af78 lsrs r4, r0, 0x1e                                     |     r4 = r0 >> 0x1e;
    0x0004af7a movs r1, r0                                           |     r1 = r0;
                                                                     |     if (r1 < r0) {
    0x0004af7c bls 0x4afdc                                           |         void (*0x4afdc)() ();
                                                                     |     }
    0x0004af7e movs r0, r0                                           |     
                                                                     |     if (r0 > r0) {
    0x0004af80 bhi 0x4ae88                                           |         goto label_41;
                                                                     |     }
    0x0004af82 movs r0, r0                                           |     
                                                                     |     do {
    0x0004af84 bvc 0x4b040                                           |         __asm ("bvc 0x4b040");
    0x0004af86 movs r0, r0                                           |         
                                                                     |         if (r0 < r0) {
                                                                     | label_87:
    0x0004af88 bls 0x4afac                                           |             goto label_89;
                                                                     |         }
    0x0004af8a movs r0, r0                                           |         
    0x0004af8c adds r7, 0x20                                         |         r7 += 0x20;
    0x0004af8e movs r0, r0                                           |         
    0x0004af90 bvc 0x4b004                                           |         __asm ("bvc 0x4b004");
    0x0004af92 movs r0, r0                                           |         
    0x0004af94 bvc 0x4b060                                           |         __asm ("bvc 0x4b060");
    0x0004af96 movs r0, r0                                           |         
    0x0004af98 bvc 0x4b078                                           |         __asm ("bvc 0x4b078");
    0x0004af9a movs r0, r0                                           |         
                                                                     |         if (r0 > r0) {
    0x0004af9c bhi 0x4afb4                                           |             goto label_90;
                                                                     |         }
    0x0004af9e movs r0, r0                                           |         
    0x0004afa0 bvc 0x4af84                                           |         __asm ("bvc 0x4af84");
                                                                     |     } while (1);
    0x0004afa2 movs r0, r0                                           |     
                                                                     | label_88:
    0x0004afa4 bvc 0x4b020                                           |     __asm ("bvc 0x4b020");
    0x0004afa6 movs r0, r0                                           |     
    0x0004afa8 bvs 0x4af74                                           |     __asm ("bvs 0x4af74");
                                                                     |     goto label_42;
    0x0004afaa movs r0, r0                                           |     
                                                                     | label_89:
    0x0004afac bvc 0x4b018                                           |     __asm ("bvc 0x4b018");
    0x0004afae movs r0, r0                                           |     
    0x0004afb0 bvc 0x4b020                                           |     __asm ("bvc 0x4b020");
    0x0004afb2 movs r0, r0                                           |     
                                                                     | label_90:
    0x0004afb4 bvc 0x4aedc                                           |     __asm ("bvc 0x4aedc");
                                                                     |     goto label_43;
    0x0004afb6 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004afb8 bmi 0x4b06c                                           |         void (*0x4b06c)() ();
                                                                     |     }
    0x0004afba movs r0, r0                                           |     
    0x0004afbc bvc 0x4b094                                           |     __asm ("bvc 0x4b094");
    0x0004afbe movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004afc0 bmi 0x4aefc                                           |         goto label_44;
                                                                     |     }
    0x0004afc2 movs r0, r0                                           |     
    0x0004afc4 bvc 0x4b04c                                           |     __asm ("bvc 0x4b04c");
    0x0004afc6 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004afc8 bmi 0x4b064                                           |         void (*0x4b064)() ();
                                                                     |     }
    0x0004afca movs r0, r0                                           |     
    0x0004b094 lsrs r6, r7, 0xf                                      |     r6 = r7 >> 0xf;
    0x0004b096 movs r1, r0                                           |     r1 = r0;
                                                                     |     if (r1 < r0) {
    0x0004b098 bmi 0x4b160                                           |         goto label_91;
                                                                     |     }
    0x0004b09a movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004b09c bmi 0x4b164                                           |         goto label_92;
                                                                     |     }
    0x0004b09e movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004b0a0 bmi 0x4b16c                                           |         void (*0x4b16c)() ();
                                                                     |     }
    0x0004b0a2 movs r0, r0                                           |     
    0x0004b0a4 lsls r4, r7, 0xe                                      |     r4 = r7 << 0xe;
    0x0004b0a6 movs r0, r0                                           |     
                                                                     |     if (r0 < r0) {
    0x0004b0a8 bmi 0x4b140                                           |         goto label_93;
                                                                     |     }
    0x0004b0aa movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
    0x0004b0ac bpl 0x4b044                                           |         void (*0x4b044)() ();
                                                                     |     }
    0x0004b0ae movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
    0x0004b0b0 bpl 0x4b188                                           |         void (*0x4b188)() ();
                                                                     |     }
    0x0004b0b2 movs r0, r0                                           |     
                                                                     |     do {
    0x0004b104 ldr r0, [r4]                                          |         r0 = *(r4);
    0x0004b106 blx 0xe41c                                            |         fcn_0000e41c ();
    0x0004b10a ldr r0, [r4, 4]                                       |         r0 = *((r4 + 4));
                                                                     |         if (r0 != 0) {
    0x0004b10c cbz r0, 0x4b112                                       |             
    0x0004b10e blx 0xde30                                            |             fcn_0000de30 ();
                                                                     |         }
    0x0004b112 mov r0, r4                                            |         r0 = r4;
    0x0004b114 pop.w {r3, r4, r5, lr}                                |         
    0x0004b118 b.w 0xde2c                                            |         void (*0xde2c)() ();
                                                                     | label_93:
    0x0004b140 blx 0xdba8                                            |         fcn_0000dba8 ();
    0x0004b144 ldr r1, [pc, 0x1c]                                    |         
    0x0004b146 mov r3, r0                                            |         r3 = r0;
    0x0004b148 mov r2, r5                                            |         r2 = r5;
    0x0004b14a movs r0, 4                                            |         r0 = 4;
    0x0004b14c add r1, pc                                            |         r1 = 0x962b4;
    0x0004b14e bl 0x30d1c                                            |         zbx_zabbix_log ();
    0x0004b152 b 0x4b104                                             |         
                                                                     |     } while (1);
                                                                     |     if (r0 >= 4) {
                                                                     | label_91:
    0x0004b160 bpl 0x4b07c                                           |         void (*0x4b07c)() ();
                                                                     |     }
    0x0004b162 movs r0, r0                                           |     
                                                                     |     if (r0 >= r0) {
                                                                     | label_92:
    0x0004b164 bpl 0x4b1c0                                           |         void (*0x4b1c0)() ();
                                                                     |     }
    0x0004b166 movs r0, r0                                           |     
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3118c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.zbx_strlog_alloc ()                          | void zbx_strlog_alloc (int16_t arg_30h, int16_t arg_34h, int16_t arg_e8h, int16_t arg_230h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch_2;
                                                             |     int16_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_4h_2;
                                                             |     int16_t var_ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0003118c push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00031190 mov r4, r0                                    |     r4 = r0;
    0x00031192 ldr r5, [pc, 0x12c]                           |     
    0x00031194 cmp r4, 0x7f                                  |     
    0x00031196 sub sp, 0x10                                  |     
    0x00031198 mov r6, r1                                    |     r6 = r1;
    0x0003119a ldr r0, [pc, 0x128]                           |     r0 = *(0x312c6);
    0x0003119c mov r8, r2                                    |     r8 = r2;
    0x0003119e add r5, pc                                    |     r5 = 0x62464;
    0x000311a0 mov sb, r3                                    |     sb = r3;
    0x000311a2 ldr r0, [r5, r0]                              |     
    0x000311a4 ldr r5, [sp, 0x30]                            |     r5 = *(arg_30h);
    0x000311a6 ldr r0, [r0]                                  |     r0 = *(0x62464);
    0x000311a8 str r0, [sp, 0xc]                             |     var_ch = r0;
    0x000311aa mov.w r0, 0                                   |     r0 = 0;
                                                             |     if (r4 == 0x7f) {
    0x000311ae beq 0x31268                                   |         goto label_4;
                                                             |     }
    0x000311b0 ldr r3, [pc, 0x114]                           |     
    0x000311b2 clz r0, r4                                    |     r0 &= r4;
    0x000311b6 lsrs r0, r0, 5                                |     r0 >>= 5;
    0x000311b8 add r3, pc                                    |     
    0x000311ba ldr r3, [r3, 4]                               |     r3 = *(0x62488);
    0x000311bc cmp r3, r4                                    |     
    0x000311be it lt                                         |     
                                                             |     if (r3 >= r4) {
    0x000311c0 orrlt r0, r0, 1                               |         r0 |= 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x000311c4 cbz r0, 0x311ca                               |         
    0x000311c6 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x000311c8 beq 0x31248                                   |             goto label_0;
                                                             |         }
                                                             |     }
    0x000311ca add r7, sp, 0x34                              |     r7 += arg_34h;
    0x000311cc movs r1, 0                                    |     r1 = 0;
    0x000311ce mov.w r3, -1                                  |     r3 = -1;
    0x000311d2 movs r2, 1                                    |     r2 = 1;
    0x000311d4 mov r0, r1                                    |     r0 = r1;
    0x000311d6 str r5, [sp]                                  |     *(sp) = r5;
    0x000311d8 strd r7, r7, [sp, 4]                          |     __asm ("strd r7, r7, [var_4h]");
    0x000311dc blx 0xe024                                    |     r0 = raise (r0);
    0x000311e0 add.w sl, r0, 2                               |     sl = r0 + 2;
    0x000311e4 ldr r0, [pc, 0xe4]                            |     
    0x000311e6 movs r2, 0                                    |     r2 = 0;
    0x000311e8 mov r3, sl                                    |     r3 = sl;
    0x000311ea movw r1, 0x2c5                                |     r1 = 0x2c5;
    0x000311ee add r0, pc                                    |     r0 = 0x624be;
    0x000311f0 bl 0x40dd8                                    |     zbx_malloc2 ();
    0x000311f4 mov.w r3, -1                                  |     r3 = -1;
    0x000311f8 str r5, [sp]                                  |     *(sp) = r5;
    0x000311fa strd r7, r7, [sp, 4]                          |     __asm ("strd r7, r7, [var_4h]");
    0x000311fe mov r1, sl                                    |     r1 = sl;
    0x00031200 movs r2, 1                                    |     r2 = 1;
    0x00031202 mov r5, r0                                    |     r5 = r0;
    0x00031204 blx 0xe024                                    |     raise (r0);
    0x00031208 ldr r3, [pc, 0xc4]                            |     
    0x0003120a mov r7, r0                                    |     r7 = r0;
    0x0003120c add r3, pc                                    |     
    0x0003120e ldr r3, [r3, 4]                               |     r3 = *(0x624e4);
    0x00031210 cmp r3, r4                                    |     
    0x00031212 ite lt                                        |     
                                                             |     if (r3 >= r4) {
    0x00031214 movlt r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 < r4) {
    0x00031216 movge r3, 1                                   |         r3 = 1;
                                                             |     }
    0x00031218 cmp r4, 0                                     |     
    0x0003121a it eq                                         |     
                                                             |     if (r4 != 0) {
    0x0003121c moveq r3, 0                                   |         r3 = 0;
                                                             |     }
    0x0003121e cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00031220 bne 0x312a8                                   |         goto label_5;
                                                             |     }
                                                             |     if (r6 == 0) {
    0x00031222 cbz r6, 0x31262                               |         goto label_2;
                                                             |     }
                                                             | label_1:
    0x00031224 blx 0xdb54                                    |     fcn_0000db54 ();
    0x00031228 ldrb r4, [r5]                                 |     r4 = *(r5);
    0x0003122a mov r2, sb                                    |     r2 = sb;
    0x0003122c ldr r3, [r0]                                  |     r3 = *(r0);
    0x0003122e mov r1, r8                                    |     r1 = r8;
    0x00031230 mov r0, r6                                    |     r0 = r6;
    0x00031232 ldr.w r3, [r3, r4, lsl 2]                     |     offset_0 = r4 << 2;
                                                             |     r3 = *((r3 + offset_0));
    0x00031236 strb r3, [r5]                                 |     *(r5) = r3;
    0x00031238 movs r3, 0xa                                  |     r3 = 0xa;
    0x0003123a strh r3, [r5, r7]                             |     *((r5 + r7)) = r3;
    0x0003123c mov r3, r5                                    |     r3 = r5;
    0x0003123e bl 0x44240                                    |     zbx_strcpy_alloc ()
                                                             |     do {
    0x00031242 mov r0, r5                                    |         r0 = r5;
    0x00031244 blx 0xde30                                    |         fcn_0000de30 ();
                                                             | label_0:
    0x00031248 ldr r2, [pc, 0x88]                            |         
    0x0003124a ldr r3, [pc, 0x78]                            |         r3 = *(0x312c6);
    0x0003124c add r2, pc                                    |         r2 = 0x62524;
    0x0003124e ldr r3, [r2, r3]                              |         r3 = *(0x62524);
    0x00031250 ldr r2, [r3]                                  |         r2 = *(0x62524);
    0x00031252 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00031254 eors r2, r3                                   |         r2 ^= r3;
    0x00031256 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0003125a bne 0x312ba                                   |             goto label_6;
                                                             |         }
    0x0003125c add sp, 0x10                                  |         
    0x0003125e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_2:
    0x00031262 cmp r5, 0                                     |         
    0x00031264 bne 0x31242                                   |         
                                                             |     } while (r5 != 0);
    0x00031266 b 0x31248                                     |     goto label_0;
                                                             | label_4:
    0x00031268 add r7, sp, 0x34                              |     r7 += arg_34h;
    0x0003126a movs r1, 0                                    |     r1 = 0;
    0x0003126c mov.w r3, -1                                  |     r3 = -1;
    0x00031270 movs r2, 1                                    |     r2 = 1;
    0x00031272 mov r0, r1                                    |     r0 = r1;
    0x00031274 str r5, [sp]                                  |     *(sp) = r5;
    0x00031276 strd r7, r7, [sp, 4]                          |     __asm ("strd r7, r7, [var_4h]");
    0x0003127a blx 0xe024                                    |     r0 = raise (r0);
    0x0003127e add.w sl, r0, 2                               |     sl = r0 + 2;
    0x00031282 ldr r0, [pc, 0x54]                            |     r0 = *(0x312da);
                                                             | label_3:
    0x00031284 movs r2, 0                                    |     r2 = 0;
    0x00031286 mov r3, sl                                    |     r3 = sl;
    0x00031288 movw r1, 0x2c5                                |     r1 = 0x2c5;
    0x0003128c add r0, pc                                    |     r0 += pc;
    0x0003128e bl 0x40dd8                                    |     zbx_malloc2 ();
    0x00031292 str r5, [sp]                                  |     *(sp) = r5;
    0x00031294 mov r1, sl                                    |     r1 = sl;
    0x00031296 strd r7, r7, [sp, 4]                          |     __asm ("strd r7, r7, [var_4h]");
    0x0003129a mov.w r3, -1                                  |     r3 = -1;
    0x0003129e movs r2, 1                                    |     r2 = 1;
    0x000312a0 mov r5, r0                                    |     r5 = r0;
    0x000312a2 blx 0xe024                                    |     r0 = raise (r0);
    0x000312a6 mov r7, r0                                    |     r7 = r0;
                                                             | label_5:
    0x000312a8 ldr r1, [pc, 0x30]                            |     
    0x000312aa mov r0, r4                                    |     r0 = r4;
    0x000312ac mov r2, r5                                    |     r2 = r5;
    0x000312ae add r1, pc                                    |     r1 = 0x6258e;
    0x000312b0 bl 0x30d1c                                    |     zbx_zabbix_log ();
    0x000312b4 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x000312b6 bne 0x31224                                   |         goto label_1;
                                                             |     }
    0x000312b8 b 0x31262                                     |     goto label_2;
                                                             | label_6:
    0x000312ba blx 0xe158                                    |     fcn_0000e158 ();
    0x000312be nop                                           |     
    0x000312c0 add r2, sp, 0xe8                              |     r2 += arg_e8h;
    0x000312c2 movs r2, r0                                   |     r2 = r0;
    0x000312c4 lsls r4, r2, 0xe                              |     r4 = r2 << 0xe;
    0x000312c6 movs r0, r0                                   |     
    0x000312c8 push {r2, r3, r6, r7, lr}                     |     
    0x000312ca movs r2, r0                                   |     r2 = r0;
    0x000312cc adds r0, 6                                    |     r0 += 6;
    0x000312ce movs r2, r0                                   |     r2 = r0;
    0x000312d0 push {r3, r4, r5, r6, lr}                     |     
    0x000312d2 movs r2, r0                                   |     r2 = r0;
    0x000312d4 add r1, sp, 0x230                             |     r1 += arg_230h;
    0x000312d6 movs r2, r0                                   |     r2 = r0;
    0x000312d8 cmp r7, 0x68                                  |     
    0x000312da movs r2, r0                                   |     r2 = r0;
                                                             |     if (r2 < r0) {
    0x000312dc bls 0x31284                                   |         goto label_3;
                                                             |     }
    0x000312de movs r1, r0                                   |     r1 = r0;
                                                             | }

[*] Function strcpy used 34 times zabbix_agentd