[*] Binary protection state of zabbix_agentd

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


[*] Function sprintf tear down of zabbix_agentd

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x13050 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00013050 ()                                  | void fcn_00013050 (int16_t arg_288h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_30h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_64h;
                                                             |     int16_t var_80h;
                                                             |     int16_t var_228h;
                                                             |     int16_t var_264h;
                                                             |     int16_t var_268h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00013050 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00013054 mov r5, r1                                    |     r5 = r1;
    0x00013056 ldr r4, [pc, 0x118]                           |     
    0x00013058 cmp.w r5, 0x200                               |     
    0x0001305c sub.w sp, sp, 0x268                           |     
    0x00013060 ldr r1, [pc, 0x110]                           |     r1 = *(0x13174);
    0x00013062 add r4, pc                                    |     r4 = 0x261d8;
    0x00013064 ldr.w sl, [sp, 0x288]                         |     sl = *(arg_288h);
    0x00013068 ldr r1, [r4, r1]                              |     
    0x0001306a ldr r1, [r1]                                  |     r1 = *(0x261d8);
    0x0001306c str r1, [sp, 0x264]                           |     var_264h = r1;
    0x0001306e mov.w r1, 0                                   |     r1 = 0;
                                                             |     if (r5 > 0x200) {
    0x00013072 bgt 0x13128                                   |         goto label_1;
                                                             |     }
    0x00013074 mov.w sb, 0                                   |     sb = 0;
    0x00013078 mov r8, r2                                    |     r8 = r2;
    0x0001307a mov r7, r3                                    |     r7 = r3;
    0x0001307c movs r2, 0                                    |     r2 = 0;
    0x0001307e movs r3, 0                                    |     r3 = 0;
    0x00013080 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x00013084 mov r4, r0                                    |     r4 = r0;
    0x00013086 blx 0xbf9c                                    |     gettimeofday ();
    0x0001308a cmp.w r1, -1                                  |     
    0x0001308e it eq                                         |     
                                                             |     if (r1 == -1) {
    0x00013090 cmpeq r0, -1                                  |         __asm ("cmpeq r0, -1");
                                                             |     }
                                                             |     if (r1 == -1) {
    0x00013094 beq 0x13144                                   |         goto label_2;
                                                             |     }
    0x00013096 add r6, sp, 0x64                              |     r6 += var_64h;
    0x00013098 mov r0, r4                                    |     r0 = r4;
    0x0001309a mov.w r3, 0x200                               |     r3 = case.0x3207a.11;
    0x0001309e mov r2, r5                                    |     r2 = r5;
    0x000130a0 mov r1, r6                                    |     r1 = r6;
    0x000130a2 blx 0xbcb8                                    |     r0 = fcn_0000bcb8 ();
    0x000130a6 cmp r5, r0                                    |     
    0x000130a8 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r5 != r0) {
    0x000130aa bne 0x130e6                                   |         goto label_3;
                                                             |     }
    0x000130ac add r5, sp, 0xc                               |     r5 += var_ch;
    0x000130ae mov r0, r5                                    |     r0 = r5;
    0x000130b0 bl 0x3f424                                    |     zbx_md5_init ();
    0x000130b4 mov r2, r4                                    |     r2 = r4;
    0x000130b6 mov r1, r6                                    |     r1 = r6;
    0x000130b8 mov r0, r5                                    |     r0 = r5;
    0x000130ba mov r4, sb                                    |     r4 = sb;
    0x000130bc bl 0x3f458                                    |     zbx_md5_append ();
    0x000130c0 mov r1, r8                                    |     r1 = r8;
    0x000130c2 mov r0, r5                                    |     r0 = r5;
    0x000130c4 bl 0x3f51c                                    |     zbx_md5_finish ();
                                                             |     do {
                                                             | label_0:
    0x000130c8 ldr r2, [pc, 0xac]                            |         
    0x000130ca ldr r3, [pc, 0xa8]                            |         r3 = *(0x13176);
    0x000130cc add r2, pc                                    |         r2 = 0x26248;
    0x000130ce ldr r3, [r2, r3]                              |         r3 = *(0x26248);
    0x000130d0 ldr r2, [r3]                                  |         r2 = *(0x26248);
    0x000130d2 ldr r3, [sp, 0x264]                           |         r3 = var_264h;
    0x000130d4 eors r2, r3                                   |         r2 ^= r3;
    0x000130d6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000130da bne 0x1316a                                   |             goto label_4;
                                                             |         }
    0x000130dc mov r0, r4                                    |         r0 = r4;
    0x000130de add.w sp, sp, 0x268                           |         
    0x000130e2 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x000130e6 adds r3, r0, 1                                |         r3 = r0 + 1;
    0x000130e8 ldr.w r6, [sl]                                |         r6 = *(sl);
                                                             |         if (r3 == r0) {
    0x000130ec beq 0x13108                                   |             goto label_5;
                                                             |         }
    0x000130ee ldr r1, [pc, 0x8c]                            |         
    0x000130f0 mov r3, r7                                    |         r3 = r7;
    0x000130f2 str r0, [sp]                                  |         *(sp) = r0;
    0x000130f4 mov r2, r5                                    |         r2 = r5;
    0x000130f6 mov r0, r6                                    |         r0 = r6;
    0x000130f8 mov.w r4, -1                                  |         r4 = -1;
    0x000130fc add r1, pc                                    |         r1 = 0x2627e;
    0x000130fe bl 0x396b0                                    |         zbx_dsprintf ()
    0x00013102 str.w r0, [sl]                                |         __asm ("str.w r0, [sl]");
    0x00013106 b 0x130c8                                     |         
                                                             |     } while (1);
                                                             | label_5:
    0x00013108 blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x0001310c ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001310e bl 0x26fdc                                    |     zbx_strerror ();
    0x00013112 ldr r1, [pc, 0x6c]                            |     
    0x00013114 mov r3, r7                                    |     r3 = r7;
    0x00013116 str r0, [sp]                                  |     *(sp) = r0;
    0x00013118 mov r2, r5                                    |     r2 = r5;
    0x0001311a mov r0, r6                                    |     r0 = r6;
    0x0001311c add r1, pc                                    |     r1 = 0x262a2;
    0x0001311e bl 0x396b0                                    |     zbx_dsprintf ()
    0x00013122 str.w r0, [sl]                                |     __asm ("str.w r0, [sl]");
    0x00013126 b 0x130c8                                     |     goto label_0;
                                                             | label_1:
    0x00013128 ldr r1, [pc, 0x58]                            |     
    0x0001312a mov.w r3, 0x200                               |     r3 = case.0x3207a.11;
    0x0001312e ldr.w r0, [sl]                                |     r0 = *(sl);
    0x00013132 mov r2, r5                                    |     r2 = r5;
    0x00013134 mov.w r4, -1                                  |     r4 = -1;
    0x00013138 add r1, pc                                    |     r1 = 0x262c0;
    0x0001313a bl 0x396b0                                    |     zbx_dsprintf ()
    0x0001313e str.w r0, [sl]                                |     __asm ("str.w r0, [sl]");
    0x00013142 b 0x130c8                                     |     goto label_0;
                                                             | label_2:
    0x00013144 blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x00013148 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001314a ldr.w r4, [sl]                                |     r4 = *(sl);
    0x0001314e bl 0x26fdc                                    |     zbx_strerror ();
    0x00013152 ldr r1, [pc, 0x34]                            |     
    0x00013154 mov r3, r0                                    |     r3 = r0;
    0x00013156 mov r2, r7                                    |     r2 = r7;
    0x00013158 mov r0, r4                                    |     r0 = r4;
    0x0001315a mov.w r4, -1                                  |     r4 = -1;
    0x0001315e add r1, pc                                    |     r1 = 0x262ec;
    0x00013160 bl 0x396b0                                    |     zbx_dsprintf ()
    0x00013164 str.w r0, [sl]                                |     __asm ("str.w r0, [sl]");
    0x00013168 b 0x130c8                                     |     goto label_0;
                                                             | label_4:
    0x0001316a blx 0xbe48                                    |     fcn_0000be48 ();
    0x0001316e nop                                           |     
    0x00013170 ldr r3, [sp, 0x228]                           |     r3 = var_228h;
    0x00013172 movs r4, r0                                   |     r4 = r0;
    0x00013174 lsls r4, r2, 0xc                              |     r4 = r2 << 0xc;
    0x00013176 movs r0, r0                                   |     
    0x00013178 ldr r3, [sp, 0x80]                            |     r3 = var_80h;
    0x0001317a movs r4, r0                                   |     r4 = r0;
    0x0001317c lsrs r0, r1, 0x13                             |     r0 = r1 >> 0x13;
    0x0001317e movs r3, r0                                   |     r3 = r0;
    0x00013180 lsrs r0, r0, 0x12                             |     r0 >>= 0x12;
    0x00013182 movs r3, r0                                   |     r3 = r0;
    0x00013184 lsrs r0, r0, 0x10                             |     r0 >>= 0x10;
    0x00013186 movs r3, r0                                   |     r3 = r0;
    0x00013188 lsrs r2, r2, 0x10                             |     r2 >>= 0x10;
    0x0001318a movs r3, r0                                   |     r3 = r0;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x13368 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00013368 ()                      | void fcn_00013368 (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00013368 invalid                           |     
    0x0001336c movs r1, 0                        |     r1 = 0;
    0x0001336e mov r6, r0                        |     r6 = r0;
    0x00013370 blx 0xbfe4                        |     r0 = puts (r0);
    0x00013374 mov r4, r0                        |     r4 = r0;
    0x00013376 adds r0, 1                        |     r0++;
                                                 |     if (r0 != 1) {
    0x00013378 beq 0x1337e                       |         
    0x0001337a mov r0, r4                        |         r0 = r4;
    0x0001337c pop {r3, r4, r5, r6, r7, pc}      |         
                                                 |     }
    0x0001337e blx 0xc15c                        |     r0 = fcn_0000c15c ();
    0x00013382 ldr r0, [r0]                      |     r0 = *(r0);
    0x00013384 ldr r7, [r5]                      |     r7 = *(r5);
    0x00013386 bl 0x26fdc                        |     zbx_strerror ();
    0x0001338a ldr r1, [pc, 0x14]                |     
    0x0001338c mov r3, r0                        |     r3 = r0;
    0x0001338e mov r2, r6                        |     r2 = r6;
    0x00013390 mov r0, r7                        |     r0 = r7;
    0x00013392 add r1, pc                        |     r1 = 0x26738;
    0x00013394 bl 0x396b0                        |     zbx_dsprintf ()
    0x00013398 str r0, [r5]                      |     *(r5) = r0;
    0x0001339a mov r0, r4                        |     r0 = r4;
    0x0001339c pop {r3, r4, r5, r6, r7, pc}      |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x133a4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000133a4 ()                                      | void fcn_000133a4 (int16_t arg_c0h, int16_t arg_158h, int16_t arg_8000h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000133a4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000133a8 sub.w sp, sp, 0x8000                              |     
    0x000133ac sub sp, 0x74                                      |     
    0x000133ae mov sl, r2                                        |     sl = r2;
    0x000133b0 add.w r4, sp, 0x8000                              |     r4 += arg_8000h;
    0x000133b4 ldr r2, [pc, 0x388]                               |     
    0x000133b6 adds r4, 0x98                                     |     r4 += 0x98;
    0x000133b8 str r3, [sp, 0x50]                                |     var_50h = r3;
    0x000133ba ldr r3, [pc, 0x388]                               |     r3 = *(0x13746);
    0x000133bc add r2, pc                                        |     r2 = 0x26b00;
    0x000133be str r0, [sp, 0x38]                                |     var_38h = r0;
    0x000133c0 str r1, [sp, 0x3c]                                |     var_3ch = r1;
    0x000133c2 add.w r1, sp, 0x8000                              |     r1 += arg_8000h;
    0x000133c6 ldr r3, [r2, r3]                                  |     
    0x000133c8 adds r1, 0x6c                                     |     r1 += 0x6c;
    0x000133ca ldr r0, [r0]                                      |     r0 = *(r0);
    0x000133cc ldr r4, [r4]                                      |     r4 = *(r4);
    0x000133ce ldr r3, [r3]                                      |     r3 = *(0x26b00);
    0x000133d0 str r3, [r1]                                      |     *(r1) = r3;
    0x000133d2 mov.w r3, 0                                       |     r3 = 0;
    0x000133d6 add.w r3, sp, 0x8000                              |     r3 += arg_8000h;
    0x000133da ldr.w r1, [r3, 0x9c]                              |     r1 = *((r3 + 0x9c));
    0x000133de adds r3, 0x9c                                     |     r3 += 0x9c;
    0x000133e0 ldr r3, [pc, 0x364]                               |     
    0x000133e2 str r1, [sp, 0x40]                                |     var_40h = r1;
    0x000133e4 add r3, pc                                        |     r3 = 0x26b30;
    0x000133e6 str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x000133e8 bl 0x13368                                        |     r0 = fcn_00013368 (r0, r1);
    0x000133ec adds r1, r0, 1                                    |     r1 = r0 + 1;
                                                                 |     if (r1 == r0) {
    0x000133ee beq.w 0x13696                                     |         goto label_5;
                                                                 |     }
    0x000133f2 add r5, sp, 0x70                                  |     r5 += var_70h;
    0x000133f4 mov r8, r0                                        |     r8 = r0;
    0x000133f6 sub.w r3, r5, 0x14                                |     r3 = r5 - 0x14;
    0x000133fa mov r0, r4                                        |     r0 = r4;
    0x000133fc sub.w r2, r5, 0xc                                 |     r2 = r5 - 0xc;
    0x00013400 sub.w r1, r5, 0x10                                |     r1 = r5 - 0x10;
    0x00013404 bl 0x34a20                                        |     find_cr_lf_szbyte ();
    0x00013408 ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x0001340a ldr r2, [r5, -0x14]                               |     r2 = *((r5 - 0x14));
    0x0001340e ldr r1, [r3]                                      |     r1 = *(r3);
    0x00013410 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00013412 cmp r2, 1                                         |     
    0x00013414 mov r6, r1                                        |     r6 = r1;
    0x00013416 str r1, [sp, 0x44]                                |     var_44h = r1;
    0x00013418 str r4, [sp, 0x48]                                |     var_48h = r4;
                                                                 |     if (r2 >= 1) {
    0x0001341a bls 0x1342c                                       |         
    0x0001341c mov r0, r1                                        |         r0 = r1;
    0x0001341e movs r3, 0                                        |         r3 = 0;
    0x00013420 mov r1, r4                                        |         r1 = r4;
    0x00013422 bl 0x41598                                        |         fcn_00041598 (r0, r1, r2, r3);
    0x00013426 orrs.w r1, r3, r2                                 |         r1 = r3 | r2;
                                                                 |         if (r1 != r3) {
    0x0001342a bne 0x134e8                                       |             goto label_6;
                                                                 |         }
                                                                 |     }
    0x0001342c ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x0001342e str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00013430 ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x00013432 str r3, [sp, 0x34]                                |     var_34h = r3;
                                                                 | label_0:
    0x00013434 movs r3, 0                                        |     r3 = 0;
    0x00013436 mov r0, r8                                        |     r0 = r8;
    0x00013438 str r3, [sp]                                      |     *(sp) = r3;
    0x0001343a ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_30h]");
    0x0001343e blx 0xbf9c                                        |     gettimeofday ();
    0x00013442 cmp.w r1, -1                                      |     
    0x00013446 it eq                                             |     
                                                                 |     if (r1 == -1) {
    0x00013448 cmpeq r0, -1                                      |         __asm ("cmpeq r0, -1");
                                                                 |     }
    0x0001344c ittt ne                                           |     
                                                                 |     if (r1 != -1) {
    0x0001344e ldrdne r6, sb, [sp, 0x30]                         |         __asm ("ldrdne r6, sb, [var_30h]");
                                                                 |     }
                                                                 |     if (r1 == -1) {
    0x00013452 addne r7, sp, 0x6c                                |         r7 += var_6ch;
                                                                 |     }
                                                                 |     if (r1 != -1) {
    0x00013454 sub.w fp, r5, 8                                   |         
                                                                 |     }
                                                                 |     if (r1 != -1) {
    0x00013458 bne 0x13488                                       |         goto label_7;
                                                                 |     }
    0x0001345a b 0x136a2                                         |     goto label_8;
                                                                 |     do {
    0x0001345c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001345e beq.w 0x135b4                                     |             goto label_9;
                                                                 |         }
    0x00013462 ldr r3, [r5, -0x14]                               |         r3 = *((r5 - 0x14));
    0x00013466 adds r2, r7, r0                                   |         r2 = r7 + r0;
    0x00013468 mov r1, fp                                        |         r1 = fp;
    0x0001346a mov r0, r7                                        |         r0 = r7;
    0x0001346c str r3, [sp, 4]                                   |         var_4h = r3;
    0x0001346e ldr r3, [r5, -0xc]                                |         r3 = *((r5 - 0xc));
    0x00013472 str r3, [sp]                                      |         *(sp) = r3;
    0x00013474 ldr r3, [r5, -0x10]                               |         r3 = *((r5 - 0x10));
    0x00013478 bl 0x1318c                                        |         r0 = fcn_0001318c (r0, r1, r2, r3);
    0x0001347c cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001347e bne.w 0x1367a                                     |             goto label_10;
                                                                 |         }
    0x00013482 adds r6, r4, r6                                   |         r6 = r4 + r6;
    0x00013484 adc.w sb, sb, r4, asr 31                          |         __asm ("adc.w sb, sb, r4, asr 31");
                                                                 | label_7:
    0x00013488 mov.w r2, 0x8000                                  |         r2 = case.0x3207a.11;
    0x0001348c mov r1, r7                                        |         r1 = r7;
    0x0001348e mov r0, r8                                        |         r0 = r8;
    0x00013490 blx 0xbcac                                        |         r0 = fcn_0000bcac ();
    0x00013494 adds r2, r0, 1                                    |         r2 = r0 + 1;
    0x00013496 mov r4, r0                                        |         r4 = r0;
    0x00013498 bne 0x1345c                                       |         
                                                                 |     } while (r2 != r0);
    0x0001349a ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0001349c ldr r6, [r3]                                      |     r6 = *(r3);
    0x0001349e blx 0xc15c                                        |     fcn_0000c15c ();
    0x000134a2 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000134a4 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000134a6 ldr r7, [r2]                                      |     r7 = *(r2);
    0x000134a8 bl 0x26fdc                                        |     zbx_strerror ();
    0x000134ac ldr r1, [pc, 0x29c]                               |     
    0x000134ae mov r3, r0                                        |     r3 = r0;
    0x000134b0 mov r2, r7                                        |     r2 = r7;
    0x000134b2 mov r0, r6                                        |     r0 = r6;
    0x000134b4 add r1, pc                                        |     r1 = 0x26c04;
    0x000134b6 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000134ba ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x000134bc str r0, [r3]                                      |     *(r3) = r0;
                                                                 | label_1:
    0x000134be ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x000134c0 mov r0, r8                                        |     r0 = r8;
    0x000134c2 ldr r6, [r3]                                      |     r6 = *(r3);
    0x000134c4 blx 0xc47c                                        |     r0 = fcn_0000c47c ();
                                                                 |     if (r0 == 0) {
    0x000134c8 cbnz r0, 0x13500                                  |         
    0x000134ca ldr r3, [pc, 0x284]                               |         
    0x000134cc ldr r2, [sp, 0x4c]                                |         r2 = var_4ch;
    0x000134ce ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x000134d0 ldr r3, [r3]                                      |         r3 = *(0x13752);
    0x000134d2 cmp r3, 3                                         |         
                                                                 |         if (r3 <= 3) {
    0x000134d4 ble 0x1358c                                       |             goto label_2;
                                                                 |         }
    0x000134d6 ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x000134d8 ldr r0, [r3]                                      |         r0 = *(r3);
    0x000134da cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x000134dc bne.w 0x13730                                     |             goto label_11;
                                                                 |         }
    0x000134e0 ldr.w r8, [pc, 0x270]                             |         
    0x000134e4 add r8, pc                                        |         r8 = 0x26c3c;
    0x000134e6 b 0x13536                                         |         goto label_4;
                                                                 | label_6:
    0x000134e8 subs r2, r6, r2                                   |         r2 = r6 - r2;
    0x000134ea sbc.w r3, r4, r3                                  |         __asm ("sbc.w r3, r4, r3");
    0x000134ee cmp r2, sl                                        |         
    0x000134f0 strd r2, r3, [sp, 0x30]                           |         __asm ("strd r2, r3, [sp, 0x30]");
    0x000134f4 ldr r2, [sp, 0x50]                                |         r2 = var_50h;
    0x000134f6 sbcs r3, r2                                       |         __asm ("sbcs r3, r2");
    0x000134f8 it lo                                             |         
                                                                 |         if (r2 < sl) {
    0x000134fa strdlo sl, r2, [sp, 0x30]                         |             __asm ("strdlo sl, r2, [sp, 0x30]");
                                                                 |         }
    0x000134fe b 0x13434                                         |         goto label_0;
                                                                 |     }
    0x00013500 ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x00013502 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00013506 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00013508 ldr r4, [r7]                                      |     r4 = *(r7);
    0x0001350a bl 0x26fdc                                        |     zbx_strerror ();
    0x0001350e ldr r1, [pc, 0x248]                               |     
    0x00013510 mov r3, r0                                        |     r3 = r0;
    0x00013512 mov r2, r6                                        |     r2 = r6;
    0x00013514 mov r0, r4                                        |     r0 = r4;
    0x00013516 add r1, pc                                        |     r1 = 0x26c74;
    0x00013518 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001351c ldr r3, [pc, 0x230]                               |     
    0x0001351e ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x00013520 str r0, [r7]                                      |     *(r7) = r0;
    0x00013522 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00013524 ldr r3, [r3]                                      |     r3 = *(0x13750);
    0x00013526 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00013528 ble.w 0x13696                                     |         goto label_5;
                                                                 |     }
    0x0001352c ldr.w r8, [pc, 0x22c]                             |     
    0x00013530 mov.w r4, -1                                      |     r4 = -1;
    0x00013534 add r8, pc                                        |     r8 = 0x26c94;
                                                                 | label_4:
    0x00013536 ldr r2, [r5, -0x14]                               |     r2 = *((r5 - 0x14));
    0x0001353a ldr r6, [sp, 0x44]                                |     r6 = var_44h;
    0x0001353c ldr r5, [sp, 0x30]                                |     r5 = var_30h;
    0x0001353e ldr r1, [sp, 0x3c]                                |     r1 = var_3ch;
    0x00013540 ldr r7, [sp, 0x48]                                |     r7 = var_48h;
    0x00013542 subs r6, r5, r6                                   |     r6 = r5 - r6;
    0x00013544 ldr r5, [sp, 0x34]                                |     r5 = var_34h;
    0x00013546 ldrd r3, r1, [r1]                                 |     __asm ("ldrd r3, r1, [r1]");
    0x0001354a sbc.w r7, r5, r7                                  |     __asm ("sbc.w r7, r5, r7");
    0x0001354e ldr r5, [sp, 0x30]                                |     r5 = var_30h;
    0x00013550 subs.w lr, r3, r5                                 |     lr = r3 - r5;
    0x00013554 ldr r5, [sp, 0x34]                                |     r5 = var_34h;
    0x00013556 sbc.w ip, r1, r5                                  |     __asm ("sbc.w ip, r1, r5");
    0x0001355a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001355c beq.w 0x1369c                                     |         goto label_12;
                                                                 |     }
                                                                 | label_3:
    0x00013560 strd r3, r1, [sp, 0x18]                           |     __asm ("strd r3, r1, [sp, 0x18]");
    0x00013564 strd r8, r0, [sp, 0x28]                           |     __asm ("strd r8, r0, [sp, 0x28]");
    0x00013568 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0001356a ldr r0, [sp, 0x44]                                |     r0 = var_44h;
    0x0001356c ldr r1, [pc, 0x1f0]                               |     
    0x0001356e str r3, [sp, 8]                                   |     var_8h = r3;
    0x00013570 str r0, [sp]                                      |     *(sp) = r0;
    0x00013572 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00013574 add r1, pc                                        |     r1 = 0x26cd8;
    0x00013576 ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00013578 strd lr, ip, [sp, 0x20]                           |     __asm ("strd lr, ip, [sp, 0x20]");
    0x0001357c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001357e movs r3, 0                                        |     r3 = 0;
    0x00013580 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00013582 movs r0, 4                                        |     r0 = 4;
    0x00013584 strd r6, r7, [sp, 0x10]                           |     __asm ("strd r6, r7, [sp, 0x10]");
    0x00013588 bl 0x271b0                                        |     zbx_zabbix_log ();
                                                                 | label_2:
    0x0001358c ldr r2, [pc, 0x1d4]                               |     
    0x0001358e add.w r1, sp, 0x8000                              |     r1 += arg_8000h;
    0x00013592 ldr r3, [pc, 0x1b0]                               |     r3 = *(0x13746);
    0x00013594 adds r1, 0x6c                                     |     r1 += 0x6c;
    0x00013596 add r2, pc                                        |     r2 = 0x26cfe;
    0x00013598 ldr r3, [r2, r3]                                  |     r3 = *(0x26cfe);
    0x0001359a ldr r2, [r3]                                      |     r2 = *(0x26cfe);
    0x0001359c ldr r3, [r1]                                      |     r3 = *(r1);
    0x0001359e eors r2, r3                                       |     r2 ^= r3;
    0x000135a0 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000135a4 bne.w 0x1373c                                     |         goto label_13;
                                                                 |     }
    0x000135a8 mov r0, r4                                        |     r0 = r4;
    0x000135aa add.w sp, sp, 0x8000                              |     
    0x000135ae add sp, 0x74                                      |     
    0x000135b0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_9:
    0x000135b4 ldrd r6, sb, [sp, 0x30]                           |     __asm ("ldrd r6, sb, [var_30h]");
    0x000135b8 mov fp, r0                                        |     
    0x000135ba ldr r4, [sp, 0x50]                                |     r4 = var_50h;
    0x000135bc str r0, [sp, 0x54]                                |     var_54h = r0;
    0x000135be b 0x13602                                         |     
                                                                 |     while (r1 != -1) {
    0x000135c0 mov.w r2, 0x8000                                  |         r2 = case.0x3207a.11;
    0x000135c4 mov r1, r7                                        |         r1 = r7;
    0x000135c6 mov r0, r8                                        |         r0 = r8;
    0x000135c8 blx 0xbcac                                        |         r0 = fcn_0000bcac ();
    0x000135cc adds r3, r0, 1                                    |         r3 = r0 + 1;
                                                                 |         if (r3 == r0) {
    0x000135ce beq 0x136c0                                       |             goto label_14;
                                                                 |         }
    0x000135d0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000135d2 beq.w 0x136e8                                     |             goto label_15;
                                                                 |         }
    0x000135d4 strh r1, [r1, 4]                                  |         *((r1 + 4)) = r1;
    0x000135d6 ldr r3, [r5, -0x14]                               |         r3 = *((r5 - 0x14));
    0x000135da adds r2, r7, r0                                   |         r2 = r7 + r0;
    0x000135dc sub.w r1, r5, 8                                   |         r1 = r5 - 8;
    0x000135e0 mov r0, r7                                        |         r0 = r7;
    0x000135e2 str r3, [sp, 4]                                   |         var_4h = r3;
    0x000135e4 ldr r3, [r5, -0xc]                                |         r3 = *((r5 - 0xc));
    0x000135e8 str r3, [sp]                                      |         *(sp) = r3;
    0x000135ea ldr r3, [r5, -0x10]                               |         r3 = *((r5 - 0x10));
    0x000135ee bl 0x1318c                                        |         r0 = fcn_0001318c (r0, r1, r2, r3);
    0x000135f2 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000135f4 bne.w 0x13700                                     |             goto label_16;
                                                                 |         }
    0x000135f8 cmp sb, r4                                        |         
    0x000135fa it eq                                             |         
                                                                 |         if (sb == r4) {
    0x000135fc cmpeq r6, sl                                      |             __asm ("cmpeq r6, sl");
                                                                 |         }
                                                                 |         if (sb == r4) {
    0x000135fe beq.w 0x1371c                                     |             goto label_17;
                                                                 |         }
    0x00013602 cmp.w r6, 0x8000                                  |         
    0x00013606 sbcs r3, sb, 0                                    |         __asm ("sbcs r3, sb, 0");
    0x0001360a itt lo                                            |         
                                                                 |         if (r6 >= 0x8000) {
    0x0001360c movlo r6, sl                                      |             r6 = sl;
                                                                 |         }
                                                                 |         if (r6 >= 0x8000) {
    0x0001360e movlo sb, r4                                      |             sb = r4;
                                                                 |         }
                                                                 |         if (r6 > 0x8000) {
    0x00013610 blo 0x13634                                       |             
    0x00013612 subs.w r3, r6, sl                                 |             r3 = r6 - sl;
    0x00013616 movw r1, 0x8001                                   |             r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001361a sbc.w r2, sb, r4                                  |             __asm ("sbc.w r2, sb, r4");
    0x0001361e cmp r3, r1                                        |             
    0x00013620 sbcs r1, r2, 0                                    |             __asm ("sbcs r1, r2, 0");
    0x00013624 itt hs                                            |             
                                                                 |             if (r3 < r1) {
    0x00013626 movhs r3, 0x8000                                  |                 r3 = case.0x3207a.11;
                                                                 |             }
                                                                 |             if (r3 >= r1) {
    0x0001362a movs r2, 0                                        |                 r2 = 0;
                                                                 |             }
    0x0001362c subs r3, r6, r3                                   |             r3 = r6 - r3;
    0x0001362e sbc.w sb, sb, r2                                  |             __asm ("sbc.w sb, sb, r2");
    0x00013632 mov r6, r3                                        |             r6 = r3;
                                                                 |         }
    0x00013634 mov r2, r6                                        |         r2 = r6;
    0x00013636 mov r3, sb                                        |         r3 = sb;
    0x00013638 mov r0, r8                                        |         r0 = r8;
    0x0001363a str.w fp, [sp]                                    |         __asm ("str.w fp, [sp]");
    0x0001363e blx 0xbf9c                                        |         gettimeofday ();
    0x00013642 cmp.w r1, -1                                      |         
    0x00013646 it eq                                             |         
                                                                 |         if (r1 == -1) {
    0x00013648 cmpeq r0, -1                                      |             __asm ("cmpeq r0, -1");
                                                                 |         }
    0x0001364c bne 0x135c0                                       |         
                                                                 |     }
    0x0001364e blx 0xc15c                                        |     fcn_0000c15c ();
    0x00013652 ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x00013654 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x00013656 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00013658 ldr r4, [r7]                                      |     r4 = *(r7);
    0x0001365a ldr r6, [r3]                                      |     r6 = *(r3);
    0x0001365c bl 0x26fdc                                        |     zbx_strerror ();
    0x00013660 ldr r1, [pc, 0x104]                               |     
    0x00013662 strd r6, r0, [sp]                                 |     __asm ("strd r6, r0, [sp]");
    0x00013666 mov r0, r4                                        |     r0 = r4;
    0x00013668 add r1, pc                                        |     r1 = 0x26dd4;
                                                                 |     do {
    0x0001366a ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x0001366e mov.w r4, -1                                      |         r4 = -1;
    0x00013672 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00013676 str r0, [r7]                                      |         *(r7) = r0;
    0x00013678 b 0x134be                                         |         goto label_1;
                                                                 | label_10:
    0x0001367a ldr r3, [r5, -0x8]                                |         r3 = *((r5 - 0x8));
    0x0001367e movs r4, 0                                        |         r4 = 0;
    0x00013680 ldr r2, [sp, 0x3c]                                |         r2 = var_3ch;
    0x00013682 subs r3, r3, r7                                   |         r3 -= r7;
    0x00013684 adds r6, r3, r6                                   |         r6 = r3 + r6;
    0x00013686 adc.w r3, sb, r3, asr 31                          |         __asm ("adc.w r3, sb, r3, asr 31");
    0x0001368a strd r6, r3, [r2]                                 |         __asm ("strd r6, r3, [r2]");
    0x0001368e ldr r2, [sp, 0x38]                                |         r2 = var_38h;
    0x00013690 strd r6, r3, [r2, 0x40]                           |         __asm ("strd r6, r3, [r2, 0x40]");
    0x00013694 b 0x134be                                         |         goto label_1;
                                                                 | label_5:
    0x00013696 mov.w r4, -1                                      |         r4 = -1;
    0x0001369a b 0x1358c                                         |         goto label_2;
                                                                 | label_12:
    0x0001369c ldr r0, [pc, 0xcc]                                |         
    0x0001369e add r0, pc                                        |         r0 = 0x26e0e;
    0x000136a0 b 0x13560                                         |         goto label_3;
                                                                 | label_8:
    0x000136a2 blx 0xc15c                                        |         fcn_0000c15c ();
    0x000136a6 ldr r7, [sp, 0x40]                                |         r7 = var_40h;
    0x000136a8 ldr r3, [sp, 0x38]                                |         r3 = var_38h;
    0x000136aa ldr r0, [r0]                                      |         r0 = *(r0);
    0x000136ac ldr r4, [r7]                                      |         r4 = *(r7);
    0x000136ae ldr r6, [r3]                                      |         r6 = *(r3);
    0x000136b0 bl 0x26fdc                                        |         zbx_strerror ();
    0x000136b4 ldr r1, [pc, 0xb8]                                |         
    0x000136b6 strd r6, r0, [sp]                                 |         __asm ("strd r6, r0, [sp]");
    0x000136ba mov r0, r4                                        |         r0 = r4;
    0x000136bc add r1, pc                                        |         r1 = 0x26e30;
    0x000136be b 0x1366a                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x000136c0 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x000136c2 mov r4, r0                                        |     r4 = r0;
    0x000136c4 ldr r6, [r3]                                      |     r6 = *(r3);
    0x000136c6 blx 0xc15c                                        |     fcn_0000c15c ();
    0x000136ca ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x000136cc ldr r0, [r0]                                      |     r0 = *(r0);
    0x000136ce ldr r7, [r2]                                      |     r7 = *(r2);
    0x000136d0 bl 0x26fdc                                        |     zbx_strerror ();
    0x000136d4 ldr r1, [pc, 0x9c]                                |     
    0x000136d6 mov r3, r0                                        |     r3 = r0;
    0x000136d8 mov r2, r7                                        |     r2 = r7;
    0x000136da mov r0, r6                                        |     r0 = r6;
    0x000136dc add r1, pc                                        |     r1 = 0x26e54;
    0x000136de bl 0x396b0                                        |     zbx_dsprintf ()
    0x000136e2 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x000136e4 str r0, [r3]                                      |     *(r3) = r0;
    0x000136e6 b 0x134be                                         |     goto label_1;
                                                                 | label_15:
    0x000136e8 ldr r4, [sp, 0x40]                                |     r4 = var_40h;
    0x000136ea ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x000136ec ldr r1, [pc, 0x88]                                |     
    0x000136ee ldr r0, [r4]                                      |     r0 = *(r4);
    0x000136f0 ldr r2, [r3]                                      |     r2 = *(r3);
    0x000136f2 add r1, pc                                        |     r1 = 0x26e6e;
    0x000136f4 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000136f8 str r0, [r4]                                      |     *(r4) = r0;
    0x000136fa mov.w r4, -1                                      |     r4 = -1;
    0x000136fe b 0x134be                                         |     goto label_1;
                                                                 | label_16:
    0x00013700 ldr r3, [r5, -0x8]                                |     r3 = *((r5 - 0x8));
    0x00013704 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00013706 ldr r4, [sp, 0x54]                                |     r4 = var_54h;
    0x00013708 subs r3, r3, r7                                   |     r3 -= r7;
    0x0001370a adds r6, r3, r6                                   |     r6 = r3 + r6;
    0x0001370c adc.w r3, sb, r3, asr 31                          |     __asm ("adc.w r3, sb, r3, asr 31");
    0x00013710 strd r6, r3, [r2]                                 |     __asm ("strd r6, r3, [r2]");
    0x00013714 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00013716 strd r6, r3, [r2, 0x40]                           |     __asm ("strd r6, r3, [r2, 0x40]");
    0x0001371a b 0x134be                                         |     goto label_1;
                                                                 | label_17:
    0x0001371c ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x0001371e ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00013720 ldr r4, [sp, 0x54]                                |     r4 = var_54h;
    0x00013722 str.w sl, [r3]                                    |     __asm ("str.w sl, [r3]");
    0x00013726 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x00013728 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x0001372a strd sl, r2, [r3, 0x40]                           |     __asm ("strd sl, r2, [r3, 0x40]");
    0x0001372e b 0x134be                                         |     goto label_1;
                                                                 | label_11:
    0x00013730 ldr.w r8, [pc, 0x48]                              |     
    0x00013734 mov.w r4, -1                                      |     r4 = -1;
    0x00013738 add r8, pc                                        |     r8 = 0x26eb8;
    0x0001373a b 0x13536                                         |     goto label_4;
                                                                 | label_13:
    0x0001373c blx 0xbe48                                        |     fcn_0000be48 ();
    0x00013740 ldr r0, [sp, 0xc0]                                |     r0 = *(arg_c0h);
    0x00013742 movs r4, r0                                       |     r4 = r0;
    0x00013744 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00013746 movs r0, r0                                       |     
    0x00013748 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0001374a movs r4, r0                                       |     r4 = r0;
    0x0001374c lsrs r4, r7, 6                                    |     r4 = r7 >> 6;
    0x0001374e movs r3, r0                                       |     r3 = r0;
    0x00013750 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x00013752 movs r0, r0                                       |     
    0x00013754 lsrs r0, r7, 4                                    |     r0 = r7 >> 4;
    0x00013756 movs r3, r0                                       |     r3 = r0;
    0x00013758 lsrs r2, r5, 6                                    |     r2 = r5 >> 6;
    0x0001375a movs r3, r0                                       |     r3 = r0;
    0x0001375c lsrs r0, r7, 3                                    |     r0 = r7 >> 3;
    0x0001375e movs r3, r0                                       |     r3 = r0;
    0x00013760 lsrs r0, r5, 5                                    |     r0 = r5 >> 5;
    0x00013762 movs r3, r0                                       |     r3 = r0;
    0x00013764 str r6, [sp, 0x158]                               |     *(arg_158h) = r6;
    0x00013766 movs r4, r0                                       |     r4 = r0;
    0x00013768 lsls r0, r3, 0x1f                                 |     r0 = r3 << 0x1f;
    0x0001376a movs r3, r0                                       |     r3 = r0;
    0x0001376c movs r5, 0xa2                                     |     r5 = 0xa2;
    0x0001376e movs r3, r0                                       |     r3 = r0;
    0x00013770 lsls r4, r0, 0x1e                                 |     r4 = r0 << 0x1e;
    0x00013772 movs r3, r0                                       |     r3 = r0;
    0x00013774 lsls r4, r2, 0x1e                                 |     r4 = r2 << 0x1e;
    0x00013776 movs r3, r0                                       |     r3 = r0;
    0x00013778 lsls r6, r3, 0x1e                                 |     r6 = r3 << 0x1e;
    0x0001377a movs r3, r0                                       |     r3 = r0;
    0x0001377c lsls r4, r6, 0x1b                                 |     r4 = r6 << 0x1b;
    0x0001377e movs r3, r0                                       |     r3 = r0;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x18f70 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00018f70 ()                          | void fcn_00018f70 (int16_t arg1) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_ch_2;
                                                     |     int16_t var_20h;
                                                     |     int16_t var_28h;
                                                     |     int16_t var_40h;
                                                     |     int16_t var_4ch;
                                                     |     r0 = arg1;
    0x00018f70 blmi 0x146b8b8                        |     __asm ("blmi 0x146b8b8");
    0x00018f74 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00018f78 mov r7, r0                            |     r7 = r0;
    0x00018f7a add r2, pc                            |     r2 += pc;
    0x00018f7c ldr r1, [pc, 0x13c]                   |     
    0x00018f7e sub sp, 0x50                          |     
    0x00018f80 ldr r0, [pc, 0x13c]                   |     
    0x00018f82 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x00018f84 add r1, pc                            |     r1 = 0x32044;
    0x00018f86 add r0, pc                            |     r0 = 0x3204a;
    0x00018f88 ldr r3, [r3]                          |     r3 = *(r3);
    0x00018f8a str r3, [sp, 0x4c]                    |     var_4ch = r3;
    0x00018f8c mov.w r3, 0                           |     r3 = 0;
    0x00018f90 blx 0xc39c                            |     r0 = fcn_0000c39c ();
    0x00018f94 mov r8, r0                            |     r8 = r0;
    0x00018f96 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00018f98 beq 0x19090                           |         goto label_2;
                                                     |     }
    0x00018f9a ldr r5, [pc, 0x128]                   |     
    0x00018f9c mov r6, sp                            |     r6 = sp;
    0x00018f9e ldr r1, [pc, 0x128]                   |     
    0x00018fa0 mov r3, r6                            |     r3 = r6;
    0x00018fa2 add r5, pc                            |     r5 = 0x3206c;
    0x00018fa4 add r1, pc                            |     r1 = 0x32072;
    0x00018fa6 mov r2, r5                            |     r2 = r5;
    0x00018fa8 bl 0x1b050                            |     r0 = byte_value_from_proc_file ();
    0x00018fac adds r1, r0, 1                        |     r1 = r0 + 1;
    0x00018fae mov r4, r0                            |     r4 = r0;
                                                     |     if (r1 == r0) {
    0x00018fb0 beq 0x1902c                           |         goto label_3;
                                                     |     }
                                                     |     if (r0 != 0) {
    0x00018fb2 cbnz r0, 0x18fe6                      |         goto label_4;
                                                     |     }
    0x00018fb4 ldr r3, [r7, 0x28]                    |     r3 = *((r7 + 0x28));
    0x00018fb6 orr r3, r3, 1                         |     r3 |= 1;
    0x00018fba str r3, [r7, 0x28]                    |     *((r7 + 0x28)) = r3;
    0x00018fbc ldrd r2, r3, [sp]                     |     __asm ("ldrd r2, r3, [sp]");
    0x00018fc0 strd r2, r3, [r7, 8]                  |     __asm ("strd r2, r3, [r7, 8]");
                                                     |     do {
                                                     | label_0:
    0x00018fc4 mov r0, r8                            |         r0 = r8;
    0x00018fc6 blx 0xc248                            |         munmap (r0, r1);
                                                     | label_1:
    0x00018fca ldr r2, [pc, 0x100]                   |         
    0x00018fcc ldr r3, [pc, 0xe8]                    |         r3 = *(0x190b8);
    0x00018fce add r2, pc                            |         r2 = 0x320a0;
    0x00018fd0 ldr r3, [r2, r3]                      |         r3 = *(0x320a0);
    0x00018fd2 ldr r2, [r3]                          |         r2 = *(0x320a0);
    0x00018fd4 ldr r3, [sp, 0x4c]                    |         r3 = var_4ch;
    0x00018fd6 eors r2, r3                           |         r2 ^= r3;
    0x00018fd8 mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x00018fdc bne 0x1908c                           |             goto label_5;
                                                     |         }
    0x00018fde mov r0, r4                            |         r0 = r4;
    0x00018fe0 add sp, 0x50                          |         
    0x00018fe2 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_4:
    0x00018fe6 mov r3, r6                            |         r3 = r6;
    0x00018fe8 movs r2, 0                            |         r2 = 0;
    0x00018fea mov r1, r5                            |         r1 = r5;
    0x00018fec mov r0, r8                            |         r0 = r8;
    0x00018fee bl 0x1b050                            |         r0 = byte_value_from_proc_file ();
    0x00018ff2 adds r2, r0, 1                        |         r2 = r0 + 1;
    0x00018ff4 mov r3, r0                            |         r3 = r0;
                                                     |         if (r2 == r0) {
    0x00018ff6 beq 0x1906e                           |             goto label_6;
                                                     |         }
    0x00018ff8 adds r3, 2                            |         r3 += 2;
                                                     |         if (r3 == 2) {
    0x00018ffa bne 0x19004                           |             
    0x00018ffc vmov.i32 d16, 0                       |             __asm ("vmov.i32 d16, 0");
    0x00019000 vstr d16, [sp]                        |             __asm ("vstr d16, [sp]");
                                                     |         }
    0x00019004 add r0, sp, 0xc                       |         r0 += var_ch_2;
    0x00019006 blx 0xc018                            |         r0 = fcn_0000c018 ();
    0x0001900a mov r4, r0                            |         r4 = r0;
                                                     |         if (r0 != 0) {
    0x0001900c cbnz r0, 0x1904a                      |             goto label_7;
                                                     |         }
    0x0001900e ldr r3, [r7, 0x28]                    |         r3 = *((r7 + 0x28));
    0x00019010 ldr r1, [sp, 0x28]                    |         r1 = var_28h;
    0x00019012 ldr r2, [sp, 0x20]                    |         r2 = var_20h;
    0x00019014 orr r3, r3, 1                         |         r3 |= 1;
    0x00019018 ldr r0, [sp, 0x40]                    |         r0 = var_40h;
    0x0001901a str r3, [r7, 0x28]                    |         *((r7 + 0x28)) = r3;
    0x0001901c add r2, r1                            |         r2 += r1;
    0x0001901e ldrd r3, r1, [sp]                     |         __asm ("ldrd r3, r1, [sp]");
    0x00019022 umlal r3, r1, r2, r0                  |         __asm ("umlal r3, r1, r2, r0");
    0x00019026 strd r3, r1, [r7, 8]                  |         __asm ("strd r3, r1, [r7, 8]");
    0x0001902a b 0x18fc4                             |         
                                                     |     } while (1);
                                                     | label_3:
    0x0001902c ldr r1, [r7, 0x28]                    |     r1 = *((r7 + 0x28));
    0x0001902e movs r2, 0                            |     r2 = 0;
    0x00019030 ldr r3, [pc, 0x9c]                    |     
    0x00019032 movs r4, 1                            |     r4 = 1;
    0x00019034 ldr r0, [pc, 0x9c]                    |     
    0x00019036 orr r1, r1, 0x20                      |     r1 |= 0x20;
    0x0001903a str r1, [r7, 0x28]                    |     *((r7 + 0x28)) = r1;
    0x0001903c add r3, pc                            |     r3 = 0x32110;
    0x0001903e add r0, pc                            |     r0 = 0x32116;
    0x00019040 movs r1, 0x7b                         |     r1 = 0x7b;
    0x00019042 bl 0x35d28                            |     zbx_strdup2 ();
    0x00019046 str r0, [r7, 0x20]                    |     *((r7 + 0x20)) = r0;
    0x00019048 b 0x18fc4                             |     goto label_0;
                                                     | label_7:
    0x0001904a ldr r3, [r7, 0x28]                    |     r3 = *((r7 + 0x28));
    0x0001904c movs r4, 1                            |     r4 = 1;
    0x0001904e orr r3, r3, 0x20                      |     r3 |= 0x20;
    0x00019052 str r3, [r7, 0x28]                    |     *((r7 + 0x28)) = r3;
    0x00019054 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x00019058 ldr r0, [r0]                          |     r0 = *(r0);
    0x0001905a bl 0x26fdc                            |     zbx_strerror ();
    0x0001905e ldr r1, [pc, 0x78]                    |     
    0x00019060 mov r2, r0                            |     r2 = r0;
    0x00019062 movs r0, 0                            |     r0 = 0;
    0x00019064 add r1, pc                            |     r1 = 0x32142;
    0x00019066 bl 0x396b0                            |     zbx_dsprintf ()
    0x0001906a str r0, [r7, 0x20]                    |     *((r7 + 0x20)) = r0;
    0x0001906c b 0x18fc4                             |     goto label_0;
                                                     | label_6:
    0x0001906e ldr r1, [r7, 0x28]                    |     r1 = *((r7 + 0x28));
    0x00019070 movs r2, 0                            |     r2 = 0;
    0x00019072 ldr r3, [pc, 0x68]                    |     
    0x00019074 movs r4, 1                            |     r4 = 1;
    0x00019076 ldr r0, [pc, 0x68]                    |     
    0x00019078 orr r1, r1, 0x20                      |     r1 |= 0x20;
    0x0001907c str r1, [r7, 0x28]                    |     *((r7 + 0x28)) = r1;
    0x0001907e add r3, pc                            |     r3 = 0x32160;
    0x00019080 add r0, pc                            |     r0 = 0x32166;
    0x00019082 movs r1, 0x88                         |     r1 = 0x88;
    0x00019084 bl 0x35d28                            |     zbx_strdup2 ();
    0x00019088 str r0, [r7, 0x20]                    |     *((r7 + 0x20)) = r0;
    0x0001908a b 0x18fc4                             |     goto label_0;
                                                     | label_5:
    0x0001908c blx 0xbe48                            |     fcn_0000be48 ();
                                                     | label_2:
    0x00019090 ldr r3, [r7, 0x28]                    |     r3 = *((r7 + 0x28));
    0x00019092 movs r4, 1                            |     r4 = 1;
    0x00019094 orr r3, r3, 0x20                      |     r3 |= 0x20;
    0x00019098 str r3, [r7, 0x28]                    |     *((r7 + 0x28)) = r3;
    0x0001909a blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x0001909e ldr r0, [r0]                          |     r0 = *(r0);
    0x000190a0 bl 0x26fdc                            |     zbx_strerror ();
    0x000190a4 ldr r1, [pc, 0x3c]                    |     
    0x000190a6 mov r2, r0                            |     r2 = r0;
    0x000190a8 mov r0, r8                            |     r0 = r8;
    0x000190aa add r1, pc                            |     r1 = 0x32192;
    0x000190ac bl 0x396b0                            |     zbx_dsprintf ()
    0x000190b0 str r0, [r7, 0x20]                    |     *((r7 + 0x20)) = r0;
    0x000190b2 b 0x18fca                             |     goto label_1;
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x19844 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00019844 ()                                  | void fcn_00019844 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_0h_3;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_10h_2;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_18h_2;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_20h_2;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_28h_2;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_30h_2;
                                                             |     int16_t var_38h;
                                                             |     FILE * stream;
                                                             |     int16_t var_844h;
                                                             |     int16_t var_1040h;
                                                             |     int32_t var_0h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x00019844 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00019848 mov sb, r2                                    |     sb = r2;
    0x0001984a ldr r2, [pc, 0x148]                           |     
    0x0001984c sub.w sp, sp, 0x1040                          |     
    0x00019850 mov r8, r0                                    |     r8 = r0;
    0x00019852 mov r4, r1                                    |     r4 = r1;
    0x00019854 ldr r3, [pc, 0x140]                           |     r3 = *(0x19998);
    0x00019856 sub sp, 8                                     |     
    0x00019858 add r2, pc                                    |     r2 = 0x331f2;
    0x0001985a ldr r1, [pc, 0x140]                           |     
    0x0001985c ldr r0, [pc, 0x140]                           |     
    0x0001985e add.w r5, sp, 0x1040                          |     r5 += var_1040h;
    0x00019862 ldr r3, [r2, r3]                              |     
    0x00019864 adds r5, 4                                    |     r5 += 4;
    0x00019866 add r1, pc                                    |     r1 = 0x33208;
    0x00019868 add r0, pc                                    |     r0 = 0x3320c;
    0x0001986a ldr r3, [r3]                                  |     r3 = *(0x331f2);
    0x0001986c str r3, [r5]                                  |     *(r5) = r3;
    0x0001986e mov.w r3, 0                                   |     r3 = 0;
    0x00019872 blx 0xc39c                                    |     r0 = fcn_0000c39c ();
    0x00019876 mov r6, r0                                    |     r6 = r0;
    0x00019878 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001987a beq 0x19972                                   |         goto label_1;
                                                             |     }
    0x0001987c ldr r7, [pc, 0x124]                           |     
    0x0001987e add r5, sp, 0x44                              |     r5 += stream;
    0x00019880 add r7, pc                                    |     r7 = 0x33228;
                                                             |     do {
                                                             | label_0:
    0x00019882 mov r2, r6                                    |         r2 = r6;
    0x00019884 mov.w r1, 0x800                               |         r1 = case.0x3207a.11;
    0x00019888 mov r0, r5                                    |         r0 = r5;
    0x0001988a blx 0xbd2c                                    |         r0 = ferror (r0);
    0x0001988e mov sl, r0                                    |         sl = r0;
    0x00019890 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019892 beq 0x19928                                   |             goto label_2;
                                                             |         }
    0x00019894 movs r1, 0x3a                                 |         r1 = 0x3a;
    0x00019896 mov r0, r5                                    |         r0 = r5;
    0x00019898 blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x0001989c cmp r0, 0                                     |         
    0x0001989e beq 0x19882                                   |         
                                                             |     } while (r0 == 0);
    0x000198a0 movs r1, 9                                    |     r1 = 9;
    0x000198a2 add.w r2, r4, 0x78                            |     r2 = r4 + 0x78;
    0x000198a6 add.w lr, r4, 0x70                            |     lr = r4 + 0x70;
    0x000198aa add.w ip, r4, 0x60                            |     
    0x000198ae strb r1, [r0]                                 |     *(r0) = r1;
    0x000198b0 add.w r3, r4, 0x68                            |     r3 = r4 + 0x68;
    0x000198b4 strd ip, lr, [sp, 0x30]                       |     __asm ("strd ip, lr, [var_30h]");
    0x000198b8 add.w r0, r4, 0x50                            |     r0 = r4 + 0x50;
    0x000198bc add.w r1, r4, 0x48                            |     r1 = r4 + 0x48;
    0x000198c0 add.w lr, r4, 0x40                            |     lr = r4 + 0x40;
    0x000198c4 add.w ip, r4, 0x38                            |     
    0x000198c8 str r2, [sp, 0x38]                            |     var_38h = r2;
    0x000198ca add.w r2, r4, 0x58                            |     r2 = r4 + 0x58;
    0x000198ce strd r1, r0, [sp, 0x20]                       |     __asm ("strd r1, r0, [var_20h]");
    0x000198d2 strd r2, r3, [sp, 0x28]                       |     __asm ("strd r2, r3, [var_28h]");
    0x000198d6 add.w r0, r4, 0x20                            |     r0 = r4 + 0x20;
    0x000198da strd ip, lr, [sp, 0x18]                       |     __asm ("strd ip, lr, [var_18h]");
    0x000198de add.w r2, r4, 0x30                            |     r2 = r4 + 0x30;
    0x000198e2 add.w r3, r4, 0x28                            |     r3 = r4 + 0x28;
    0x000198e6 add.w r1, r4, 0x18                            |     r1 = r4 + 0x18;
    0x000198ea add.w lr, r4, 0x10                            |     lr = r4 + 0x10;
    0x000198ee add.w ip, r4, 8                               |     
    0x000198f2 addw sl, sp, 0x844                            |     __asm ("addw sl, var_844h");
    0x000198f6 strd r3, r2, [sp, 0x10]                       |     __asm ("strd r3, r2, [var_10h]");
    0x000198fa strd r1, r0, [sp, 8]                          |     __asm ("strd r1, r0, [var_8h]");
    0x000198fe mov r3, r4                                    |     r3 = r4;
    0x00019900 mov r2, sl                                    |     r2 = sl;
    0x00019902 mov r1, r7                                    |     r1 = r7;
    0x00019904 mov r0, r5                                    |     r0 = r5;
    0x00019906 strd ip, lr, [sp]                             |     __asm ("strd ip, lr, [sp]");
    0x0001990a blx 0xc178                                    |     r0 = fcn_0000c178 ();
    0x0001990e cmp r0, 0x11                                  |     
                                                             |     if (r0 != 0x11) {
    0x00019910 bne 0x19882                                   |         goto label_0;
                                                             |     }
    0x00019912 mov r0, sl                                    |     r0 = sl;
    0x00019914 mov r1, r8                                    |     r1 = r8;
    0x00019916 blx 0xbc58                                    |     r0 = fcn_0000bc58 ();
    0x0001991a mov sl, r0                                    |     sl = r0;
    0x0001991c cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001991e bne 0x19882                                   |         goto label_0;
                                                             |     }
    0x00019920 mov r0, r6                                    |     r0 = r6;
    0x00019922 blx 0xc248                                    |     munmap (r0, r1);
    0x00019926 b 0x19948                                     |     goto label_3;
                                                             | label_2:
    0x00019928 mov r0, r6                                    |     r0 = r6;
    0x0001992a blx 0xc248                                    |     munmap (r0, r1);
    0x0001992e ldr r3, [pc, 0x78]                            |     
    0x00019930 mov r2, sl                                    |     r2 = sl;
    0x00019932 ldr r0, [pc, 0x78]                            |     
    0x00019934 mov.w sl, 1                                   |     sl = 1;
    0x00019938 mov.w r1, 0x110                               |     r1 = case.0x3207a.11;
    0x0001993c add r3, pc                                    |     r3 = 0x332ea;
    0x0001993e add r0, pc                                    |     r0 = 0x332f0;
    0x00019940 bl 0x35d28                                    |     zbx_strdup2 ();
    0x00019944 str.w r0, [sb]                                |     __asm ("str.w r0, [sb]");
                                                             |     do {
                                                             | label_3:
    0x00019948 ldr r2, [pc, 0x64]                            |         
    0x0001994a add.w r1, sp, 0x1040                          |         r1 += var_1040h;
    0x0001994e ldr r3, [pc, 0x48]                            |         r3 = *(0x1999a);
    0x00019950 adds r1, 4                                    |         r1 += 4;
    0x00019952 add r2, pc                                    |         r2 = 0x33306;
    0x00019954 ldr r3, [r2, r3]                              |         r3 = *(0x33306);
    0x00019956 ldr r2, [r3]                                  |         r2 = *(0x33306);
    0x00019958 ldr r3, [r1]                                  |         r3 = *(r1);
    0x0001995a eors r2, r3                                   |         r2 ^= r3;
    0x0001995c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 == r3) {
    0x00019960 bne 0x1996e                                   |             
    0x00019962 mov r0, sl                                    |             r0 = sl;
    0x00019964 add.w sp, sp, 0x1040                          |             
    0x00019968 add sp, 8                                     |             
    0x0001996a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |             
                                                             |         }
    0x0001996e blx 0xbe48                                    |         fcn_0000be48 ();
                                                             | label_1:
    0x00019972 blx 0xc15c                                    |         r0 = fcn_0000c15c ();
    0x00019976 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00019978 mov.w sl, 1                                   |         sl = 1;
    0x0001997c bl 0x26fdc                                    |         zbx_strerror ();
    0x00019980 ldr r1, [pc, 0x30]                            |         
    0x00019982 mov r2, r0                                    |         r2 = r0;
    0x00019984 mov r0, r6                                    |         r0 = r6;
    0x00019986 add r1, pc                                    |         r1 = 0x3333e;
    0x00019988 bl 0x396b0                                    |         zbx_dsprintf ()
    0x0001998c str.w r0, [sb]                                |         __asm ("str.w r0, [sb]");
    0x00019990 b 0x19948                                     |         
                                                             |     } while (1);
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1ec50 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0001ec50 ()                                          | void fcn_0001ec50 (int16_t arg_a0h, int16_t arg_a8h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int32_t var_4h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int32_t var_18h_2;
                                                                     |     int16_t var_64h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0001ec50 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001ec54 mov r6, r2                                            |     r6 = r2;
    0x0001ec56 ldr r2, [pc, 0x178]                                   |     
    0x0001ec58 mov r5, r3                                            |     r5 = r3;
    0x0001ec5a ldr r3, [pc, 0x178]                                   |     r3 = *(0x1edd6);
    0x0001ec5c add r2, pc                                            |     r2 = 0x3da32;
    0x0001ec5e vpush {d8, d9}                                        |     __asm ("vpush {d8, d9}");
    0x0001ec62 ldr.w r8, [pc, 0x174]                                 |     r8 = *(0x0001edd8);
    0x0001ec66 sub sp, 0x6c                                          |     
    0x0001ec68 ldr r3, [r2, r3]                                      |     
    0x0001ec6a ldrd fp, sl, [sp, 0xa0]                               |     __asm ("ldrd fp, sl, [arg_a0h]");
    0x0001ec6e add r8, pc                                            |     r8 += pc;
    0x0001ec70 ldr.w sb, [sp, 0xa8]                                  |     sb = *(arg_a8h);
    0x0001ec74 ldr r3, [r3]                                          |     r3 = *(0x3da32);
    0x0001ec76 str r3, [sp, 0x64]                                    |     var_64h = r3;
    0x0001ec78 mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r0 != 0) {
    0x0001ec7c cbz r0, 0x1ec82                                       |         
    0x0001ec7e ldrb r3, [r0]                                         |         r3 = *(r0);
                                                                     |         if (r3 != 0) {
    0x0001ec80 cbnz r3, 0x1ecc6                                      |             goto label_0;
                                                                     |         }
                                                                     |     }
    0x0001ec82 ldr r3, [pc, 0x158]                                   |     
    0x0001ec84 movs r2, 0                                            |     r2 = 0;
    0x0001ec86 ldr r0, [pc, 0x158]                                   |     
    0x0001ec88 movs r1, 0x29                                         |     r1 = 0x29;
    0x0001ec8a add r3, pc                                            |     r3 = 0x3da6c;
    0x0001ec8c add r0, pc                                            |     r0 = 0x3da72;
    0x0001ec8e bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001ec92 ldr r2, [pc, 0x150]                                   |     
    0x0001ec94 str.w r0, [sb]                                        |     __asm ("str.w r0, [sb]");
    0x0001ec98 ldr.w r2, [r8, r2]                                    |     r2 = *((r8 + r2));
    0x0001ec9c ldr r2, [r2]                                          |     r2 = *(0x1ede6);
    0x0001ec9e cmp r2, 3                                             |     
    0x0001eca0 bgt 0x1ed60                                           |     
                                                                     |     while (r2 <= 3) {
    0x0001eca2 movs r4, 1                                            |         r4 = 1;
                                                                     | label_0:
    0x0001ecc6 mov r7, r1                                            |         r7 = r1;
    0x0001ecc8 mov r1, sp                                            |         r1 = sp;
    0x0001ecca blx 0xc1dc                                            |         r0 = fprintf_chk ();
    0x0001ecce mov r4, r0                                            |         r4 = r0;
    0x0001ecd0 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001ecd2 bne 0x1ed82                                           |             
    0x0001ecd4 ldrd r0, r1, [sp, 0x18]                               |             __asm ("ldrd r0, r1, [var_18h]");
    0x0001ecd8 cmp r1, 0                                             |             
                                                                     |             if (r1 < 0) {
    0x0001ecda bge 0x1ece8                                           |                 
    0x0001ecdc vmov.i32 d16, 0                                       |                 __asm ("vmov.i32 d16, 0");
    0x0001ece0 mov r0, r4                                            |                 r0 = r4;
    0x0001ece2 mov r1, r4                                            |                 r1 = r4;
    0x0001ece4 vstr d16, [sp, 0x18]                                  |                 __asm ("vstr d16, [sp, 0x18]");
                                                                     |             }
    0x0001ece8 ldrd r3, ip, [sp, 4]                                  |             __asm ("ldrd r3, ip, [var_4h]");
    0x0001ecec ldr r2, [sp, 0x10]                                    |             r2 = var_10h;
    0x0001ecee subs.w r2, ip, r2                                     |             r2 = ip - r2;
    0x0001ecf2 umull ip, lr, ip, r3                                  |             ip:lr = ip * r3;
    0x0001ecf4 ldm r6!, {r0, r1}                                     |             r0 = *(r6!);
                                                                     |             r1 = *((r6! + 4));
    0x0001ecf6 str.w ip, [r7]                                        |             __asm ("str.w ip, [r7]");
    0x0001ecfa ldr.w ip, [sp, 0xc]                                   |             ip = var_ch;
    0x0001ecfe mla lr, r3, ip, lr                                    |             __asm ("mla lr, r3, ip, lr");
    0x0001ed02 str.w lr, [r7, 4]                                     |             __asm ("str.w lr, [r7, 4]");
    0x0001ed06 umull lr, sb, r3, r0                                  |             lr:sb = r3 * r0;
    0x0001ed0a ldr r7, [sp, 0x14]                                    |             r7 = var_14h;
    0x0001ed0c sbc.w r7, ip, r7                                      |             __asm ("sbc.w r7, ip, r7");
    0x0001ed10 adds.w r8, r0, r2                                     |             r8 = r0 + r2;
    0x0001ed14 umull ip, r2, r3, r2                                  |             ip:r2 = r3 * r2;
    0x0001ed18 mla r2, r3, r7, r2                                    |             __asm ("mla r2, r3, r7, r2");
    0x0001ed1c adc.w r7, r1, r7                                      |             __asm ("adc.w r7, r1, r7");
    0x0001ed20 mla r3, r3, r1, sb                                    |             __asm ("mla r3, r3, r1, sb");
    0x0001ed24 strd lr, r3, [r6]                                     |             __asm ("strd lr, r3, [r6]");
    0x0001ed28 orrs.w r3, r8, r7                                     |             r3 = r8 | r7;
    0x0001ed2c strd ip, r2, [r5]                                     |             __asm ("strd ip, r2, [r5]");
                                                                     |             if (r3 != r8) {
    0x0001ed30 beq 0x1ed74                                           |                 
    0x0001ed32 vldr d8, [pc, 0x94]                                   |                 __asm ("vldr d8, case.0x3207a.11");
    0x0001ed36 bl 0x4152c                                            |                 r0 = fcn_0004152c (r0, r1, r2);
    0x0001ed3a vmov d16, r0, r1                                      |                 __asm ("vmov d16, r0, r1");
    0x0001ed3e mov r0, r8                                            |                 r0 = r8;
    0x0001ed40 mov r1, r7                                            |                 r1 = r7;
    0x0001ed42 vmul.f64 d9, d16, d8                                  |                 __asm ("vmul.f64 d9, d16, d8");
    0x0001ed46 bl 0x4152c                                            |                 r0 = fcn_0004152c (r0, r1, r2);
    0x0001ed4a vmov d16, r0, r1                                      |                 __asm ("vmov d16, r0, r1");
    0x0001ed4e vdiv.f64 d16, d9, d16                                 |                 __asm ("vdiv.f64 d16, d9, d16");
    0x0001ed52 vsub.f64 d8, d8, d16                                  |                 __asm ("vsub.f64 d8, d8, d16");
    0x0001ed56 vstr d16, [fp]                                        |                 __asm ("vstr d16, [fp]");
    0x0001ed5a vstr d8, [sl]                                         |                 __asm ("vstr d8, [sl]");
    0x0001ed5e b 0x1eca4                                             |                 void (*0x1eca4)() ();
    0x0001ed60 ldr r2, [pc, 0x88]                                    |                 
    0x0001ed62 mov r3, r0                                            |                 r3 = r0;
    0x0001ed64 ldr r1, [pc, 0x88]                                    |                 
    0x0001ed66 movs r0, 4                                            |                 r0 = 4;
    0x0001ed68 movs r4, 1                                            |                 r4 = 1;
    0x0001ed6a add r2, pc                                            |                 r2 = 0x3db5a;
    0x0001ed6c add r1, pc                                            |                 r1 = 0x3db60;
    0x0001ed6e bl 0x271b0                                            |                 zbx_zabbix_log ();
    0x0001ed72 b 0x1eca4                                             |                 void (*0x1eca4)() ();
                                                                     |             }
    0x0001ed74 movs r2, 0                                            |             r2 = 0;
    0x0001ed76 movs r3, 0                                            |             r3 = 0;
    0x0001ed78 strd r2, r3, [fp]                                     |             __asm ("strd r2, r3, [fp]");
                                                                     |         }
    0x0001ed82 blx 0xc15c                                            |         r0 = fcn_0000c15c ();
    0x0001ed86 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001ed88 bl 0x26fdc                                            |         zbx_strerror ();
    0x0001ed8c ldr r1, [pc, 0x64]                                    |         
    0x0001ed8e mov r2, r0                                            |         r2 = r0;
    0x0001ed90 movs r0, 0                                            |         r0 = 0;
    0x0001ed92 add r1, pc                                            |         r1 = 0x3db8a;
    0x0001ed94 bl 0x396b0                                            |         zbx_dsprintf ()
    0x0001ed98 ldr r2, [pc, 0x48]                                    |         
    0x0001ed9a str.w r0, [sb]                                        |         __asm ("str.w r0, [sb]");
    0x0001ed9e ldr.w r2, [r8, r2]                                    |         r2 = *((r8 + r2));
    0x0001eda2 ldr r2, [r2]                                          |         r2 = *(0x1ede4);
    0x0001eda4 cmp r2, 3                                             |         
    0x0001eda6 ble.w 0x1eca2                                         |         
                                                                     |     }
    0x0001edaa ldr r2, [pc, 0x4c]                                    |     
    0x0001edac mov r3, r0                                            |     r3 = r0;
    0x0001edae ldr r1, [pc, 0x4c]                                    |     
    0x0001edb0 movs r0, 4                                            |     r0 = 4;
    0x0001edb2 movs r4, 1                                            |     r4 = 1;
    0x0001edb4 add r2, pc                                            |     r2 = 0x3dbb2;
    0x0001edb6 add r1, pc                                            |     r1 = 0x3dbb8;
    0x0001edb8 bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0001edbc b 0x1eca4                                             |     return void (*0x1eca4)() ();
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x20190 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00020190 ()                                      | void fcn_00020190 (int16_t arg_864h, int16_t arg_868h, int16_t arg_1060h, int16_t arg_1860h, int16_t arg_2040h, int16_t arg_12000h) {
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_bp_18h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_sp_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_64h;
                                                                 | label_5:
    0x0001fe4c cmp r5, 1                                         |     
                                                                 |     if (r5 > 1) {
    0x0001fe4e ble 0x1fe6c                                       |         
    0x0001fe50 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0001fe52 ldr r4, [r3, 4]                                   |         r4 = *((r3 + 4));
                                                                 |         if (r4 == 0) {
    0x0001fe54 cbz r4, 0x1fe6c                                   |             goto label_9;
                                                                 |         }
    0x0001fe56 ldrb r3, [r4]                                     |         r3 = *(r4);
                                                                 |         if (r3 == 0) {
    0x0001fe58 cbz r3, 0x1fe6c                                   |             goto label_9;
                                                                 |         }
    0x0001fe5a ldr.w r1, [pc, 0x4ac]                             |         
    0x0001fe5e mov r0, r4                                        |         r0 = r4;
    0x0001fe60 add r1, pc                                        |         r1 = 0x4016e;
    0x0001fe62 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x0001fe66 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001fe68 bne.w 0x201e0                                     |             goto label_10;
                                                                 |         }
                                                                 |     }
                                                                 | label_9:
    0x0001fe6c movs r3, 1                                        |     r3 = 1;
    0x0001fe6e str r3, [sp, 0x28]                                |     var_28h = r3;
                                                                 | label_7:
    0x0001fe70 ldr.w r1, [pc, 0x498]                             |     
    0x0001fe74 ldr.w r0, [pc, 0x498]                             |     r0 = *(0x00020310);
    0x0001fe78 add r1, pc                                        |     r1 = 0x40188;
    0x0001fe7a add r0, pc                                        |     r0 += pc;
    0x0001fe7c blx 0xc39c                                        |     r0 = fcn_0000c39c ();
    0x0001fe80 mov sb, r0                                        |     sb = r0;
    0x0001fe82 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001fe84 beq.w 0x202d6                                     |         goto label_11;
                                                                 |     }
    0x0001fe88 add.w r2, sp, 0x2040                              |     r2 += arg_2040h;
    0x0001fe8c movs r3, 0                                        |     r3 = 0;
    0x0001fe8e str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0001fe90 mov.w r8, -1                                      |     r8 = -1;
    0x0001fe94 strb.w r3, [r2, 0x24]                             |     *((r2 + 0x24)) = r3;
    0x0001fe98 movw r3, 0x7270                                   |     
    0x0001fe9c movt r3, 0x636f                                   |     r3 = 0xNaN;
    0x0001fea0 vmov.i8 d8, 0xff                                  |     __asm ("vmov.i8 d8, 0xff");
    0x0001fea4 str r3, [sp, 0x1c]                                |     var_sp_1ch = r3;
    0x0001fea6 movw r3, 0x6576                                   |     
    0x0001feaa movt r3, 0x646e                                   |     r3 = 0xNaN;
    0x0001feae add r6, sp, 0x64                                  |     r6 += var_64h;
    0x0001feb0 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x0001feb2 movw r3, 0x6f6d                                   |     
    0x0001feb6 movt r3, 0x6564                                   |     r3 = 0xNaN;
    0x0001feba adds r2, 0x28                                     |     r2 += 0x28;
    0x0001febc str r3, [sp, 0x34]                                |     var_34h = r3;
    0x0001febe movw r3, 0x7063                                   |     
    0x0001fec2 movt r3, 0x2075                                   |     r3 = 0xNaN;
    0x0001fec6 str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x0001fec8 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x0001feca movw r3, 0x206c                                   |     
    0x0001fece movt r3, 0x616e                                   |     r3 = 0xNaN;
    0x0001fed2 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x0001fed4 movw r3, 0x726f                                   |     
    0x0001fed8 movt r3, 0x695f                                   |     r3 = 0xNaN;
    0x0001fedc str r3, [sp, 0x40]                                |     var_40h = r3;
    0x0001fede movs r3, 1                                        |     r3 = 1;
    0x0001fee0 str r3, [sp, 0x24]                                |     var_24h = r3;
                                                                 | label_0:
    0x0001fee2 ldr.w sl, [pc, 0x430]                             |     
    0x0001fee6 add.w r7, sp, 0x1060                              |     r7 += arg_1060h;
    0x0001feea adds r7, 4                                        |     r7 += 4;
    0x0001feec add sl, pc                                        |     sl = 0x40206;
                                                                 |     do {
    0x0001feee mov r2, sb                                        |         r2 = sb;
    0x0001fef0 mov.w r1, 0x800                                   |         r1 = case.0x3207a.11;
    0x0001fef4 mov r0, r6                                        |         r0 = r6;
    0x0001fef6 blx 0xbd2c                                        |         r0 = ferror (r0);
    0x0001fefa cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001fefc beq.w 0x20052                                     |             goto label_12;
                                                                 |         }
    0x0001ff00 addw r4, sp, 0x864                                |         __asm ("addw r4, arg_864h");
    0x0001ff04 mov r3, r7                                        |         r3 = r7;
    0x0001ff06 mov r1, sl                                        |         r1 = sl;
    0x0001ff08 mov r2, r4                                        |         r2 = r4;
    0x0001ff0a mov r0, r6                                        |         r0 = r6;
    0x0001ff0c addw r5, sp, 0x868                                |         __asm ("addw r5, arg_868h");
    0x0001ff10 blx 0xc178                                        |         r0 = fcn_0000c178 ();
    0x0001ff14 cmp r0, 2                                         |         
    0x0001ff16 bne 0x1feee                                       |         
                                                                 |     } while (r0 != 2);
    0x0001ff18 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001ff1a ldr r2, [sp, 0x1c]                                |     r2 = var_sp_1ch;
    0x0001ff1c str r5, [sp, 0x14]                                |     var_14h = r5;
    0x0001ff1e cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0001ff20 beq 0x1ff7e                                       |         goto label_13;
                                                                 |     }
                                                                 | label_1:
    0x0001ff22 ldr r3, [fp, -0x1c]                               |     r3 = var_1ch;
    0x0001ff26 cmp r3, r8                                        |     
    0x0001ff28 it ne                                             |     
                                                                 |     if (r3 == r8) {
    0x0001ff2a cmpne r3, -1                                      |         __asm ("cmpne r3, -1");
                                                                 |         goto label_14;
                                                                 |     }
                                                                 |     if (r3 != r8) {
                                                                 | label_14:
    0x0001ff2e bne 0x1fee2                                       |         goto label_0;
                                                                 |     }
    0x0001ff30 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001ff32 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0001ff34 cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0001ff36 beq.w 0x200e0                                     |         goto label_15;
                                                                 |     }
                                                                 | label_2:
    0x0001ff3a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001ff3c ldr r2, [sp, 0x34]                                |     r2 = var_34h;
    0x0001ff3e cmp r3, r2                                        |     
                                                                 |     if (r3 == r2) {
    0x0001ff40 beq.w 0x20122                                     |         goto label_16;
                                                                 |     }
                                                                 | label_3:
    0x0001ff44 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001ff46 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0001ff48 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001ff4a bne 0x1fee2                                       |         goto label_0;
                                                                 |     }
    0x0001ff4c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0001ff4e ldrh r2, [r3]                                     |     r2 = *(r3);
    0x0001ff50 movw r3, 0x484d                                   |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001ff54 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0001ff56 bne 0x1fee2                                       |         goto label_0;
                                                                 |     }
    0x0001ff58 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0001ff5a ldrb r3, [r3, 2]                                  |     r3 = *((r3 + 2));
    0x0001ff5c cmp r3, 0x7a                                      |     
                                                                 |     if (r3 != 0x7a) {
    0x0001ff5e bne 0x1fee2                                       |         goto label_0;
                                                                 |     }
    0x0001ff60 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0001ff62 bic r3, r3, 4                                     |     r3 = BIT_MASK (r3, 4);
    0x0001ff66 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0001ff68 bne 0x1fee2                                       |         goto label_0;
                                                                 |     }
    0x0001ff6a ldr r1, [pc, 0x3ac]                               |     
    0x0001ff6c movs r3, 0                                        |     r3 = 0;
    0x0001ff6e mov r0, r7                                        |     r0 = r7;
    0x0001ff70 sub.w r2, fp, 0x18                                |     r2 = fp - 0x18;
    0x0001ff74 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x0001ff76 add r1, pc                                        |     r1 = 0x40294;
    0x0001ff78 blx 0xc178                                        |     fcn_0000c178 ();
    0x0001ff7c b 0x1fee2                                         |     goto label_0;
                                                                 | label_13:
    0x0001ff7e ldr r2, [r5]                                      |     r2 = *(r5);
    0x0001ff80 movw r3, 0x7365                                   |     
    0x0001ff84 movt r3, 0x6f73                                   |     r3 = 0xNaN;
    0x0001ff88 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0001ff8a bne 0x1ff22                                       |         goto label_1;
                                                                 |     }
    0x0001ff8c ldrb r3, [r5, 4]                                  |     r3 = *((r5 + 4));
    0x0001ff8e cmp r3, 0x72                                      |     
                                                                 |     if (r3 != 0x72) {
    0x0001ff90 bne 0x1ff22                                       |         goto label_1;
                                                                 |     }
    0x0001ff92 cmp.w r8, -1                                      |     
                                                                 |     if (r8 != -1) {
    0x0001ff96 beq 0x1ffcc                                       |         
    0x0001ff98 ldr r3, [fp, -0x1c]                               |         r3 = var_1ch;
    0x0001ff9c cmp r3, r8                                        |         
    0x0001ff9e it ne                                             |         
                                                                 |         if (r3 != r8) {
    0x0001ffa0 cmpne r3, -1                                      |             __asm ("cmpne r3, -1");
                                                                 |         }
                                                                 |         if (r3 != r8) {
    0x0001ffa4 bne 0x1ffcc                                       |             goto label_17;
                                                                 |         }
    0x0001ffa6 ldr r2, [sp, 0x2c]                                |         r2 = var_2ch;
    0x0001ffa8 ldr r5, [sp, 0x20]                                |         r5 = var_20h;
    0x0001ffaa vstr d8, [sp]                                     |         __asm ("vstr d8, [sp]");
    0x0001ffae subs r0, r2, 4                                    |         r0 = r2 - 4;
    0x0001ffb0 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x0001ffb2 vldr d16, [r5, -8]                                |         __asm ("vldr d16, [r5, -8]");
    0x0001ffb6 add r0, r2                                        |         r0 += r2;
    0x0001ffb8 rsb.w r1, r2, 0x10000                             |         r1 = case.0x3207a.11 - r2;
    0x0001ffbc vstr d16, [sp, 8]                                 |         __asm ("vstr d16, [sp, 8]");
    0x0001ffc0 ldr r2, [sp, 0x28]                                |         r2 = var_28h;
    0x0001ffc2 bl 0x1f5d4                                        |         fcn_0001f5d4 (r0, r1, r2, r3, r4, r5, r6);
    0x0001ffc6 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x0001ffc8 adds r3, r2, r0                                   |         r3 = r2 + r0;
    0x0001ffca str r3, [sp, 0x18]                                |         var_18h = r3;
                                                                 |     }
                                                                 | label_17:
    0x0001ffcc ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0001ffce movs r2, 0xa                                      |     r2 = 0xa;
    0x0001ffd0 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x0001ffd4 movs r1, 0                                        |     r1 = 0;
    0x0001ffd6 mov r0, r7                                        |     r0 = r7;
    0x0001ffd8 vstr d16, [r3, -8]                                |     __asm ("vstr d16, [r3, -8]");
    0x0001ffdc blx 0xbc70                                        |     fcn_0000bc70 ();
    0x0001ffe0 ldr r3, [fp, -0x1c]                               |     r3 = var_1ch;
    0x0001ffe4 mov r8, r0                                        |     r8 = r0;
    0x0001ffe6 adds r2, r3, 1                                    |     r2 = r3 + 1;
                                                                 |     if (r2 == r3) {
    0x0001ffe8 beq.w 0x2021e                                     |         goto label_18;
                                                                 |     }
    0x0001ffec cmp r3, r0                                        |     
                                                                 |     if (r3 != r0) {
    0x0001ffee bne.w 0x1fee2                                     |         goto label_0;
                                                                 |     }
    0x0001fff2 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0001fff4 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0001fff6 beq.w 0x20246                                     |         goto label_19;
                                                                 |     }
    0x0001fffa ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0001fffc cmp r3, 2                                         |     
    0x0001fffe invalid                                           |     
                                                                 | label_8:
    0x00020000 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00020002 add.w sl, sp, 0x1860                              |     sl += arg_1860h;
    0x00020004 ldrh r3, [r0, r3]                                 |     r3 = *((r0 + r3));
    0x00020006 vmov.i8 d16, 0xff                                 |     __asm ("vmov.i8 d16, 0xff");
    0x00020008 lsrs r7, r3, 0x18                                 |     r7 = r3 >> 0x18;
    0x0002000a add.w sl, sl, 4                                   |     sl += 4;
    0x0002000e ldr r2, [pc, 0x30c]                               |     
    0x00020010 mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x00020014 mov r0, sl                                        |     r0 = sl;
    0x00020016 vstr d16, [r3]                                    |     __asm ("vstr d16, [r3]");
    0x0002001a mov r3, r8                                        |     r3 = r8;
    0x0002001c add r2, pc                                        |     r2 = 0x4033e;
    0x0002001e bl 0x38ea0                                        |     zbx_snprintf ();
    0x00020022 ldr r1, [pc, 0x2fc]                               |     
    0x00020024 mov r0, sl                                        |     r0 = sl;
    0x00020026 add r1, pc                                        |     r1 = 0x4034c;
    0x00020028 blx 0xc39c                                        |     r0 = fcn_0000c39c ();
    0x0002002c mov sl, r0                                        |     sl = r0;
    0x0002002e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00020030 beq.w 0x202ce                                     |         goto label_20;
                                                                 |     }
    0x00020034 ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x00020036 ldr r1, [pc, 0x2ec]                               |     
    0x00020038 mov r2, r5                                        |     r2 = r5;
    0x0002003a add r1, pc                                        |     r1 = 0x40364;
    0x0002003c blx 0xbca0                                        |     r0 = fcn_0000bca0 ();
    0x00020040 cmp r0, 1                                         |     
    0x00020042 mov r0, sl                                        |     r0 = sl;
                                                                 |     if (r0 == 1) {
    0x00020044 beq.w 0x20262                                     |         goto label_21;
                                                                 |     }
    0x00020048 blx 0xc248                                        |     munmap (r0, r1);
    0x0002004c vldr d8, [r5]                                     |     __asm ("vldr d8, [r5]");
    0x00020050 b 0x1ff22                                         |     goto label_1;
                                                                 | label_12:
    0x00020052 mov r4, r0                                        |     r4 = r0;
    0x00020054 mov r0, sb                                        |     r0 = sb;
    0x00020056 blx 0xc248                                        |     munmap (r0, r1);
    0x0002005a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0002005c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0002005e bne.w 0x20272                                     |         goto label_22;
                                                                 |     }
    0x00020062 cmp.w r8, -1                                      |     
                                                                 |     if (r8 != -1) {
    0x00020066 beq 0x20096                                       |         
    0x00020068 ldr r3, [fp, -0x1c]                               |         r3 = var_1ch;
    0x0002006c cmp r3, r8                                        |         
    0x0002006e it ne                                             |         
                                                                 |         if (r3 != r8) {
    0x00020070 cmpne r3, -1                                      |             __asm ("cmpne r3, -1");
                                                                 |         }
                                                                 |         if (r3 != r8) {
    0x00020074 bne 0x20096                                       |             goto label_23;
                                                                 |         }
    0x00020076 ldr r1, [sp, 0x20]                                |         r1 = var_20h;
    0x00020078 vstr d8, [sp]                                     |         __asm ("vstr d8, [sp]");
    0x0002007c ldr r2, [sp, 0x28]                                |         r2 = var_28h;
    0x0002007e ldrd r0, r1, [r1, -0x8]                           |         __asm ("ldrd r0, r1, [r1, -0x8]");
    0x00020082 strd r0, r1, [sp, 8]                              |         __asm ("strd r0, r1, [sp, 8]");
    0x00020086 ldr r1, [sp, 0x2c]                                |         r1 = var_2ch;
    0x00020088 subs r0, r1, 4                                    |         r0 = r1 - 4;
    0x0002008a ldr r1, [sp, 0x18]                                |         r1 = var_18h;
    0x0002008c add r0, r1                                        |         r0 += r1;
    0x0002008e rsb.w r1, r1, 0x10000                             |         r1 = case.0x3207a.11 - r1;
    0x00020092 bl 0x1f5d4                                        |         fcn_0001f5d4 (r0, r1, r2, r3, r4, r5, r6);
                                                                 |     }
                                                                 | label_23:
    0x00020096 ldr r4, [sp, 0x3c]                                |     r4 = var_3ch;
    0x00020098 movs r2, 0                                        |     r2 = 0;
    0x0002009a ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x0002009c ldr r0, [pc, 0x288]                               |     
    0x0002009e ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x000200a0 subs r3, 3                                        |     r3 -= 3;
    0x000200a2 add r0, pc                                        |     r0 = 0x403ce;
    0x000200a4 orr r1, r1, 8                                     |     r1 |= 8;
    0x000200a8 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x000200aa mov.w r1, 0x1ea                                   |     r1 = case.0x3207a.11;
    0x000200ae bl 0x35d28                                        |     zbx_strdup2 ();
    0x000200b2 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
                                                                 | label_6:
    0x000200b4 ldr r2, [pc, 0x274]                               |     
    0x000200b6 add.w r1, sp, 0x12000                             |     r1 += arg_12000h;
    0x000200ba ldr r3, [pc, 0x248]                               |     r3 = *(0x20306);
    0x000200bc adds r1, 0x64                                     |     r1 += 0x64;
    0x000200be add r2, pc                                        |     r2 = 0x403ee;
    0x000200c0 ldr r3, [r2, r3]                                  |     r3 = *(0x403ee);
    0x000200c2 ldr r2, [r3]                                      |     r2 = *(0x403ee);
    0x000200c4 ldr r3, [r1]                                      |     r3 = *(r1);
    0x000200c6 eors r2, r3                                       |     r2 ^= r3;
    0x000200c8 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x000200cc bne.w 0x202ca                                     |         goto label_24;
                                                                 |     }
    0x000200d0 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x000200d2 add.w sp, sp, 0x12000                             |     
    0x000200d6 add sp, 0x6c                                      |     
    0x000200d8 vpop {d8}                                         |     __asm ("vpop {d8}");
    0x000200dc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_15:
    0x000200e0 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000200e2 ldr r2, [sp, 0x40]                                |     r2 = var_40h;
    0x000200e4 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000200e6 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x000200e8 bne.w 0x1ff3a                                     |         goto label_2;
                                                                 |     }
    0x000200ec ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000200ee ldrb r3, [r3, 4]                                  |     r3 = *((r3 + 4));
    0x000200f0 cmp r3, 0x64                                      |     
                                                                 |     if (r3 != 0x64) {
    0x000200f2 bne.w 0x1ff3a                                     |         goto label_2;
                                                                 |     }
    0x000200f6 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000200f8 bic r3, r3, 2                                     |     r3 = BIT_MASK (r3, 2);
    0x000200fc cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x000200fe bne.w 0x1ff3a                                     |         goto label_2;
                                                                 |     }
    0x00020102 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00020104 mov r3, r7                                        |     r3 = r7;
    0x00020106 ldr r4, [sp, 0x18]                                |     r4 = var_18h;
    0x00020108 subs r0, r2, 4                                    |     r0 = r2 - 4;
    0x0002010a ldr r2, [pc, 0x224]                               |     
    0x0002010c add r0, r4                                        |     r0 += r4;
    0x0002010e rsb.w r1, r4, 0x10000                             |     r1 = case.0x3207a.11 - r4;
    0x00020112 add r2, pc                                        |     r2 = 0x40448;
                                                                 | label_4:
    0x00020114 bl 0x38ea0                                        |     r0 = zbx_snprintf ();
    0x00020118 adds r3, r4, r0                                   |     r3 = r4 + r0;
    0x0002011a str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002011c movs r3, 0                                        |     r3 = 0;
    0x0002011e str r3, [sp, 0x24]                                |     var_24h = r3;
    0x00020120 b 0x1fee2                                         |     goto label_0;
                                                                 | label_16:
    0x00020122 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00020124 ldr r2, [sp, 0x44]                                |     r2 = var_44h;
    0x00020126 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00020128 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0002012a bne.w 0x1ff44                                     |         goto label_3;
                                                                 |     }
    0x0002012e ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00020130 ldrh r2, [r3, 4]                                  |     r2 = *((r3 + 4));
    0x00020132 movw r3, 0x656d                                   |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00020134 strh r5, [r5, r5]                                 |     *((r5 + r5)) = r5;
    0x00020136 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x00020138 bne.w 0x1ff44                                     |         goto label_3;
                                                                 |     }
    0x0002013c ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002013e cmp r3, 4                                         |     
    0x00020140 it ne                                             |     
                                                                 |     if (r3 == 4) {
    0x00020142 cmpne r3, 1                                       |         __asm ("cmpne r3, 1");
                                                                 |         goto label_25;
                                                                 |     }
                                                                 |     if (r3 != 4) {
                                                                 | label_25:
    0x00020144 bne.w 0x1ff44                                     |         goto label_3;
                                                                 |     }
    0x00020148 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x0002014a mov r3, r7                                        |     r3 = r7;
    0x0002014c ldr r4, [sp, 0x18]                                |     r4 = var_18h;
    0x0002014e subs r0, r2, 4                                    |     r0 = r2 - 4;
    0x00020150 ldr r2, [pc, 0x1e0]                               |     
    0x00020152 add r0, r4                                        |     r0 += r4;
    0x00020154 rsb.w r1, r4, 0x10000                             |     r1 = case.0x3207a.11 - r4;
    0x00020158 add r2, pc                                        |     r2 = 0x40490;
    0x0002015a b 0x20114                                         |     goto label_4;
    0x00020190 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00020194 mov r0, r6                                        |     r0 = r6;
    0x00020196 movs r7, 0                                        |     r7 = 0;
    0x00020198 mvn r6, 0x80000000                                |     r6 = ~case.0x3207a.11;
    0x0002019c movs r3, 4                                        |     r3 = 4;
    0x0002019e sub.w r2, fp, 0x1c                                |     r2 = fp - 0x1c;
    0x000201a2 mov.w r1, -1                                      |     r1 = -1;
    0x000201a6 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x000201aa strd r6, r7, [sp, 8]                              |     __asm ("strd r6, r7, [sp, 8]");
    0x000201ae bl 0x367c8                                        |     is_uint_n_range ();
    0x000201b2 adds r0, 1                                        |     r0++;
    0x000201b4 it ne                                             |     
                                                                 |     if (r0 != 1) {
    0x000201b6 ldrne r5, [r4, 4]                                 |         r5 = *((r4 + 4));
                                                                 |         goto label_26;
                                                                 |     }
                                                                 |     if (r0 != 1) {
                                                                 | label_26:
    0x000201b8 bne.w 0x1fe4c                                     |         goto label_5;
                                                                 |     }
    0x000201bc ldr r4, [sp, 0x3c]                                |     r4 = var_3ch;
    0x000201be movs r2, 0                                        |     r2 = 0;
    0x000201c0 ldr r3, [pc, 0x180]                               |     
    0x000201c2 movw r1, 0x18f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000201c6 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000201c8 add r3, pc                                        |     r3 = 0x40510;
    0x000201ca orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000201ce str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000201d0 ldr r0, [pc, 0x174]                               |     
    0x000201d2 add r0, pc                                        |     r0 = 0x4051e;
    0x000201d4 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000201d8 movs r3, 1                                        |     r3 = 1;
    0x000201da str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000201dc str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000201de b 0x200b4                                         |     goto label_6;
                                                                 | label_10:
    0x000201e0 ldr r1, [pc, 0x168]                               |     
    0x000201e2 mov r0, r4                                        |     r0 = r4;
    0x000201e4 add r1, pc                                        |     r1 = 0x40534;
    0x000201e6 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x000201ea cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000201ec beq 0x20294                                       |         goto label_27;
                                                                 |     }
    0x000201ee ldr r1, [pc, 0x160]                               |     
    0x000201f0 mov r0, r4                                        |     r0 = r4;
    0x000201f2 add r1, pc                                        |     r1 = 0x40548;
    0x000201f4 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x000201f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000201fa beq 0x2029a                                       |         goto label_28;
                                                                 |     }
    0x000201fc ldr r1, [pc, 0x154]                               |     
    0x000201fe mov r0, r4                                        |     r0 = r4;
    0x00020200 add r1, pc                                        |     r1 = 0x40558;
    0x00020202 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020206 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00020208 beq 0x202a0                                       |         goto label_29;
                                                                 |     }
    0x0002020a ldr r1, [pc, 0x14c]                               |     
    0x0002020c mov r0, r4                                        |     r0 = r4;
    0x0002020e add r1, pc                                        |     r1 = 0x4056c;
    0x00020210 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020214 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00020216 bne 0x202a6                                       |         goto label_30;
                                                                 |     }
    0x00020218 movs r3, 5                                        |     r3 = 5;
    0x0002021a str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002021c b 0x1fe70                                         |     goto label_7;
                                                                 | label_18:
    0x0002021e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00020220 ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x00020222 ldr r2, [pc, 0x138]                               |     
    0x00020224 subs r0, r3, 4                                    |     r0 = r3 - 4;
    0x00020226 mov r3, r8                                        |     r3 = r8;
    0x00020228 add r0, r5                                        |     r0 += r5;
    0x0002022a rsb.w r1, r5, 0x10000                             |     r1 = case.0x3207a.11 - r5;
    0x0002022c adds r1, 0x80                                     |     r1 += 0x80;
    0x0002022e add r2, pc                                        |     r2 = 0x40590;
    0x00020230 bl 0x38ea0                                        |     zbx_snprintf ();
    0x00020234 mov r3, r5                                        |     r3 = r5;
    0x00020236 add r3, r0                                        |     r3 += r0;
    0x00020238 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002023a ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x0002023c subs r3, 1                                        |     r3--;
    0x0002023e cmp r3, 1                                         |     
                                                                 |     if (r3 > 1) {
    0x00020240 bhi.w 0x1ff22                                     |         goto label_1;
                                                                 |     }
    0x00020244 b 0x20000                                         |     goto label_8;
                                                                 | label_19:
    0x00020246 ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00020248 ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x0002024a ldr r2, [pc, 0x114]                               |     
    0x0002024c subs r0, r3, 4                                    |     r0 = r3 - 4;
    0x0002024e mov r3, r8                                        |     r3 = r8;
    0x00020250 add r0, r5                                        |     r0 += r5;
    0x00020252 rsb.w r1, r5, 0x10000                             |     r1 = case.0x3207a.11 - r5;
    0x00020256 add r2, pc                                        |     r2 = 0x405bc;
    0x00020258 bl 0x38ea0                                        |     r0 = zbx_snprintf ();
    0x0002025c adds r3, r0, r5                                   |     r3 = r0 + r5;
    0x0002025e str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00020260 b 0x20000                                         |     goto label_8;
                                                                 | label_21:
    0x00020262 blx 0xc248                                        |     munmap (r0, r1);
    0x00020266 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00020268 vldr d8, [r3]                                     |     __asm ("vldr d8, [r3]");
    0x0002026c movs r3, 0                                        |     r3 = 0;
    0x0002026e str r3, [sp, 0x24]                                |     var_24h = r3;
    0x00020270 b 0x1ff22                                         |     goto label_1;
                                                                 | label_22:
    0x00020272 ldr r0, [sp, 0x3c]                                |     r0 = var_3ch;
    0x00020274 mov r2, r4                                        |     r2 = r4;
    0x00020276 ldr r3, [pc, 0xec]                                |     
    0x00020278 ldr r1, [r0, 0x28]                                |     r1 = *((r0 + 0x28));
    0x0002027a mov r4, r0                                        |     r4 = r0;
    0x0002027c add r3, pc                                        |     r3 = 0x405e6;
    0x0002027e orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00020282 str r1, [r0, 0x28]                                |     *((r0 + 0x28)) = r1;
    0x00020284 movw r1, 0x1e3                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00020288 ldr r0, [pc, 0xdc]                                |     
    0x0002028a add r0, pc                                        |     r0 = 0x405f6;
    0x0002028c bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020290 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00020292 b 0x200b4                                         |     goto label_6;
                                                                 | label_27:
    0x00020294 movs r3, 2                                        |     r3 = 2;
    0x00020296 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00020298 b 0x1fe70                                         |     goto label_7;
                                                                 | label_28:
    0x0002029a movs r3, 3                                        |     r3 = 3;
    0x0002029c str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0002029e b 0x1fe70                                         |     goto label_7;
                                                                 | label_29:
    0x000202a0 movs r3, 4                                        |     r3 = 4;
    0x000202a2 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x000202a4 b 0x1fe70                                         |     goto label_7;
                                                                 | label_30:
    0x000202a6 ldr r4, [sp, 0x3c]                                |     r4 = var_3ch;
    0x000202a8 movs r2, 0                                        |     r2 = 0;
    0x000202aa ldr r3, [pc, 0xc0]                                |     
    0x000202ac movw r1, 0x1a1                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000202b0 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000202b2 add r3, pc                                        |     r3 = 0x40624;
    0x000202b4 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000202b8 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000202ba ldr r0, [pc, 0xb4]                                |     
    0x000202bc add r0, pc                                        |     r0 = 0x40632;
    0x000202be bl 0x35d28                                        |     zbx_strdup2 ();
    0x000202c2 movs r3, 1                                        |     r3 = 1;
    0x000202c4 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000202c6 str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000202c8 b 0x200b4                                         |     goto label_6;
                                                                 | label_24:
    0x000202ca blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_20:
    0x000202ce ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x000202d0 vldr d8, [r3]                                     |     __asm ("vldr d8, [r3]");
    0x000202d4 b 0x1ff22                                         |     goto label_1;
                                                                 | label_11:
    0x000202d6 ldr r4, [sp, 0x3c]                                |     r4 = var_3ch;
    0x000202d8 movs r1, 1                                        |     r1 = 1;
    0x000202da str r1, [sp, 0x24]                                |     var_24h = r1;
    0x000202dc ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x000202de orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000202e2 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x000202e4 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000202e8 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000202ea bl 0x26fdc                                        |     zbx_strerror ();
    0x000202ee ldr r1, [pc, 0x84]                                |     
    0x000202f0 mov r2, r0                                        |     r2 = r0;
    0x000202f2 mov r0, sb                                        |     r0 = sb;
    0x000202f4 add r1, pc                                        |     r1 = 0x4066e;
    0x000202f6 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000202fa str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000202fc b 0x200b4                                         |     goto label_6;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2152c */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0002152c ()                                          | void fcn_0002152c (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_bp_20h;
                                                                     |     int16_t var_bp_28h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0002152c push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00021530 mov sl, r0                                            |     sl = r0;
    0x00021532 mov fp, r1                                            |     
    0x00021534 bl 0x3c300                                            |     r0 = num_param ();
    0x00021538 subs.w sb, r0, 0                                      |     sb = r0 - 0;
                                                                     |     if (sb <= r0) {
    0x0002153c ble 0x215d4                                           |         goto label_1;
                                                                     |     }
    0x0002153e mov.w r8, 0                                           |     r8 = 0;
    0x00021542 movs r7, 1                                            |     r7 = 1;
                                                                     | label_0:
    0x00021544 movs r2, 0                                            |     r2 = 0;
    0x00021546 mov r1, r7                                            |     r1 = r7;
    0x00021548 mov r0, sl                                            |     r0 = sl;
    0x0002154a bl 0x3c324                                            |     r0 = get_param_dyn ();
    0x0002154e mov r6, r0                                            |     r6 = r0;
                                                                     |     if (r0 == 0) {
    0x00021550 cbz r0, 0x21586                                       |         goto label_2;
                                                                     |     }
    0x00021552 ldr r4, [pc, 0x84]                                    |     
    0x00021554 movs r5, 1                                            |     r5 = 1;
    0x00021556 add r4, pc                                            |     r4 = 0x42b34;
    0x00021558 b 0x21568                                             |     
                                                                     |     while (r3 != 0) {
    0x0002155a blx 0xc114                                            |         fcn_0000c114 ();
    0x0002155e adds r0, 1                                            |         r0++;
    0x00021560 lsls r5, r5, 1                                        |         r5 <<= 1;
    0x00021562 add r4, r0                                            |         r4 += r0;
    0x00021564 ldrb r3, [r4]                                         |         r3 = *(r4);
                                                                     |         if (r3 == 0) {
    0x00021566 cbz r3, 0x21578                                       |             goto label_3;
                                                                     |         }
    0x00021568 mov r1, r4                                            |         r1 = r4;
    0x0002156a mov r0, r6                                            |         r0 = r6;
    0x0002156c blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x00021570 mov r3, r0                                            |         r3 = r0;
    0x00021572 mov r0, r4                                            |         r0 = r4;
    0x00021574 cmp r3, 0                                             |         
    0x00021576 bne 0x2155a                                           |         
                                                                     |     }
                                                                     | label_3:
    0x00021578 lsls r3, r5, 0x16                                     |     r3 = r5 << 0x16;
                                                                     |     if (r3 < r5) {
    0x0002157a bmi 0x215aa                                           |         goto label_4;
                                                                     |     }
    0x0002157c mov r0, r6                                            |     r0 = r6;
    0x0002157e orr.w r8, r8, r5                                      |     r8 |= r5;
    0x00021582 blx 0xbd14                                            |     gai_strerror ();
                                                                     | label_2:
    0x00021586 adds r7, 1                                            |     r7++;
    0x00021588 cmp sb, r7                                            |     
                                                                     |     if (sb >= r7) {
    0x0002158a bge 0x21544                                           |         goto label_0;
                                                                     |     }
    0x0002158c tst.w r8, 0x100                                       |     
    0x00021590 itete eq                                              |     
                                                                     |     if ((r8 & 0x100) != 0) {
    0x00021592 andeq r3, r8, 0x80                                    |         r3 = r8 & 0x80;
                                                                     |     }
                                                                     |     if ((r8 & 0x100) != 0) {
    0x00021596 andeq r3, r8, 0x80                                    |         r3 = r8 & 0x80;
                                                                     |     }
                                                                     |     if ((r8 & 0x100) == 0) {
    0x0002159a mov r0, r8                                            |         r0 = r8;
                                                                     |     }
                                                                     |     if ((r8 & 0x100) != 0) {
    0x0002159c orr r0, r8, 0x30                                      |         r0 = r8 | 0x30;
                                                                     |     }
                                                                     |     if (r3 == 0) {
    0x000215a0 cbz r3, 0x215a6                                       |         goto label_5;
                                                                     |     }
    0x000215a2 orr r0, r0, 0x7f                                      |     r0 |= 0x7f;
                                                                     |     do {
                                                                     | label_5:
    0x000215a6 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                     | label_4:
    0x000215aa ldr.w r3, [fp, 0x28]                                  |         r3 = var_bp_28h;
    0x000215ae mov r2, r6                                            |         r2 = r6;
    0x000215b0 ldr r1, [pc, 0x28]                                    |         
    0x000215b2 movs r0, 0                                            |         r0 = 0;
    0x000215b4 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x000215b8 add r1, pc                                            |         r1 = "NOT OK";
    0x000215ba str.w r3, [fp, 0x28]                                  |         __asm ("str.w r3, [var_bp_28h]");
    0x000215be bl 0x396b0                                            |         zbx_dsprintf ()
    0x000215c2 str.w r0, [fp, 0x20]                                  |         __asm ("str.w r0, [var_bp_20h]");
    0x000215c6 mov r0, r6                                            |         r0 = r6;
    0x000215c8 blx 0xbd14                                            |         gai_strerror ();
    0x000215cc mov.w r0, -1                                          |         r0 = -1;
    0x000215d0 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                     | label_1:
    0x000215d4 movs r0, 0                                            |         r0 = 0;
    0x000215d6 b 0x215a6                                             |         
                                                                     |     } while (1);
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x215e0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000215e0 ()                                      | void fcn_000215e0 (int16_t arg_1h, int16_t arg_2h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_60h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000215e0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000215e4 mov ip, r0                                        |     
    0x000215e6 ldr r4, [pc, 0x2d4]                               |     
    0x000215e8 sub sp, 0x24                                      |     
    0x000215ea mov r6, r3                                        |     r6 = r3;
    0x000215ec movs r5, 0                                        |     r5 = 0;
    0x000215ee ldr r0, [pc, 0x2d0]                               |     r0 = *(0x218c2);
    0x000215f0 add r4, pc                                        |     r4 = 0x42eb2;
    0x000215f2 ldr r3, [sp, 0x60]                                |     r3 = *(arg_60h);
    0x000215f4 ldrd sl, r7, [sp, 0x4c]                           |     __asm ("ldrd sl, r7, [arg_4ch]");
    0x000215f8 ldr r0, [r4, r0]                                  |     
    0x000215fa ldr.w r4, [ip, 4]                                 |     r4 = *((ip + 4));
    0x000215fe ldr.w r8, [sp, 0x54]                              |     r8 = *(arg_54h);
    0x00021602 ldr r0, [r0]                                      |     r0 = *(0x42eb2);
    0x00021604 str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x00021606 mov.w r0, 0                                       |     r0 = 0;
    0x0002160a ldr r0, [sp, 0x48]                                |     r0 = *(arg_48h);
    0x0002160c cmp r4, r3                                        |     
    0x0002160e str r5, [sp, 0x18]                                |     var_18h = r5;
    0x00021610 strd r0, r1, [sp, 0x10]                           |     __asm ("strd r0, r1, [var_14h]");
                                                                 |     if (r4 > r3) {
    0x00021614 bgt.w 0x21852                                     |         goto label_8;
                                                                 |     }
    0x00021618 cmp r4, 0                                         |     
    0x0002161a itt gt                                            |     
                                                                 |     if (r4 <= 0) {
    0x0002161c ldrgt r3, [ip, 8]                                 |         r3 = *((ip + 8));
                                                                 |     }
                                                                 |     if (r4 > 0) {
    0x00021620 ldr r5, [r3]                                      |         r5 = *(r3);
                                                                 |     }
    0x00021622 cmp r4, 1                                         |     
    0x00021624 itet gt                                           |     
                                                                 |     if (r4 <= 1) {
    0x00021626 ldrgt r3, [ip, 8]                                 |         r3 = *((ip + 8));
                                                                 |     }
                                                                 |     if (r4 <= 1) {
    0x0002162a movgt r0, 0                                       |         r0 = 0;
                                                                 |     }
                                                                 |     if (r4 > 1) {
    0x0002162c ldr r0, [r3, 4]                                   |         r0 = *((r3 + 4));
                                                                 |     }
    0x0002162e cmp r4, 2                                         |     
    0x00021630 itet gt                                           |     
                                                                 |     if (r4 <= 2) {
    0x00021632 ldrgt r3, [ip, 8]                                 |         r3 = *((ip + 8));
                                                                 |     }
                                                                 |     if (r4 <= 2) {
    0x00021636 movgt sb, 0                                       |         sb = 0;
                                                                 |     }
                                                                 |     if (r4 > 2) {
    0x0002163a ldr.w sb, [r3, 8]                                 |         sb = *((r3 + 8));
                                                                 |     }
    0x0002163e ldr r3, [sp, 0x5c]                                |     r3 = *(arg_5ch);
    0x00021640 cmp r4, r3                                        |     
                                                                 |     if (r4 <= r3) {
    0x00021642 ble 0x2171c                                       |         goto label_9;
                                                                 |     }
    0x00021644 ldr.w r3, [ip, 8]                                 |     r3 = *((ip + 8));
    0x00021648 ldr r1, [sp, 0x5c]                                |     r1 = *(arg_5ch);
    0x0002164a ldr.w r4, [r3, r1, lsl 2]                         |     offset_0 = r1 << 2;
                                                                 |     r4 = *((r3 + offset_0));
                                                                 | label_0:
    0x0002164e ldr r1, [sp, 0x58]                                |     r1 = *(arg_58h);
    0x00021650 ldr.w fp, [r3, r1, lsl 2]                         |     offset_1 = r1 << 2;
                                                                 |     fp = *((r3 + offset_1));
                                                                 |     do {
    0x00021654 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00021656 beq.w 0x21804                                     |             goto label_10;
                                                                 |         }
    0x0002165a ldrb r3, [r5]                                     |         r3 = *(r5);
    0x0002165c cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0002165e beq.w 0x21804                                     |             goto label_10;
                                                                 |         }
                                                                 |         if (r0 != 0) {
    0x00021662 cbz r0, 0x2166a                                   |             
    0x00021664 ldrb r3, [r0]                                     |             r3 = *(r0);
    0x00021666 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00021668 bne 0x21730                                       |                 goto label_11;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x0002166a cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x0002166e beq 0x21678                                       |             
    0x00021670 ldrb.w r3, [sb]                                   |             r3 = *(sb);
    0x00021674 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00021676 bne 0x2175c                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
                                                                 |         if (r4 != 0) {
                                                                 | label_2:
    0x00021678 cbz r4, 0x21680                                   |             
    0x0002167a ldrb r3, [r4]                                     |             r3 = *(r4);
    0x0002167c cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x0002167e bne 0x21778                                       |                 goto label_13;
                                                                 |             }
                                                                 |         }
                                                                 | label_4:
    0x00021680 cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x00021684 beq 0x216a6                                       |             
    0x00021686 ldrb.w r3, [fp]                                   |             r3 = *(fp);
                                                                 |             if (r3 == 0) {
    0x0002168a cbz r3, 0x216a6                                   |                 goto label_14;
                                                                 |             }
    0x0002168c cmp r3, 0x2d                                      |             
                                                                 |             if (r3 != 0x2d) {
    0x0002168e bne.w 0x217b4                                     |                 goto label_15;
                                                                 |             }
    0x00021692 ldrb.w r3, [fp, 1]                                |             r3 = *(arg_1h);
    0x00021696 cmp r3, 0x31                                      |             
                                                                 |             if (r3 != 0x31) {
    0x00021698 bne.w 0x217b4                                     |                 goto label_15;
                                                                 |             }
    0x0002169c ldrb.w r3, [fp, 2]                                |             r3 = *(arg_2h);
    0x000216a0 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000216a2 bne.w 0x217b4                                     |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_14:
    0x000216a6 mov.w r3, -1                                      |         r3 = -1;
    0x000216aa str.w r3, [sl]                                    |         __asm ("str.w r3, [sl]");
                                                                 | label_5:
    0x000216ae ldr r0, [pc, 0x214]                               |         
    0x000216b0 mov r3, r5                                        |         r3 = r5;
    0x000216b2 ldr r2, [r7]                                      |         r2 = *(r7);
    0x000216b4 movs r1, 0xb3                                     |         r1 = 0xb3;
    0x000216b6 add r0, pc                                        |         r0 = 0x42f80;
    0x000216b8 bl 0x35d28                                        |         zbx_strdup2 ();
    0x000216bc str r0, [r7]                                      |         *(r7) = r0;
    0x000216be mov r4, r0                                        |         r4 = r0;
    0x000216c0 ldrb r3, [r0, 1]                                  |         r3 = *((r0 + 1));
                                                                 |         if (r3 != 0) {
    0x000216c2 cbz r3, 0x216de                                   |             
    0x000216c4 blx 0xc114                                        |             fcn_0000c114 ();
    0x000216c8 add r0, r4                                        |             r0 += r4;
    0x000216ca ldrb r3, [r0, -0x2]                               |             r3 = *((r0 - 0x2));
    0x000216ce cmp r3, 0x3a                                      |             
                                                                 |             if (r3 == 0x3a) {
    0x000216d0 beq 0x216de                                       |                 goto label_16;
                                                                 |             }
    0x000216d2 ldr r1, [pc, 0x1f4]                               |             
    0x000216d4 mov r0, r4                                        |             r0 = r4;
    0x000216d6 add r1, pc                                        |             r1 = 0x42fa4;
    0x000216d8 bl 0x3936c                                        |             zbx_rtrim ();
    0x000216dc ldr r4, [r7]                                      |             r4 = *(r7);
                                                                 |         }
                                                                 | label_16:
    0x000216de mov r0, r4                                        |         r0 = r4;
    0x000216e0 mov r1, r8                                        |         r1 = r8;
    0x000216e2 blx 0xbd9c                                        |         r0 = fcn_0000bd9c ();
    0x000216e6 mov r4, r0                                        |         r4 = r0;
    0x000216e8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000216ea bne.w 0x21876                                     |             goto label_17;
                                                                 |         }
    0x000216ee ldr.w r3, [r8, 0x10]                              |         r3 = *((r8 + 0x10));
    0x000216f2 and r3, r3, 0xf000                                |         r3 &= case.0x3207a.11;
    0x000216f4 muls r0, r6, r0                                   |         r0 = r6 * r0;
                                                                 | label_9:
    0x0002171c ldr r3, [sp, 0x58]                                |         r3 = *(arg_58h);
    0x0002171e cmp r4, r3                                        |         
    0x00021720 itt le                                            |         
                                                                 |         if (r4 > r3) {
    0x00021722 movle r4, 0                                       |             r4 = 0;
                                                                 |         }
                                                                 |         if (r4 > r3) {
    0x00021724 movle fp, r4                                      |             
                                                                 |         }
    0x00021726 ble 0x21654                                       |         
                                                                 |     } while (r4 <= r3);
    0x00021728 ldr.w r3, [ip, 8]                                 |     r3 = *((ip + 8));
    0x0002172c movs r4, 0                                        |     r4 = 0;
    0x0002172e b 0x2164e                                         |     goto label_0;
                                                                 | label_11:
    0x00021730 mov r1, r2                                        |     r1 = r2;
    0x00021732 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x00021734 bl 0x27e3c                                        |     r0 = zbx_regexp_compile ();
    0x00021738 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002173a beq 0x2166a                                       |         goto label_1;
                                                                 |     }
    0x0002173c ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x0002173e ldr r1, [pc, 0x190]                               |     
    0x00021740 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00021742 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00021744 mov r4, r5                                        |     r4 = r5;
    0x00021746 add r1, pc                                        |     r1 = 0x4301c;
                                                                 | label_3:
    0x00021748 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002174c movs r0, 0                                        |     r0 = 0;
    0x0002174e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00021750 mov.w r4, -1                                      |     r4 = -1;
    0x00021754 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00021758 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x0002175a b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_12:
    0x0002175c mov r1, r6                                        |     r1 = r6;
    0x0002175e mov r0, sb                                        |     r0 = sb;
    0x00021760 add r2, sp, 0x18                                  |     r2 += var_18h;
    0x00021762 bl 0x27e3c                                        |     r0 = zbx_regexp_compile ();
    0x00021766 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021768 beq 0x21678                                       |         goto label_2;
                                                                 |     }
    0x0002176a ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x0002176c ldr r1, [pc, 0x164]                               |     
    0x0002176e ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00021770 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00021772 mov r4, r5                                        |     r4 = r5;
    0x00021774 add r1, pc                                        |     r1 = 0x4304c;
    0x00021776 b 0x21748                                         |     goto label_3;
                                                                 | label_13:
    0x00021778 ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x0002177a mov r0, r4                                        |     r0 = r4;
    0x0002177c add r2, sp, 0x18                                  |     r2 += var_18h;
    0x0002177e bl 0x27e3c                                        |     r0 = zbx_regexp_compile ();
    0x00021782 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021784 beq.w 0x21680                                     |         goto label_4;
                                                                 |     }
    0x00021788 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0002178a ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x0002178c orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00021790 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x00021792 ldr r3, [sp, 0x5c]                                |     r3 = *(arg_5ch);
    0x00021794 cmp r3, 5                                         |     
                                                                 |     if (r3 == 5) {
    0x00021796 beq.w 0x218ac                                     |         goto label_18;
                                                                 |     }
    0x0002179a ldr r2, [pc, 0x13c]                               |     
    0x0002179c add r2, pc                                        |     r2 = 0x4307a;
                                                                 | label_6:
    0x0002179e ldr r1, [pc, 0x13c]                               |     
    0x000217a0 movs r0, 0                                        |     r0 = 0;
    0x000217a2 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000217a4 mov.w r4, -1                                      |     r4 = -1;
    0x000217a8 add r1, pc                                        |     r1 = 0x4308a;
    0x000217aa bl 0x396b0                                        |     zbx_dsprintf ()
    0x000217ae ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x000217b0 str r0, [r3, 0x20]                                |     *((r3 + 0x20)) = r0;
    0x000217b2 b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_15:
    0x000217b4 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000217b8 mov r2, sl                                        |     r2 = sl;
    0x000217ba mov r0, fp                                        |     r0 = fp;
    0x000217bc mvn sl, 0x80000000                                |     sl = ~case.0x3207a.11;
    0x000217c0 mov.w fp, 0                                       |     
    0x000217c4 movs r3, 4                                        |     r3 = 4;
    0x000217c6 mov.w r1, -1                                      |     r1 = -1;
    0x000217ca vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x000217ce strd sl, fp, [sp, 8]                              |     __asm ("strd sl, fp, [var_8h]");
    0x000217d2 bl 0x367c8                                        |     r0 = is_uint_n_range ();
    0x000217d6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000217d8 beq.w 0x216ae                                     |         goto label_5;
                                                                 |     }
    0x000217dc ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x000217de ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x000217e0 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000217e4 str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
    0x000217e6 ldr r3, [sp, 0x58]                                |     r3 = *(arg_58h);
    0x000217e8 cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x000217ea beq 0x218b2                                       |         goto label_19;
                                                                 |     }
    0x000217ec ldr r2, [pc, 0xf0]                                |     
    0x000217ee add r2, pc                                        |     r2 = 0x430d2;
                                                                 | label_7:
    0x000217f0 ldr r1, [pc, 0xf0]                                |     
    0x000217f2 movs r0, 0                                        |     r0 = 0;
    0x000217f4 mov.w r4, -1                                      |     r4 = -1;
    0x000217f8 add r1, pc                                        |     r1 = "the system time has been pushed back, adjusting active check schedule";
    0x000217fa bl 0x396b0                                        |     zbx_dsprintf ()
    0x000217fe ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00021800 str r0, [r3, 0x20]                                |     *((r3 + 0x20)) = r0;
    0x00021802 b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_10:
    0x00021804 ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00021806 movs r2, 0                                        |     r2 = 0;
    0x00021808 ldr r3, [pc, 0xdc]                                |     
    0x0002180a movs r1, 0x86                                     |     r1 = 0x86;
    0x0002180c mov.w r4, -1                                      |     r4 = -1;
    0x00021810 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00021812 add r3, pc                                        |     r3 = 0x430fe;
    0x00021814 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00021818 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x0002181a ldr r0, [pc, 0xd0]                                |     
    0x0002181c add r0, pc                                        |     r0 = 0x4310e;
    0x0002181e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00021822 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00021824 b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_8:
    0x00021852 ldr r0, [r1, 0x28]                                |     r0 = *(arg_1hx28);
    0x00021854 mov r4, r1                                        |     r4 = r1;
    0x00021856 ldr r3, [pc, 0xa0]                                |     
    0x00021858 mov r2, r5                                        |     r2 = r5;
    0x0002185a movs r1, 0x7a                                     |     r1 = 0x7a;
    0x0002185c mov r5, r4                                        |     r5 = r4;
    0x0002185e orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00021862 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00021864 add r3, pc                                        |     r3 = 0x43162;
    0x00021866 ldr r0, [pc, 0x94]                                |     
    0x00021868 mov.w r4, -1                                      |     r4 = -1;
    0x0002186c add r0, pc                                        |     r0 = 0x4316e;
    0x0002186e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00021870 invalid                                           |     
    0x00021874 b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_17:
    0x00021876 ldr r4, [sp, 0x14]                                |     r4 = var_14h;
    0x00021878 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002187a orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0002187e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00021880 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00021884 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00021886 bl 0x26fdc                                        |     zbx_strerror ();
    0x0002188a ldr r1, [pc, 0x74]                                |     
    0x0002188c mov r2, r0                                        |     r2 = r0;
    0x0002188e movs r0, 0                                        |     r0 = 0;
    0x00021890 add r1, pc                                        |     r1 = 0x43196;
    0x00021892 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00021896 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00021898 ldr r0, [r7]                                      |     r0 = *(r7);
    0x0002189a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002189c beq 0x2184c                                       |         void (*0x2184c)() ();
                                                                 |     }
    0x0002189e blx 0xbd14                                        |     gai_strerror ();
    0x000218a2 movs r3, 0                                        |     r3 = 0;
    0x000218a4 mov.w r4, -1                                      |     r4 = -1;
    0x000218a8 str r3, [r7]                                      |     *(r7) = r3;
    0x000218aa b 0x216fe                                         |     void (*0x216fe)() ();
                                                                 | label_18:
    0x000218ac ldr r2, [pc, 0x54]                                |     
    0x000218ae add r2, pc                                        |     r2 = 0x431b6;
    0x000218b0 b 0x2179e                                         |     goto label_6;
                                                                 | label_19:
    0x000218b2 ldr r2, [pc, 0x54]                                |     
    0x000218b4 add r2, pc                                        |     r2 = 0x431c2;
    0x000218b6 b 0x217f0                                         |     goto label_7;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x24a28 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00024a28 ()                                      | void fcn_00024a28 (int16_t arg_dd8h, int16_t arg_dfch, int16_t arg_e28h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_26h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00024a28 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00024a2c mov r7, r2                                        |     r7 = r2;
    0x00024a2e subw sp, sp, 0xe04                                |     __asm ("subw sp, sp, case.0x3207a.11");
    0x00024a32 ldr.w r2, [pc, 0x554]                             |     
    0x00024a36 mov r5, r1                                        |     r5 = r1;
    0x00024a38 addw sb, sp, 0xdd8                                |     __asm ("addw sb, arg_dd8h");
    0x00024a3c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00024a3e mov ip, sb                                        |     
    0x00024a40 ldr.w r4, [sp, 0xe28]                             |     r4 = *(arg_e28h);
    0x00024a44 add r2, pc                                        |     r2 = 0x499d2;
    0x00024a46 ldr.w r3, [pc, 0x544]                             |     r3 = *(0x24f8e);
    0x00024a4a add r6, sp, 0x28                                  |     r6 += var_28h;
    0x00024a4c ldr.w lr, [pc, 0x540]                             |     
    0x00024a50 mov.w fp, 0                                       |     
    0x00024a54 str r4, [sp, 0x14]                                |     var_14h = r4;
    0x00024a56 mov r4, r0                                        |     r4 = r0;
    0x00024a58 ldr r3, [r2, r3]                                  |     
    0x00024a5a add lr, pc                                        |     lr += pc;
    0x00024a5c ldr.w sl, [pc, 0x534]                             |     sl = *(0x00024f94);
    0x00024a60 ldr r3, [r3]                                      |     r3 = *(0x499d2);
    0x00024a62 str.w r3, [sp, 0xdfc]                             |     __asm ("str.w r3, [arg_dfch]");
    0x00024a66 mov.w r3, 0                                       |     r3 = 0;
    0x00024a68 lsls r0, r0, 0xc                                  |     r0 <<= 0xc;
    0x00024a6a ldm.w lr!, {r0, r1, r2, r3}                       |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x00024a6e add sl, pc                                        |     sl += pc;
    0x00024a70 str.w fp, [r6]                                    |     __asm ("str.w fp, [r6]");
    0x00024a74 stm.w ip!, {r0, r1, r2, r3}                       |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x00024a78 ldm.w lr!, {r0, r1, r2, r3}                       |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x00024a7c stm.w ip!, {r0, r1, r2, r3}                       |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x00024a80 ldr.w r3, [lr]                                    |     r3 = *(lr);
    0x00024a84 strb.w r3, [ip]                                   |     *(ip) = r3;
    0x00024a88 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00024a8a beq.w 0x24f1c                                     |         goto label_19;
                                                                 |     }
    0x00024a8e ldrb r3, [r4]                                     |     r3 = *(r4);
    0x00024a90 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024a92 beq.w 0x24f1c                                     |         goto label_19;
                                                                 |     }
    0x00024a96 mov r1, sb                                        |     r1 = sb;
    0x00024a98 mov r0, r4                                        |     r0 = r4;
    0x00024a9a blx 0xc3d0                                        |     r0 = fcn_0000c3d0 ();
    0x00024a9e mov r8, r0                                        |     r8 = r0;
    0x00024aa0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00024aa2 bne.w 0x24f34                                     |         goto label_20;
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x00024aa6 cbz r5, 0x24ab6                                   |         
    0x00024aa8 mov r1, sb                                        |         r1 = sb;
    0x00024aaa mov r0, r5                                        |         r0 = r5;
    0x00024aac blx 0xc3d0                                        |         r0 = fcn_0000c3d0 ();
    0x00024ab0 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00024ab2 bne.w 0x24f58                                     |             goto label_21;
                                                                 |         }
                                                                 |     }
    0x00024ab6 ldr.w r1, [pc, 0x4e0]                             |     r1 = case.0x2293e.9;
    0x00024aba mov r0, r4                                        |     r0 = r4;
    0x00024abc add r1, pc                                        |     r1 += pc;
    0x00024abe blx 0xc3d0                                        |     r0 = fcn_0000c3d0 ();
    0x00024ac2 mov r8, r0                                        |     r8 = r0;
    0x00024ac4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00024ac6 beq.w 0x24c12                                     |         goto label_22;
                                                                 |     }
                                                                 |     if (r7 != 0) {
                                                                 | label_0:
    0x00024aca cbz r7, 0x24ad4                                   |         
    0x00024acc ldrb r3, [r7]                                     |         r3 = *(r7);
    0x00024ace cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024ad0 bne.w 0x24ea8                                     |             goto label_23;
                                                                 |         }
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x00024ad4 cbz r5, 0x24ade                                   |         
    0x00024ad6 ldrb r3, [r5]                                     |         r3 = *(r5);
    0x00024ad8 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024ada bne.w 0x24ea8                                     |             goto label_23;
                                                                 |         }
                                                                 |     }
    0x00024ade ldr.w r5, [pc, 0x4bc]                             |     r5 = *(0x00024f9c);
    0x00024ae2 movs r2, 7                                        |     r2 = 7;
    0x00024ae4 mov r0, r4                                        |     r0 = r4;
    0x00024ae6 add r5, pc                                        |     r5 += pc;
    0x00024ae8 mov r1, r5                                        |     r1 = r5;
    0x00024aea bl 0x39da0                                        |     r0 = zbx_strncasecmp ();
    0x00024aee cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00024af0 beq.w 0x24d4e                                     |         goto label_24;
                                                                 |     }
    0x00024af4 ldr.w r1, [pc, 0x4a8]                             |     r1 = *(0x00024fa0);
    0x00024af8 mov r0, r4                                        |     r0 = r4;
    0x00024afa add r1, pc                                        |     r1 += pc;
    0x00024afc blx 0xbbe8                                        |     r0 = strstr (r0, r1);
    0x00024b00 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 != 0) {
    0x00024b02 cbz r0, 0x24b26                                   |         
    0x00024b04 ldr.w r1, [pc, 0x49c]                             |         r1 = *(0x00024fa4);
    0x00024b08 mov r0, r4                                        |         r0 = r4;
    0x00024b0a add r1, pc                                        |         r1 += pc;
    0x00024b0c blx 0xc3d0                                        |         r0 = fcn_0000c3d0 ();
    0x00024b10 cmp r7, r0                                        |         
    0x00024b12 ite hs                                            |         
                                                                 |         if (r7 < r0) {
    0x00024b14 movhs r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r7 >= r0) {
    0x00024b16 movlo r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x00024b18 cmp r0, 0                                         |         
    0x00024b1a it eq                                             |         
                                                                 |         if (r0 != 0) {
    0x00024b1c orreq r3, r3, 1                                   |             r3 |= 1;
                                                                 |         }
    0x00024b20 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024b22 bne.w 0x24f6e                                     |             goto label_25;
                                                                 |         }
                                                                 |     }
    0x00024b26 movs r1, 0x23                                     |     r1 = 0x23;
    0x00024b28 mov r0, r4                                        |     r0 = r4;
    0x00024b2a blx 0xc138                                        |     fcn_0000c138 ();
    0x00024b2e mov r2, r5                                        |     r2 = r5;
    0x00024b30 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00024b32 beq.w 0x24e24                                     |         goto label_26;
                                                                 |     }
                                                                 | label_1:
    0x00024b36 ldr.w r1, [pc, 0x470]                             |     
    0x00024b3a subs r3, r0, r4                                   |     r3 = r0 - r4;
    0x00024b3c str r4, [sp]                                      |     *(sp) = r4;
    0x00024b3e movs r0, 0                                        |     r0 = 0;
    0x00024b40 add r1, pc                                        |     r1 = 0x49aee;
    0x00024b42 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024b44 ldc2 p6, c4, [r5, 0x200]!                         |     __asm ("ldc2 p6, c4, case.0x3207a.11!");
                                                                 | label_8:
    0x00024b48 ldr.w r1, [pc, 0x460]                             |     r1 = *(0x00024fac);
    0x00024b4c add.w sb, r8, 7                                   |     sb = r8 + 7;
    0x00024b50 mov r0, sb                                        |     r0 = sb;
    0x00024b52 add r1, pc                                        |     r1 += pc;
    0x00024b54 blx 0xbc88                                        |     r0 = fcn_0000bc88 ();
    0x00024b58 mov r5, r0                                        |     r5 = r0;
    0x00024b5a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00024b5c beq.w 0x24ed6                                     |         goto label_27;
                                                                 |     }
    0x00024b60 mov r2, r0                                        |     r2 = r0;
    0x00024b62 movs r1, 0x40                                     |     r1 = 0x40;
    0x00024b64 mov r0, sb                                        |     r0 = sb;
    0x00024b66 blx 0xc224                                        |     r0 = pcre_free_study ();
    0x00024b68 adcs.w r8, lr, r0, lsl 8                          |     __asm ("adcs.w r8, lr, r0, lsl 8");
                                                                 |     if (r1 != 0x40) {
    0x00024b6c bne.w 0x24ec0                                     |         goto label_28;
                                                                 |     }
    0x00024b70 subs r3, r5, 1                                    |     r3 = r5 - 1;
    0x00024b72 mov r0, sb                                        |     r0 = sb;
    0x00024b74 add.w ip, sb, r3                                  |     
                                                                 | label_3:
    0x00024b78 mov r2, r0                                        |     r2 = r0;
    0x00024b7a mov r7, r3                                        |     r7 = r3;
    0x00024b7c mov r4, r2                                        |     r4 = r2;
    0x00024b7e ldrb r1, [r2], 1                                  |     r1 = *(r2);
                                                                 |     r2++;
    0x00024b82 cmp r1, 0x3a                                      |     
                                                                 |     if (r1 == 0x3a) {
    0x00024b84 beq 0x24ba4                                       |         goto label_29;
                                                                 |     }
                                                                 |     do {
    0x00024b86 cmp r1, 0x5b                                      |         
    0x00024b88 add.w r3, r3, -1                                  |         r3 += -1;
    0x00024b8c mov r0, r2                                        |         r0 = r2;
                                                                 |         if (r1 == 0x5b) {
    0x00024b8e beq.w 0x24d76                                     |             goto label_30;
                                                                 |         }
    0x00024b92 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00024b94 beq.w 0x24d88                                     |             goto label_4;
                                                                 |         }
    0x00024b98 mov r4, r2                                        |         r4 = r2;
    0x00024b9a ldrb r1, [r2], 1                                  |         r1 = *(r2);
                                                                 |         r2++;
    0x00024b9e mov r7, r3                                        |         r7 = r3;
    0x00024ba0 cmp r1, 0x3a                                      |         
    0x00024ba2 bne 0x24b86                                       |         
                                                                 |     } while (r1 != 0x3a);
                                                                 | label_29:
    0x00024ba4 sub.w r2, ip, r4                                  |     r2 = ip - r4;
    0x00024ba8 cmp r2, 0                                         |     
                                                                 |     if (r2 > 0) {
    0x00024baa ble 0x24bee                                       |         
    0x00024bac ldr.w fp, [pc, 0x400]                             |         
    0x00024bb0 adds r3, r4, 1                                    |         r3 = r4 + 1;
    0x00024bb2 movs r0, 0                                        |         r0 = 0;
    0x00024bb4 add.w r7, sp, 0x26                                |         r7 += var_26h;
    0x00024bb8 add fp, pc                                        |         fp = "%s() prompt:'%.*s';
    0x00024bba mov r1, fp                                        |         r1 = fp;
    0x00024bbc bl 0x396b0                                        |         zbx_dsprintf ()
    0x00024bc0 vmov.i64 d17, 0xffff                              |         __asm ("vmov.i64 d17, case.0x3207a.11");
    0x00024bc4 movs r3, 2                                        |         r3 = 2;
    0x00024bc6 vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x00024bca mov r2, r7                                        |         r2 = r7;
    0x00024bcc mov.w r1, -1                                      |         r1 = -1;
    0x00024bd0 str r0, [sp, 0x1c]                                |         var_1ch = r0;
    0x00024bd2 vstr d17, [sp, 8]                                 |         __asm ("vstr d17, [sp, 8]");
    0x00024bd6 vstr d16, [sp]                                    |         __asm ("vstr d16, [sp]");
    0x00024bda bl 0x367c8                                        |         r0 = is_uint_n_range ();
    0x00024bde cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00024be0 beq.w 0x24efa                                     |             goto label_31;
                                                                 |         }
    0x00024be4 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
                                                                 |         if (r3 == 0) {
    0x00024be6 cbz r3, 0x24bee                                   |             goto label_32;
                                                                 |         }
    0x00024be8 mov r0, r3                                        |         r0 = r3;
    0x00024bea blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
                                                                 | label_32:
    0x00024bee ldr r1, [pc, 0x3c4]                               |     
    0x00024bf0 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024bf2 add r1, pc                                        |     r1 = "Cannot find prompt after command execution: %s";
    0x00024bf4 ldr r0, [r3]                                      |     r0 = *(r3);
    0x00024bf6 bl 0x396b0                                        |     zbx_dsprintf ()
                                                                 | label_16:
    0x00024bfa ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024bfc movs r4, 1                                        |     r4 = 1;
    0x00024bfe str r0, [r3]                                      |     *(r3) = r0;
    0x00024c00 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00024c04 beq.w 0x24d24                                     |         goto label_7;
                                                                 |     }
    0x00024c08 mov r0, r8                                        |     r0 = r8;
    0x00024c0a movs r4, 1                                        |     r4 = 1;
    0x00024c0c blx 0xbd14                                        |     gai_strerror ();
    0x00024c10 b 0x24d24                                         |     goto label_7;
                                                                 | label_22:
    0x00024c12 movs r1, 0x3a                                     |     r1 = 0x3a;
    0x00024c14 mov r0, r4                                        |     r0 = r4;
    0x00024c16 blx 0xc138                                        |     r0 = fcn_0000c138 ();
                                                                 |     if (r0 == 0) {
    0x00024c1a cbz r0, 0x24c2a                                   |         goto label_33;
                                                                 |     }
    0x00024c1c adds r0, 1                                        |     r0++;
    0x00024c1e movs r1, 0x3a                                     |     r1 = 0x3a;
    0x00024c20 blx 0xc138                                        |     r0 = fcn_0000c138 ();
    0x00024c24 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00024c26 beq.w 0x24aca                                     |         goto label_0;
                                                                 |     }
                                                                 |     if (r7 != 0) {
                                                                 | label_33:
    0x00024c2a cbz r7, 0x24c34                                   |         
    0x00024c2c ldrb r3, [r7]                                     |         r3 = *(r7);
    0x00024c2e cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024c30 bne.w 0x24dde                                     |             goto label_34;
                                                                 |         }
                                                                 |     }
    0x00024c34 add.w r7, sp, 0x26                                |     r7 += var_26h;
    0x00024c38 movs r3, 0x50                                     |     r3 = 0x50;
    0x00024c3a strh r3, [r7]                                     |     *(r7) = r3;
                                                                 | label_6:
    0x00024c3c cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00024c3e beq.w 0x24dd8                                     |         goto label_35;
                                                                 |     }
                                                                 | label_5:
    0x00024c42 ldr.w sb, [pc, 0x374]                             |     sb = *(0x00024fb8);
    0x00024c46 mov r3, r5                                        |     r3 = r5;
    0x00024c48 movs r2, 0                                        |     r2 = 0;
    0x00024c4a mov.w r1, 0x172                                   |     r1 = case.0x3207a.11;
    0x00024c4e add sb, pc                                        |     sb += pc;
    0x00024c50 mov r0, sb                                        |     r0 = sb;
    0x00024c52 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024c54 invalid                                           |     
    0x00024c58 ldr r2, [r6]                                      |     r2 = *(r6);
    0x00024c5a movw r1, 0x173                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024c5e mov r5, r0                                        |     r5 = r0;
    0x00024c60 mov r0, sb                                        |     r0 = sb;
    0x00024c62 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024c66 movs r1, 0x3a                                     |     r1 = 0x3a;
    0x00024c68 str r0, [r6]                                      |     *(r6) = r0;
    0x00024c6a blx 0xc138                                        |     r0 = fcn_0000c138 ();
    0x00024c6e subs r4, r0, 0                                    |     r4 = r0 - 0;
    0x00024c70 it ne                                             |     
                                                                 |     if (r4 == r0) {
    0x00024c72 movne r4, 1                                       |         r4 = 1;
                                                                 |     }
                                                                 | label_2:
    0x00024c74 mov r0, r6                                        |     r0 = r6;
    0x00024c76 bl 0x40a9c                                        |     r0 = zbx_http_punycode_encode_url ();
    0x00024c7a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00024c7c bne 0x24d60                                       |         goto label_36;
                                                                 |     }
    0x00024c7e ldr r2, [pc, 0x33c]                               |     r2 = *(0x24fbe);
    0x00024c80 ldrh r3, [r7]                                     |     r3 = *(r7);
    0x00024c82 add r7, sp, 0x2c                                  |     r7 += var_2ch;
    0x00024c84 ldr.w r2, [sl, r2]                                |     r2 = *((sl + r2));
    0x00024c88 strd r0, r0, [sp, 8]                              |     __asm ("strd r0, r0, [sp, 8]");
    0x00024c8c movs r0, 1                                        |     r0 = 1;
    0x00024c8e ldr r1, [r2]                                      |     r1 = *(0x24fbe);
    0x00024c90 ldr r2, [pc, 0x32c]                               |     
    0x00024c92 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00024c94 mov r0, r7                                        |     r0 = r7;
    0x00024c96 ldr.w r2, [sl, r2]                                |     r2 = *((sl + r2));
    0x00024c9a ldr r2, [r2]                                      |     r2 = *(0x24fc0);
    0x00024c9c str r2, [sp]                                      |     *(sp) = r2;
    0x00024c9e ldr r2, [r6]                                      |     r2 = *(r6);
    0x00024ca0 bl 0x2c90c                                        |     r0 = zbx_tcp_connect ();
                                                                 |     if (r0 == 0) {
    0x00024ca4 cbnz r0, 0x24cfa                                  |         
    0x00024ca6 ldrb r3, [r5]                                     |         r3 = *(r5);
    0x00024ca8 cmp r3, 0x2f                                      |         
                                                                 |         if (r3 == 0x2f) {
    0x00024caa beq.w 0x24e3e                                     |             goto label_37;
                                                                 |         }
    0x00024cae ldr r2, [pc, 0x314]                               |         
    0x00024cb0 add r2, pc                                        |         r2 = 0x49c7a;
                                                                 | label_10:
    0x00024cb2 ldr r1, [r6]                                      |         r1 = *(r6);
    0x00024cb4 cmp r4, 0                                         |         
                                                                 |         if (r4 != 0) {
    0x00024cb6 bne.w 0x24e34                                     |             goto label_38;
                                                                 |         }
    0x00024cba ldr r3, [pc, 0x30c]                               |         
    0x00024cbc add r3, pc                                        |         r3 = 0x49c8a;
    0x00024cbe mov r0, r3                                        |         r0 = r3;
                                                                 | label_9:
    0x00024cc0 strd r1, r0, [sp, 4]                              |         __asm ("strd r1, r0, [sp, 4]");
    0x00024cc4 movs r0, 0                                        |         r0 = 0;
    0x00024cc6 ldr r1, [pc, 0x304]                               |         
    0x00024cc8 str r3, [sp]                                      |         *(sp) = r3;
    0x00024cca mov r3, r5                                        |         r3 = r5;
    0x00024ccc add r1, pc                                        |         r1 = 0x49c9e;
    0x00024cce bl 0x396b0                                        |         r0 = zbx_dsprintf ()
    0x00024cd2 mov sb, r0                                        |         sb = r0;
    0x00024cd4 blx 0xc114                                        |         fcn_0000c114 ();
    0x00024cd8 movs r3, 0                                        |         r3 = 0;
    0x00024cda mov r2, r0                                        |         r2 = r0;
    0x00024cdc mov r1, sb                                        |         r1 = sb;
    0x00024cde mov r0, r7                                        |         r0 = r7;
    0x00024ce0 str r3, [sp]                                      |         *(sp) = r3;
    0x00024ce2 bl 0x2c968                                        |         r0 = zbx_tcp_send_ext ();
    0x00024ce6 mov r4, r0                                        |         r4 = r0;
    0x00024ce8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00024cea beq.w 0x24e44                                     |             goto label_39;
                                                                 |         }
    0x00024cec strh r3, [r5, 4]                                  |         *((r5 + 4)) = r3;
                                                                 | label_11:
    0x00024cee mov r0, sb                                        |         r0 = sb;
    0x00024cf0 blx 0xbd14                                        |         gai_strerror ();
    0x00024cf4 mov r0, r7                                        |         r0 = r7;
    0x00024cf6 bl 0x2c728                                        |         zbx_tcp_close ();
                                                                 |     }
    0x00024cfa bl 0x2c798                                        |     zbx_socket_strerror ();
    0x00024cfe ldr r1, [pc, 0x2d0]                               |     
    0x00024d00 mov r2, r0                                        |     r2 = r0;
    0x00024d02 movs r0, 0                                        |     r0 = 0;
    0x00024d04 add r1, pc                                        |     r1 = 0x49cda;
    0x00024d06 bl 0x396b0                                        |     zbx_dsprintf ()
                                                                 |     do {
    0x00024d0a ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00024d0c movs r4, 1                                        |         r4 = 1;
    0x00024d0e str r0, [r3]                                      |         *(r3) = r0;
    0x00024d10 cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x00024d14 beq 0x24d1c                                       |             
                                                                 | label_12:
    0x00024d16 mov r0, r8                                        |             r0 = r8;
    0x00024d18 blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x00024d1c cbz r5, 0x24d24                                   |             
                                                                 | label_13:
    0x00024d1e mov r0, r5                                        |             r0 = r5;
    0x00024d20 blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
                                                                 | label_7:
    0x00024d24 ldr r0, [r6]                                      |         r0 = *(r6);
                                                                 |         if (r0 != 0) {
    0x00024d26 cbz r0, 0x24d2c                                   |             
    0x00024d28 blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
                                                                 | label_15:
    0x00024d2c ldr r2, [pc, 0x2a4]                               |         
    0x00024d2e ldr r3, [pc, 0x25c]                               |         r3 = *(0x24f8e);
    0x00024d30 add r2, pc                                        |         r2 = 0x49d08;
    0x00024d32 ldr r3, [r2, r3]                                  |         r3 = *(0x49d08);
    0x00024d34 ldr r2, [r3]                                      |         r2 = *(0x49d08);
    0x00024d36 ldr.w r3, [sp, 0xdfc]                             |         r3 = *(arg_dfch);
    0x00024d3a eors r2, r3                                       |         r2 ^= r3;
    0x00024d3c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00024d40 bne.w 0x24f84                                     |             goto label_40;
                                                                 |         }
    0x00024d44 mov r0, r4                                        |         r0 = r4;
    0x00024d46 addw sp, sp, 0xe04                                |         __asm ("addw sp, sp, case.0x3207a.11");
    0x00024d4a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00024d4c ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
                                                                 | label_24:
    0x00024d4e movs r1, 0x23                                     |         r1 = 0x23;
    0x00024d50 mov r0, r4                                        |         r0 = r4;
    0x00024d52 blx 0xc138                                        |         r0 = fcn_0000c138 ();
    0x00024d56 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00024d58 beq 0x24e20                                       |             goto label_41;
                                                                 |         }
    0x00024d5a ldr r2, [pc, 0x27c]                               |         
    0x00024d5c add r2, pc                                        |         r2 = 0x49d3a;
    0x00024d5e b 0x24b36                                         |         goto label_1;
                                                                 | label_36:
    0x00024d60 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x00024d62 movw r1, 0x17b                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024d66 ldr r3, [pc, 0x274]                               |         
    0x00024d68 ldr r0, [pc, 0x274]                               |         
    0x00024d6a ldr r2, [r2]                                      |         r2 = *(r2);
    0x00024d6c add r3, pc                                        |         r3 = 0x49d4e;
    0x00024d6e add r0, pc                                        |         r0 = 0x49d52;
    0x00024d70 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00024d74 b 0x24d0a                                         |         
                                                                 |     } while (1);
                                                                 |     if (r7 == 0) {
                                                                 | label_30:
    0x00024d76 cbz r7, 0x24d88                                   |         goto label_4;
                                                                 |     }
                                                                 |     do {
    0x00024d78 ldrb r2, [r0], 1                                  |         r2 = *(r0);
                                                                 |         r0++;
    0x00024d7c mov r1, r3                                        |         r1 = r3;
    0x00024d7e subs r3, 1                                        |         r3--;
    0x00024d80 cmp r2, 0x5d                                      |         
                                                                 |         if (r2 == 0x5d) {
    0x00024d82 beq 0x24dd0                                       |             goto label_42;
                                                                 |         }
    0x00024d84 adds r2, r3, 1                                    |         r2 = r3 + 1;
    0x00024d86 bne 0x24d78                                       |         
                                                                 |     } while (r2 != r3);
                                                                 | label_4:
    0x00024d88 ldr r1, [pc, 0x258]                               |     
    0x00024d8a movs r3, 0x50                                     |     r3 = 0x50;
    0x00024d8c add.w r7, sp, 0x26                                |     r7 += var_26h;
    0x00024d90 strh r3, [r7]                                     |     *(r7) = r3;
    0x00024d92 ldr r0, [r6]                                      |     r0 = *(r6);
    0x00024d94 mov r3, sb                                        |     r3 = sb;
    0x00024d96 add r1, pc                                        |     r1 = 0x49d7e;
    0x00024d98 mov r2, r5                                        |     r2 = r5;
    0x00024d9a bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024d9e str r0, [r6]                                      |     *(r6) = r0;
                                                                 | label_17:
    0x00024da0 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00024da2 cmp r3, 0x5b                                      |     
    0x00024da4 it ne                                             |     
                                                                 |     if (r3 == 0x5b) {
    0x00024da6 movne r4, 0                                       |         r4 = 0;
                                                                 |     }
                                                                 |     if (r3 == 0x5b) {
    0x00024da8 beq 0x24e8e                                       |         goto label_43;
                                                                 |     }
                                                                 | label_14:
    0x00024daa cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024dac beq.w 0x24f4a                                     |         goto label_44;
                                                                 |     }
    0x00024db0 ldrb.w r2, [sb, r5]                               |     r2 = *((sb + r5));
    0x00024db4 add.w r3, sb, r5                                  |     r3 = sb + r5;
                                                                 |     if (r2 == 0) {
    0x00024db8 cbnz r2, 0x24dbe                                  |         
    0x00024dba ldr r3, [pc, 0x22c]                               |         
    0x00024dbc add r3, pc                                        |         r3 = 0x49daa;
                                                                 |     }
    0x00024dbe ldr r0, [pc, 0x22c]                               |     
    0x00024dc0 movs r2, 0                                        |     r2 = 0;
    0x00024dc2 movw r1, 0x161                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024dc6 add r0, pc                                        |     r0 = 0x49db8;
    0x00024dc8 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00024dcc mov r5, r0                                        |     r5 = r0;
    0x00024dce b 0x24c74                                         |     goto label_2;
                                                                 | label_42:
    0x00024dd0 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00024dd2 bne.w 0x24b78                                     |         goto label_3;
                                                                 |     }
    0x00024dd6 b 0x24d88                                         |     goto label_4;
                                                                 | label_35:
    0x00024dd8 ldr r5, [pc, 0x214]                               |     
    0x00024dda add r5, pc                                        |     r5 = 0x49dce;
    0x00024ddc b 0x24c42                                         |     goto label_5;
                                                                 | label_34:
    0x00024dde vmov.i64 d17, 0xffff                              |     __asm ("vmov.i64 d17, case.0x3207a.11");
    0x00024de2 mov r0, r7                                        |     r0 = r7;
    0x00024de4 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00024de8 add.w r7, sp, 0x26                                |     r7 += var_26h;
    0x00024dec movs r3, 2                                        |     r3 = 2;
    0x00024dee mov r2, r7                                        |     r2 = r7;
    0x00024df0 mov.w r1, -1                                      |     r1 = -1;
    0x00024df4 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x00024df8 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00024dfc bl 0x367c8                                        |     is_uint_n_range ();
    0x00024e00 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00024e02 bne.w 0x24c3c                                     |         goto label_6;
                                                                 |     }
    0x00024e06 ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00024e08 movw r1, 0x16d                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024e0c ldr r3, [pc, 0x1e4]                               |     
    0x00024e0e movs r4, 1                                        |     r4 = 1;
    0x00024e10 ldr r0, [pc, 0x1e4]                               |     
    0x00024e12 ldr r2, [r5]                                      |     r2 = *(r5);
    0x00024e14 add r3, pc                                        |     r3 = 0x49e0c;
    0x00024e16 add r0, pc                                        |     r0 = 0x49e12;
    0x00024e18 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024e1c str r0, [r5]                                      |     *(r5) = r0;
    0x00024e1e b 0x24d24                                         |     goto label_7;
                                                                 | label_41:
    0x00024e20 ldr r2, [pc, 0x1d8]                               |     
    0x00024e22 add r2, pc                                        |     r2 = 0x49e22;
                                                                 | label_26:
    0x00024e24 ldr r1, [pc, 0x1d8]                               |     
    0x00024e26 mov r3, r4                                        |     r3 = r4;
    0x00024e28 movs r0, 0                                        |     r0 = 0;
    0x00024e2a add r1, pc                                        |     r1 = 0x49e2e;
    0x00024e2c bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x00024e30 mov r8, r0                                        |     r8 = r0;
    0x00024e32 b 0x24b48                                         |     goto label_8;
                                                                 | label_38:
    0x00024e34 ldr r3, [pc, 0x1cc]                               |     
    0x00024e36 ldr r0, [pc, 0x1d0]                               |     
    0x00024e38 add r3, pc                                        |     r3 = 0x49e40;
    0x00024e3a add r0, pc                                        |     r0 = 0x49e48;
    0x00024e3c b 0x24cc0                                         |     goto label_9;
                                                                 | label_37:
    0x00024e3e ldr r2, [pc, 0x1cc]                               |     
    0x00024e40 add r2, pc                                        |     r2 = 0x49e52;
    0x00024e42 b 0x24cb2                                         |     goto label_10;
                                                                 | label_39:
    0x00024e44 mov r1, r0                                        |     r1 = r0;
    0x00024e46 mov r0, r7                                        |     r0 = r7;
    0x00024e48 bl 0x2d8e8                                        |     zbx_tcp_recv_raw_ext ();
    0x00024e4c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00024e4e beq.w 0x24cee                                     |         goto label_11;
                                                                 |     }
    0x00024e52 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00024e54 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00024e56 beq 0x24ee4                                       |         goto label_45;
                                                                 |     }
    0x00024e58 ldr r0, [pc, 0x1b4]                               |     
    0x00024e5a mov.w r3, 0x100000                                |     r3 = case.0x3207a.11;
    0x00024e5e ldr r2, [r2]                                      |     r2 = *(r2);
    0x00024e60 movw r1, 0x193                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024e64 add r0, pc                                        |     r0 = 0x49e78;
    0x00024e66 bl 0x35c28                                        |     zbx_malloc2 ();
    0x00024e6a ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00024e6c ldr r1, [r7, 0xc]                                 |     r1 = *((r7 + 0xc));
    0x00024e6e str r0, [r2]                                      |     *(r2) = r0;
    0x00024e70 mov.w r2, 0x100000                                |     r2 = case.0x3207a.11;
    0x00024e74 bl 0x394f0                                        |     zbx_strlcpy ();
    0x00024e78 mov r0, sb                                        |     r0 = sb;
    0x00024e7a blx 0xbd14                                        |     gai_strerror ();
    0x00024e7e mov r0, r7                                        |     r0 = r7;
    0x00024e80 bl 0x2c728                                        |     zbx_tcp_close ();
    0x00024e84 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00024e88 bne.w 0x24d16                                     |         goto label_12;
                                                                 |     }
    0x00024e8c b 0x24d1e                                         |     goto label_13;
                                                                 | label_43:
    0x00024e8e ldr r1, [pc, 0x184]                               |     
    0x00024e90 movs r4, 1                                        |     r4 = 1;
    0x00024e92 add r1, pc                                        |     r1 = 0x49eac;
    0x00024e94 bl 0x393ac                                        |     zbx_ltrim ();
    0x00024e98 ldr r1, [pc, 0x17c]                               |     
    0x00024e9a ldr r0, [r6]                                      |     r0 = *(r6);
    0x00024e9c add r1, pc                                        |     r1 = 0x49eb8;
    0x00024e9e bl 0x3936c                                        |     zbx_rtrim ();
    0x00024ea2 ldr r3, [r6]                                      |     r3 = *(r6);
    0x00024ea4 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00024ea6 b 0x24daa                                         |     goto label_14;
                                                                 | label_23:
    0x00024ea8 ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00024eaa movs r1, 0x48                                     |     r1 = 0x48;
    0x00024eac ldr r3, [pc, 0x16c]                               |     
    0x00024eae movs r4, 1                                        |     r4 = 1;
    0x00024eb0 ldr r0, [pc, 0x16c]                               |     
    0x00024eb2 ldr r2, [r5]                                      |     r2 = *(r5);
    0x00024eb4 add r3, pc                                        |     r3 = 0x49ed4;
    0x00024eb6 add r0, pc                                        |     r0 = 0x49eda;
    0x00024eb8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024ebc str r0, [r5]                                      |     *(r5) = r0;
    0x00024ebe b 0x24d2c                                         |     goto label_15;
                                                                 | label_28:
    0x00024ec0 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00024ec2 movw r1, 0x12d                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024ec6 ldr r3, [pc, 0x15c]                               |     r3 = *(0x25026);
    0x00024ec8 ldr r0, [pc, 0x15c]                               |     r0 = *(0x25028);
    0x00024eca ldr r2, [r2]                                      |     r2 = *(r2);
                                                                 | label_18:
    0x00024ecc add r3, pc                                        |     r3 += pc;
    0x00024ece add r0, pc                                        |     r0 += pc;
    0x00024ed0 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024ed4 b 0x24bfa                                         |     goto label_16;
                                                                 | label_27:
    0x00024ed6 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024ed8 ldr r1, [pc, 0x150]                               |     
    0x00024eda ldr r0, [r3]                                      |     r0 = *(r3);
    0x00024edc add r1, pc                                        |     r1 = 0x49f0c;
    0x00024ede bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024ee2 b 0x24bfa                                         |     goto label_16;
                                                                 | label_45:
    0x00024ee4 mov r0, sb                                        |     r0 = sb;
    0x00024ee6 blx 0xbd14                                        |     gai_strerror ();
    0x00024eea mov r0, r7                                        |     r0 = r7;
    0x00024eec bl 0x2c728                                        |     zbx_tcp_close ();
    0x00024ef0 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00024ef4 bne.w 0x24d16                                     |         goto label_12;
                                                                 |     }
    0x00024ef8 b 0x24d1e                                         |     goto label_13;
                                                                 | label_31:
    0x00024efa mov r3, sb                                        |     r3 = sb;
    0x00024efc ldr r0, [r6]                                      |     r0 = *(r6);
    0x00024efe sub.w r2, r4, sb                                  |     r2 = r4 - sb;
    0x00024f02 mov r1, fp                                        |     r1 = fp;
    0x00024f04 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024f08 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00024f0a str r0, [r6]                                      |     *(r6) = r0;
    0x00024f0c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024f0e beq.w 0x24da0                                     |         goto label_17;
                                                                 |     }
    0x00024f12 mov r0, r3                                        |     r0 = r3;
    0x00024f14 blx 0xbd14                                        |     gai_strerror ();
    0x00024f18 ldr r0, [r6]                                      |     r0 = *(r6);
    0x00024f1a b 0x24da0                                         |     goto label_17;
                                                                 | label_19:
    0x00024f1c ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00024f1e movs r1, 0x6c                                     |     r1 = 0x6c;
    0x00024f20 ldr r3, [pc, 0x10c]                               |     
    0x00024f22 movs r4, 1                                        |     r4 = 1;
    0x00024f24 ldr r0, [pc, 0x10c]                               |     
    0x00024f26 ldr r2, [r5]                                      |     r2 = *(r5);
    0x00024f28 add r3, pc                                        |     r3 = 0x49f5c;
    0x00024f2a add r0, pc                                        |     r0 = 0x49f62;
    0x00024f2c bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024f30 str r0, [r5]                                      |     *(r5) = r0;
    0x00024f32 b 0x24d2c                                         |     goto label_15;
                                                                 | label_20:
    0x00024f34 ldr r1, [pc, 0x100]                               |     
    0x00024f36 mov r3, r4                                        |     r3 = r4;
    0x00024f38 subs r2, r0, r4                                   |     r2 = r0 - r4;
    0x00024f3a mov r0, fp                                        |     r0 = fp;
    0x00024f3c movs r4, 1                                        |     r4 = 1;
    0x00024f3e add r1, pc                                        |     r1 = 0x49f7a;
    0x00024f40 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024f44 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024f46 str r0, [r3]                                      |     *(r3) = r0;
    0x00024f48 b 0x24d2c                                         |     goto label_15;
                                                                 | label_44:
    0x00024f4a ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024f4c ldr r1, [pc, 0xec]                                |     
    0x00024f4e ldr r0, [r3]                                      |     r0 = *(r3);
    0x00024f50 add r1, pc                                        |     r1 = 0x49f90;
    0x00024f52 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024f56 b 0x24bfa                                         |     goto label_16;
                                                                 | label_21:
    0x00024f58 ldr r1, [pc, 0xe4]                                |     
    0x00024f5a mov r3, r5                                        |     r3 = r5;
    0x00024f5c subs r2, r0, r5                                   |     r2 = r0 - r5;
    0x00024f5e mov r0, r8                                        |     r0 = r8;
    0x00024f60 movs r4, 1                                        |     r4 = 1;
    0x00024f62 add r1, pc                                        |     r1 = 0x49fa6;
    0x00024f64 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024f68 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00024f6a str r0, [r3]                                      |     *(r3) = r0;
    0x00024f6c b 0x24d2c                                         |     goto label_15;
                                                                 | label_25:
    0x00024f6e ldr r5, [sp, 0x14]                                |     r5 = var_14h;
    0x00024f70 mov r3, r4                                        |     r3 = r4;
    0x00024f72 ldr r1, [pc, 0xd0]                                |     
    0x00024f74 subs r2, r7, r4                                   |     r2 = r7 - r4;
    0x00024f76 movs r4, 1                                        |     r4 = 1;
    0x00024f78 ldr r0, [r5]                                      |     r0 = *(r5);
    0x00024f7a add r1, pc                                        |     r1 = "error parsing the \"ServerActive\" parameter: address \"%s\" specified more than once";
    0x00024f7c bl 0x396b0                                        |     zbx_dsprintf ()
    0x00024f80 str r0, [r5]                                      |     *(r5) = r0;
    0x00024f82 b 0x24d2c                                         |     goto label_15;
                                                                 | label_40:
    0x00024f84 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00024f88 strh r0, [r5, 0xc]                                |     *((r5 + 0xc)) = r0;
    0x00024f8a movs r3, r0                                       |     r3 = r0;
    0x00024f8c lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00024f8e movs r0, r0                                       |     
    0x00024f90 cmp r7, 0x92                                      |     
    0x00024f92 movs r2, r0                                       |     r2 = r0;
    0x00024f94 strh r6, [r7, 0xa]                                |     *((r7 + 0xa)) = r6;
    0x00024f96 movs r3, r0                                       |     r3 = r0;
    0x00024f98 cmp r5, 0xe0                                      |     
    0x00024f9a movs r2, r0                                       |     r2 = r0;
    0x00024f9c cmp r5, 0x2e                                      |     
    0x00024f9e movs r2, r0                                       |     r2 = r0;
    0x00024fa0 cmp r5, 0x1e                                      |     
    0x00024fa2 movs r2, r0                                       |     r2 = r0;
    0x00024fa4 cmp r5, 0xe6                                      |     
    0x00024fa6 movs r2, r0                                       |     r2 = r0;
    0x00024fa8 cmp r5, 0xd0                                      |     
    0x00024faa movs r2, r0                                       |     r2 = r0;
    0x00024fac cmp r5, 0xc6                                      |     
    0x00024fae movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00024fb0 bne 0x24ecc                                       |         goto label_18;
                                                                 |     }
    0x00024fb2 movs r1, r0                                       |     r1 = r0;
    0x00024fb4 cmp r5, 0x62                                      |     
    0x00024fb6 movs r2, r0                                       |     r2 = r0;
    0x00024fb8 cmp r3, 0xce                                      |     
    0x00024fba movs r2, r0                                       |     r2 = r0;
    0x00024fbc lsls r0, r4, 0xc                                  |     r0 = r4 << 0xc;
    0x00024fbe movs r0, r0                                       |     
    0x00024fc0 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x00024fc2 movs r0, r0                                       |     
    0x00024fc4 lsls r4, r6, 0xf                                  |     r4 = r6 << 0xf;
    0x00024fc6 movs r2, r0                                       |     r2 = r0;
    0x00024fc8 lsrs r4, r0, 0x1e                                 |     r4 = r0 >> 0x1e;
    0x00024fca movs r2, r0                                       |     r2 = r0;
    0x00024fcc cmp r4, 0xd4                                      |     
    0x00024fce movs r2, r0                                       |     r2 = r0;
    0x00024fd0 cmp r4, 0xd4                                      |     
    0x00024fd2 movs r2, r0                                       |     r2 = r0;
    0x00024fd4 ldrb r4, [r7, 0x1a]                               |     r4 = *((r7 + 0x1a));
    0x00024fd6 movs r3, r0                                       |     r3 = r0;
    0x00024fd8 lsrs r4, r4, 0x1b                                 |     r4 >>= 0x1b;
    0x00024fda movs r2, r0                                       |     r2 = r0;
    0x00024fdc cmp r4, 8                                         |     
    0x00024fde movs r2, r0                                       |     r2 = r0;
    0x00024fe0 cmp r2, 0xae                                      |     
    0x00024fe2 movs r2, r0                                       |     r2 = r0;
    0x00024fe4 ldm r7, {r1, r2, r3, r5, r7}                      |     r1 = *(r7);
                                                                 |     r2 = *((r7 + 4));
                                                                 |     r3 = *((r7 + 8));
                                                                 |     r5 = *((r7 + 12));
                                                                 |     r7 = *((r7 + 16));
    0x00024fe6 movs r1, r0                                       |     r1 = r0;
    0x00024fe8 lsls r0, r5, 0xb                                  |     r0 = r5 << 0xb;
    0x00024fea movs r2, r0                                       |     r2 = r0;
    0x00024fec cmp r2, 0x56                                      |     
    0x00024fee movs r2, r0                                       |     r2 = r0;
    0x00024ff0 lsls r2, r1, 0xb                                  |     r2 = r1 << 0xb;
    0x00024ff2 movs r2, r0                                       |     r2 = r0;
    0x00024ff4 lsls r0, r5, 0xd                                  |     r0 = r5 << 0xd;
    0x00024ff6 movs r2, r0                                       |     r2 = r0;
    0x00024ff8 cmp r2, 6                                         |     
    0x00024ffa movs r2, r0                                       |     r2 = r0;
    0x00024ffc lsrs r6, r3, 0x18                                 |     r6 = r3 >> 0x18;
    0x00024ffe movs r2, r0                                       |     r2 = r0;
    0x00025000 invalid                                           |     
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x25838 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00025838 ()                                  | void fcn_00025838 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_4h_2;
                                                             |     int16_t var_1000h;
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_0h_3;
                                                             |     int32_t var_ch_2;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_dc4h;
                                                             |     int32_t var_4h_3;
                                                             |     int16_t var_15c0h;
                                                             |     int32_t var_0h_2;
                                                             |     int8_t var_ch;
                                                             |     int8_t var_eh;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00025838 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0002583c sub.w sp, sp, 0x15c0                          |     
    0x00025840 ldr r5, [pc, 0x1f4]                           |     
    0x00025842 sub sp, 8                                     |     
    0x00025844 add.w r6, sp, 0x15c0                          |     r6 += var_15c0h;
    0x00025848 mov.w r8, 1                                   |     r8 = 1;
    0x0002584c ldr r4, [pc, 0x1ec]                           |     r4 = *(0x25a3c);
    0x0002584e adds r6, 4                                    |     r6 += 4;
    0x00025850 add r5, pc                                    |     r5 = 0x4b28c;
    0x00025852 ldr.w ip, [pc, 0x1ec]                         |     
    0x00025854 stm r1!, {r2, r3, r5, r6, r7}                 |     *(r1!) = r2;
                                                             |     *((r1! + 4)) = r3;
                                                             |     *((r1! + 8)) = r5;
                                                             |     *((r1! + 12)) = r6;
                                                             |     *((r1! + 16)) = r7;
    0x00025856 mov r7, r0                                    |     r7 = r0;
    0x00025858 add.w sl, sp, 0x28                            |     sl += var_28h;
    0x0002585c ldr r4, [r5, r4]                              |     
    0x0002585e mov r5, r2                                    |     r5 = r2;
    0x00025860 mov r2, r1                                    |     r2 = r1;
    0x00025862 ldr r1, [pc, 0x1e0]                           |     r1 = *(0x25a46);
    0x00025864 add ip, pc                                    |     ip = 0x4b2aa;
    0x00025866 sub.w sb, sl, 0x10                            |     sb -= var_10h;
    0x0002586a ldr r4, [r4]                                  |     r4 = *(0x4b28c);
    0x0002586c str r4, [r6]                                  |     *(r6) = r4;
    0x0002586e mov.w r4, 0                                   |     r4 = 0;
    0x00025872 mov r4, r3                                    |     r4 = r3;
    0x00025874 ldr.w r1, [ip, r1]                            |     
    0x00025878 mov r3, r5                                    |     r3 = r5;
    0x0002587a ldr r5, [pc, 0x1cc]                           |     r5 = *(0x25a4a);
    0x0002587c movs r6, 0                                    |     r6 = 0;
    0x0002587e ldr r1, [r1]                                  |     r1 = *(0x4b2aa);
    0x00025880 strd r6, r6, [sp, 8]                          |     __asm ("strd r6, r6, [var_8h]");
    0x00025884 str.w r8, [sp, 4]                             |     __asm ("str.w r8, [var_4h]");
    0x00025888 ldr.w r0, [ip, r5]                            |     
    0x0002588c ldr r0, [r0]                                  |     r0 = *(0x4b2aa);
    0x0002588e str r0, [sp]                                  |     *(sp) = r0;
    0x00025890 mov r0, sb                                    |     r0 = sb;
    0x00025892 bl 0x2c90c                                    |     r0 = zbx_tcp_connect ();
    0x00025896 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025898 bne 0x2592c                                   |         goto label_2;
                                                             |     }
    0x0002589a ldr r6, [r7]                                  |     r6 = *(r7);
    0x0002589c mov r5, r0                                    |     r5 = r0;
    0x0002589e mov r0, r6                                    |     r0 = r6;
    0x000258a0 blx 0xc114                                    |     fcn_0000c114 ();
    0x000258a4 mov r1, r6                                    |     r1 = r6;
    0x000258a6 mov r2, r0                                    |     r2 = r0;
    0x000258a8 mov r3, r8                                    |     r3 = r8;
    0x000258aa mov r0, sb                                    |     r0 = sb;
    0x000258ac str r5, [sp]                                  |     *(sp) = r5;
    0x000258ae bl 0x2c968                                    |     r0 = zbx_tcp_send_ext ();
    0x000258b2 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r0 == 0) {
    0x000258b4 cbz r0, 0x258fc                               |         goto label_3;
                                                             |     }
    0x000258b6 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x000258b8 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x000258bc str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x000258be bl 0x2c798                                    |     zbx_socket_strerror ();
    0x000258c2 ldr r1, [pc, 0x188]                           |     
    0x000258c4 mov r2, r0                                    |     r2 = r0;
    0x000258c6 mov r0, r5                                    |     r0 = r5;
    0x000258c8 add r1, pc                                    |     r1 = 0x4b31a;
    0x000258ca bl 0x396b0                                    |     zbx_dsprintf ()
    0x000258ce str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
                                                             |     do {
                                                             | label_1:
    0x000258d0 mov r0, sb                                    |         r0 = sb;
    0x000258d2 bl 0x2c728                                    |         zbx_tcp_close ();
                                                             | label_0:
    0x000258d6 ldr r2, [pc, 0x178]                           |         
    0x000258d8 add.w r1, sp, 0x15c0                          |         r1 += var_15c0h;
    0x000258dc ldr r3, [pc, 0x15c]                           |         r3 = *(0x25a3c);
    0x000258de adds r1, 4                                    |         r1 += 4;
    0x000258e0 add r2, pc                                    |         r2 = 0x4b336;
    0x000258e2 ldr r3, [r2, r3]                              |         r3 = *(0x4b336);
    0x000258e4 ldr r2, [r3]                                  |         r2 = *(0x4b336);
    0x000258e6 ldr r3, [r1]                                  |         r3 = *(r1);
    0x000258e8 eors r2, r3                                   |         r2 ^= r3;
    0x000258ea mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000258ee bne.w 0x25a34                                 |             goto label_4;
                                                             |         }
    0x000258f2 add.w sp, sp, 0x15c0                          |         
    0x000258f6 add sp, 8                                     |         
    0x000258f8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x000258fc mov r1, r0                                    |         r1 = r0;
    0x000258fe mov r0, sb                                    |         r0 = sb;
    0x00025900 bl 0x2d45c                                    |         zbx_tcp_recv_ext ();
    0x00025904 adds r0, 1                                    |         r0++;
                                                             |         if (r0 == 1) {
    0x00025906 beq 0x25948                                   |             goto label_5;
                                                             |         }
    0x00025908 ldr.w r0, [sb, 0xc]                           |         r0 = var_ch_2;
                                                             |         if (r0 == 0) {
    0x0002590c cbz r0, 0x25948                               |             goto label_5;
                                                             |         }
    0x0002590e ldrb r2, [r0]                                 |         r2 = *(r0);
                                                             |         if (r2 != 0) {
    0x00025910 cbnz r2, 0x25964                              |             goto label_6;
                                                             |         }
    0x00025912 ldr r1, [r4, 0x28]                            |         r1 = *((r4 + 0x28));
    0x00025914 ldr r3, [pc, 0x13c]                           |         
    0x00025916 ldr r0, [pc, 0x140]                           |         
    0x00025918 orr r1, r1, 0x20                              |         r1 |= 0x20;
    0x0002591c str r1, [r4, 0x28]                            |         *((r4 + 0x28)) = r1;
    0x0002591e add r3, pc                                    |         r3 = 0x4b376;
    0x00025920 add r0, pc                                    |         r0 = 0x4b37e;
    0x00025922 movs r1, 0x5f                                 |         r1 = 0x5f;
    0x00025924 bl 0x35d28                                    |         zbx_strdup2 ();
    0x00025928 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0002592a b 0x258d0                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x0002592c ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0002592e orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00025932 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00025934 bl 0x2c798                                    |     zbx_socket_strerror ();
    0x00025938 ldr r1, [pc, 0x120]                           |     
    0x0002593a mov r2, r0                                    |     r2 = r0;
    0x0002593c mov r0, r6                                    |     r0 = r6;
    0x0002593e add r1, pc                                    |     r1 = 0x4b39e;
    0x00025940 bl 0x396b0                                    |     zbx_dsprintf ()
    0x00025944 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x00025946 b 0x258d6                                     |     goto label_0;
                                                             | label_5:
    0x00025948 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0002594a orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0002594e str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00025950 bl 0x2c798                                    |     zbx_socket_strerror ();
    0x00025954 ldr r1, [pc, 0x108]                           |     
    0x00025956 mov r2, r0                                    |     r2 = r0;
    0x00025958 movs r0, 0                                    |     r0 = 0;
    0x0002595a add r1, pc                                    |     r1 = 0x4b3be;
    0x0002595c bl 0x396b0                                    |     zbx_dsprintf ()
    0x00025960 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x00025962 b 0x258d0                                     |     goto label_1;
                                                             | label_6:
    0x00025964 sub.w sl, sl, 0x18                            |     sl -= var_18h;
    0x00025968 mov r1, sl                                    |     r1 = sl;
    0x0002596a bl 0x303b4                                    |     r0 = zbx_json_open ();
    0x0002596e mov r7, r0                                    |     r7 = r0;
    0x00025970 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025972 bne 0x25a00                                   |         goto label_7;
                                                             |     }
    0x00025974 ldr.w r8, [pc, 0xec]                          |     r8 = *(0x00025a64);
    0x00025978 addw r6, sp, 0xdc4                            |     __asm ("addw r6, var_dc4h");
    0x0002597c str r0, [sp]                                  |     *(sp) = r0;
    0x0002597e mov.w r3, 0x800                               |     r3 = case.0x3207a.11;
    0x00025982 mov r2, r6                                    |     r2 = r6;
    0x00025984 mov r0, sl                                    |     r0 = sl;
    0x00025986 add r8, pc                                    |     r8 += pc;
    0x00025988 mov r1, r8                                    |     r1 = r8;
    0x0002598a bl 0x307fc                                    |     r0 = zbx_json_value_by_name ();
    0x0002598e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00025990 bne 0x25a1c                                   |         goto label_8;
                                                             |     }
    0x00025992 ldr r2, [r6]                                  |     r2 = *(r6);
    0x00025994 movw r3, 0x7573                               |     
    0x00025998 movt r3, 0x6363                               |     r3 = 0xNaN;
    0x0002599c cmp r2, r3                                    |     
    0x0002599e beq 0x259e4                                   |     
                                                             |     while (r2 != r3) {
    0x000259a0 ldr r7, [pc, 0xc4]                            |         
    0x000259a2 movs r5, 0                                    |         r5 = 0;
    0x000259a4 mov.w r3, 0x800                               |         r3 = case.0x3207a.11;
    0x000259a8 mov r0, sl                                    |         r0 = sl;
    0x000259aa mov r2, r6                                    |         r2 = r6;
    0x000259ac str r5, [sp]                                  |         *(sp) = r5;
    0x000259ae add r7, pc                                    |         r7 = 0x4b41a;
    0x000259b0 mov r1, r7                                    |         r1 = r7;
    0x000259b2 bl 0x307fc                                    |         zbx_json_value_by_name ();
    0x000259b4 vpmax.u32 d6, d19, d19                        |         __asm ("vpmax.u32 d6, d19, d19");
                                                             |         if (r0 != 0) {
    0x000259b8 cbz r0, 0x259d0                               |             
    0x000259ba ldr r1, [pc, 0xb0]                            |             
    0x000259bc orr r3, r3, 0x20                              |             r3 |= 0x20;
    0x000259c0 mov r2, r7                                    |             r2 = r7;
    0x000259c2 mov r0, r5                                    |             r0 = r5;
    0x000259c4 str r3, [r4, 0x28]                            |             *((r4 + 0x28)) = r3;
    0x000259c6 add r1, pc                                    |             r1 = 0x4b438;
    0x000259c8 bl 0x396b0                                    |             zbx_dsprintf ()
    0x000259cc str r0, [r4, 0x20]                            |             *((r4 + 0x20)) = r0;
    0x000259ce b 0x258d0                                     |             goto label_1;
                                                             |         }
    0x000259d0 ldr r1, [pc, 0x9c]                            |         
    0x000259d2 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x000259d6 mov r2, r6                                    |         r2 = r6;
    0x000259d8 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x000259da add r1, pc                                    |         r1 = 0x4b44e;
    0x000259dc bl 0x396b0                                    |         zbx_dsprintf ()
    0x000259e0 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x000259e2 b 0x258d0                                     |         goto label_1;
    0x000259e4 ldr r2, [r6, 4]                               |         r2 = var_4h_3;
    0x000259e6 movw r3, 0x7365                               |         
    0x000259ea movt r3, 0x73                                 |         r3 = 0xNaN;
    0x000259ee cmp r2, r3                                    |         
    0x000259f0 bne 0x259a0                                   |         
                                                             |     }
    0x000259f2 ldr.w r2, [sb, 0xc]                           |     r2 = var_ch_2;
    0x000259f6 movs r1, 4                                    |     r1 = 4;
    0x000259f8 mov r0, r4                                    |     r0 = r4;
    0x000259fa bl 0x17994                                    |     set_result_type ();
    0x000259fe b 0x258d0                                     |     goto label_1;
                                                             | label_7:
    0x00025a00 ldr r1, [r4, 0x28]                            |     r1 = *((r4 + 0x28));
    0x00025a02 mov r2, r6                                    |     r2 = r6;
    0x00025a04 ldr r3, [pc, 0x6c]                            |     
    0x00025a06 ldr r0, [pc, 0x70]                            |     
    0x00025a08 orr r1, r1, 0x20                              |     r1 |= 0x20;
    0x00025a0c str r1, [r4, 0x28]                            |     *((r4 + 0x28)) = r1;
    0x00025a0e add r3, pc                                    |     r3 = 0x4b486;
    0x00025a10 add r0, pc                                    |     r0 = 0x4b48e;
    0x00025a12 movs r1, 0x2e                                 |     r1 = 0x2e;
    0x00025a14 bl 0x35d28                                    |     zbx_strdup2 ();
    0x00025a18 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x00025a1a b 0x258d0                                     |     goto label_1;
                                                             | label_8:
    0x00025a1c ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00025a1e mov r2, r8                                    |     r2 = r8;
    0x00025a20 ldr r1, [pc, 0x58]                            |     
    0x00025a22 mov r0, r7                                    |     r0 = r7;
    0x00025a24 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00025a28 add r1, pc                                    |     r1 = "lld worker";
    0x00025a2a str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
                                                             |     do {
    0x00025a2c bl 0x396b0                                    |         zbx_dsprintf ()
    0x00025a30 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x00025a32 b 0x258d0                                     |         goto label_1;
                                                             | label_4:
    0x00025a34 blx 0xbe48                                    |         fcn_0000be48 ();
    0x00025a38 strb r4, [r3, 0xe]                            |         *((r3 + 0xe)) = r4;
    0x00025a3a movs r3, r0                                   |         r3 = r0;
    0x00025a3c lsls r4, r2, 0xc                              |         r4 = r2 << 0xc;
    0x00025a3e movs r0, r0                                   |         
    0x00025a40 strb r0, [r1, 0xe]                            |         var_eh = r0;
    0x00025a42 movs r3, r0                                   |         r3 = r0;
    0x00025a44 lsls r0, r4, 0xc                              |         r0 = r4 << 0xc;
    0x00025a46 movs r0, r0                                   |         
    0x00025a48 lsls r0, r4, 0xf                              |         r0 = r4 << 0xf;
    0x00025a4a movs r0, r0                                   |         
    0x00025a4c movs r2, 0x78                                 |         r2 = 0x78;
    0x00025a4e movs r2, r0                                   |         r2 = r0;
    0x00025a50 strb r4, [r1, 0xc]                            |         var_ch = r4;
    0x00025a52 movs r3, r0                                   |         r3 = r0;
    0x00025a54 movs r1, 0x9e                                 |         r1 = 0x9e;
    0x00025a56 movs r2, r0                                   |         r2 = r0;
    0x00025a58 movs r1, 0xd8                                 |         r1 = 0xd8;
    0x00025a5a movs r2, r0                                   |         r2 = r0;
    0x00025a5c movs r2, 2                                    |         r2 = 2;
    0x00025a5e movs r2, r0                                   |         r2 = r0;
    0x00025a60 movs r1, 0xe6                                 |         r1 = 0xe6;
    0x00025a62 movs r2, r0                                   |         r2 = r0;
    0x00025a64 bne 0x25a2c                                   |         
                                                             |     } while (r2 != r0);
    0x00025a66 movs r1, r0                                   |     r1 = r0;
    0x00025a68 cmp r5, 0x9a                                  |     
    0x00025a6a movs r2, r0                                   |     r2 = r0;
    0x00025a6c movs r1, 0x62                                 |     r1 = 0x62;
    0x00025a6e movs r2, r0                                   |     r2 = r0;
    0x00025a70 movs r1, 0x66                                 |     r1 = 0x66;
    0x00025a72 movs r2, r0                                   |     r2 = r0;
    0x00025a74 movs r0, 0xfa                                 |     r0 = 0xfa;
    0x00025a76 movs r2, r0                                   |     r2 = r0;
    0x00025a78 movs r0, 0xe8                                 |     r0 = 0xe8;
    0x00025a7a movs r2, r0                                   |     r2 = r0;
    0x00025a7c movs r1, 0                                    |     r1 = 0;
    0x00025a7e movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2ee08 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0002ee08 ()                                          | void fcn_0002ee08 (int16_t arg_0h, int16_t arg_1h, 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_48h, int16_t arg_50h, int16_t arg_b0h, int16_t arg_c0h, int16_t arg_c8h, FILE * stream, int16_t arg_128h, int16_t arg_148h, int16_t arg_160h, int16_t arg_170h, int16_t arg_178h, int16_t arg_198h, int16_t arg_1a8h, int16_t arg_1d8h, int16_t arg_210h, int16_t arg_240h, int16_t arg_250h, int16_t arg_268h, int16_t arg_278h, int16_t arg_328h, int16_t arg_340h, int16_t arg_348h, int16_t arg_378h, int16_t arg_390h, int16_t arg_3b8h, int16_t arg_91ch, int16_t arg_948h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int32_t var_91ch;
                                                                     |     int16_t var_0h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     void* addr;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0002ee08 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002ee0c adds r5, r2, 1                                        |     r5 = r2 + 1;
    0x0002ee0e ldr.w r4, [pc, 0x6b4]                                 |     
    0x0002ee12 subw sp, sp, 0x924                                    |     __asm ("subw sp, sp, case.0x3207a.11");
    0x0002ee16 cmp r5, 0xa                                           |     
    0x0002ee18 ldr.w r2, [pc, 0x6ac]                                 |     r2 = *(0x2f4c8);
    0x0002ee1c add r4, pc                                            |     r4 = 0x5e2e6;
    0x0002ee1e str r5, [sp, 0x34]                                    |     *(arg_34h) = r5;
    0x0002ee20 ldr r2, [r4, r2]                                      |     
    0x0002ee22 mov r4, r3                                            |     r4 = r3;
    0x0002ee24 ldr.w r3, [pc, 0x6a4]                                 |     
    0x0002ee28 ldr r2, [r2]                                          |     r2 = imp.__environ;
    0x0002ee2a str.w r2, [sp, 0x91c]                                 |     __asm ("str.w r2, [arg_91ch]");
    0x0002ee2e mov.w r2, 0                                           |     r2 = 0;
    0x0002ee32 str r0, [sp, 0x38]                                    |     *(arg_38h) = r0;
    0x0002ee34 add r3, pc                                            |     r3 = 0x5e304;
    0x0002ee36 str r1, [sp, 0x2c]                                    |     *(arg_2ch) = r1;
    0x0002ee38 str r3, [sp, 0x30]                                    |     *(arg_30h) = r3;
                                                                     |     if (r5 > 0xa) {
    0x0002ee3a bgt.w 0x2f460                                         |         goto label_26;
                                                                     |     }
    0x0002ee3e ldr r3, [sp, 0x38]                                    |     r3 = *(arg_38h);
    0x0002ee40 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002ee42 beq.w 0x2f02e                                         |         goto label_27;
                                                                     |     }
    0x0002ee46 ldr.w r1, [pc, 0x688]                                 |     r1 = *(0x0002f4d0);
    0x0002ee4a add r1, pc                                            |     r1 += pc;
    0x0002ee4c blx 0xc39c                                            |     fcn_0000c39c ();
    0x0002ee50 str r0, [sp, 0x18]                                    |     addr = r0;
    0x0002ee52 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002ee54 beq.w 0x2f474                                         |         goto label_28;
                                                                     |     }
    0x0002ee58 ldr.w r3, [pc, 0x678]                                 |     r3 = *(0x0002f4d4);
    0x0002ee5c add r5, sp, 0x118                                     |     r5 += stream;
    0x0002ee5e ldr r2, [sp, 0x18]                                    |     r2 = addr;
    0x0002ee60 movw r1, 0x803                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ee64 mov r0, r5                                            |     r0 = r5;
    0x0002ee66 add r3, pc                                            |     r3 += pc;
    0x0002ee68 str r3, [sp, 0x28]                                    |     *(arg_28h) = r3;
    0x0002ee6a ldr.w r3, [pc, 0x66c]                                 |     r3 = *(0x0002f4d8);
    0x0002ee6e add r3, pc                                            |     r3 += pc;
    0x0002ee70 str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0002ee72 ldr.w r3, [pc, 0x668]                                 |     r3 = *(0x0002f4dc);
    0x0002ee76 add r3, pc                                            |     r3 += pc;
    0x0002ee78 str r3, [sp, 0x24]                                    |     *(arg_0h) = r3;
    0x0002ee7a ldr.w r3, [pc, 0x664]                                 |     r3 = *(0x0002f4e0);
    0x0002ee7e add r3, pc                                            |     r3 += pc;
    0x0002ee80 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0002ee82 movs r3, 1                                            |     r3 = 1;
    0x0002ee84 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0002ee86 blx 0xbd2c                                            |     r0 = ferror (r0);
    0x0002ee8a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002ee8c beq.w 0x2f028                                         |         goto label_29;
                                                                     |     }
                                                                     | label_0:
    0x0002ee90 mov r0, r5                                            |     r0 = r5;
    0x0002ee92 blx 0xc114                                            |     r0 = fcn_0000c114 ();
    0x0002ee96 cmp.w r0, 0x800                                       |     
                                                                     |     if (r0 >= 0x800) {
    0x0002ee9a bls 0x2eeac                                           |         
    0x0002ee9c ldrb.w r1, [r5, 0x800]                                |         r1 = case.0x3207a.11;
    0x0002eea0 ldr r0, [sp, 0x28]                                    |         r0 = *(arg_28h);
    0x0002eea2 blx 0xc138                                            |         r0 = fcn_0000c138 ();
    0x0002eea6 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0002eea8 beq.w 0x2f432                                         |             goto label_30;
                                                                     |         }
                                                                     |     }
    0x0002eeac ldr.w r6, [pc, 0x634]                                 |     
    0x0002eeb0 mov r0, r5                                            |     r0 = r5;
    0x0002eeb2 ldr r1, [sp, 0x10]                                    |     r1 = var_10h;
    0x0002eeb4 bl 0x393ac                                            |     zbx_ltrim ();
    0x0002eeb8 add r6, pc                                            |     r6 = 0x5e3a0;
    0x0002eeba mov r0, r5                                            |     r0 = r5;
    0x0002eebc mov r1, r6                                            |     r1 = r6;
    0x0002eebe bl 0x3936c                                            |     zbx_rtrim ();
    0x0002eec2 ldrb r3, [r5]                                         |     r3 = *(r5);
    0x0002eec4 cmp r3, 0                                             |     
    0x0002eec6 it ne                                                 |     
                                                                     |     if (r3 != 0) {
    0x0002eec8 cmpne r3, 0x23                                        |         __asm ("cmpne r3, 0x23");
                                                                     |     }
                                                                     |     if (r3 == 0) {
    0x0002eeca beq.w 0x2f010                                         |         goto label_2;
                                                                     |     }
    0x0002eece mov r0, r5                                            |     r0 = r5;
    0x0002eed0 bl 0x3a848                                            |     r0 = zbx_is_utf8 ();
    0x0002eed4 mov r7, r0                                            |     r7 = r0;
    0x0002eed6 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002eed8 bne.w 0x2f410                                         |         goto label_31;
                                                                     |     }
    0x0002eedc movs r1, 0x3d                                         |     r1 = 0x3d;
    0x0002eede mov r0, r5                                            |     r0 = r5;
    0x0002eee0 blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0002eee4 mov r4, r0                                            |     r4 = r0;
    0x0002eee6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002eee8 beq.w 0x2f44a                                         |         goto label_32;
                                                                     |     }
    0x0002eeec mov r1, r6                                            |     r1 = r6;
    0x0002eeee mov r6, r0                                            |     r6 = r0;
    0x0002eef0 strb r7, [r6], 1                                      |     *(r6) = r7;
                                                                     |     r6++;
    0x0002eef4 mov r0, r5                                            |     r0 = r5;
    0x0002eef6 bl 0x3936c                                            |     zbx_rtrim ();
    0x0002eefa ldr r1, [sp, 0x10]                                    |     r1 = var_10h;
    0x0002eefc mov r0, r6                                            |     r0 = r6;
    0x0002eefe bl 0x393ac                                            |     zbx_ltrim ();
    0x0002ef02 ldr.w r3, [pc, 0x5e4]                                 |     r3 = *(0x2f4ea);
    0x0002ef06 ldr r2, [sp, 0x30]                                    |     r2 = *(arg_30h);
    0x0002ef08 ldr.w r8, [r2, r3]                                    |     r8 = *((r2 + r3));
    0x0002ef0c ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0002ef10 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0002ef12 bgt.w 0x2f1e2                                         |         goto label_33;
                                                                     |     }
                                                                     | label_6:
    0x0002ef16 ldr.w r1, [pc, 0x5d4]                                 |     
    0x0002ef1a mov r0, r5                                            |     r0 = r5;
    0x0002ef1c add r1, pc                                            |     r1 = 0x5e40e;
    0x0002ef1e blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0002ef22 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002ef24 bne.w 0x2f080                                         |         goto label_34;
                                                                     |     }
    0x0002ef28 movs r1, 0x2a                                         |     r1 = 0x2a;
    0x0002ef2a mov r0, r6                                            |     r0 = r6;
    0x0002ef2c blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0002ef30 mov r7, r0                                            |     r7 = r0;
    0x0002ef32 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002ef34 beq.w 0x2f34e                                         |         goto label_35;
                                                                     |     }
    0x0002ef38 movs r1, 0x2f                                         |     r1 = 0x2f;
    0x0002ef3a adds r0, 1                                            |     r0++;
    0x0002ef3c blx 0xc138                                            |     r0 = fcn_0000c138 ();
                                                                     |     if (r0 == 0) {
    0x0002ef40 cbz r0, 0x2ef52                                       |         goto label_36;
                                                                     |     }
    0x0002ef42 b 0x2f3c8                                             |     goto label_37;
                                                                     |     do {
    0x0002ef44 ldrb r3, [r7, -0x1]                                   |         r3 = *((r7 - 0x1));
    0x0002ef48 add.w r8, r7, -1                                      |         r8 = r7 + -1;
    0x0002ef4c cmp r3, 0x2f                                          |         
                                                                     |         if (r3 == 0x2f) {
    0x0002ef4e beq 0x2ef6e                                           |             goto label_38;
                                                                     |         }
    0x0002ef50 mov r7, r8                                            |         r7 = r8;
                                                                     | label_36:
    0x0002ef52 cmp r6, r7                                            |         
    0x0002ef54 bne 0x2ef44                                           |         
                                                                     |     } while (r6 != r7);
    0x0002ef56 ldr.w r0, [pc, 0x598]                                 |     
    0x0002ef5a mov r1, r6                                            |     r1 = r6;
    0x0002ef5c add r0, pc                                            |     r0 = 0x5e452;
    0x0002ef5e bl 0x38c64                                            |     zbx_error ();
                                                                     |     do {
                                                                     | label_16:
    0x0002ef62 ldr r0, [sp, 0x18]                                    |         r0 = addr;
    0x0002ef64 blx 0xc248                                            |         munmap (r0, r1);
                                                                     | label_3:
    0x0002ef68 movs r0, 1                                            |         r0 = 1;
    0x0002ef6a blx 0xc0f0                                            |         fcn_0000c0f0 ();
                                                                     | label_38:
    0x0002ef6e ldr.w sb, [pc, 0x584]                                 |         
    0x0002ef72 mov r3, r6                                            |         r3 = r6;
    0x0002ef74 movs r2, 0                                            |         r2 = 0;
    0x0002ef76 movs r1, 0xac                                         |         r1 = 0xac;
    0x0002ef78 sub.w r8, r8, r6                                      |         r8 -= r6;
    0x0002ef7c add sb, pc                                            |         sb = 0x5e476;
    0x0002ef7e mov r0, sb                                            |         r0 = sb;
    0x0002ef80 bl 0x35d28                                            |         zbx_strdup2 ();
    0x0002ef84 movs r2, 0                                            |         r2 = 0;
    0x0002ef86 mov fp, r0                                            |         
    0x0002ef88 mov r3, r7                                            |         r3 = r7;
    0x0002ef8a movs r1, 0xaf                                         |         r1 = 0xaf;
    0x0002ef8c strb.w r2, [fp, r8]                                   |         *((fp + r8)) = r2;
    0x0002ef90 mov r0, sb                                            |         r0 = sb;
    0x0002ef92 bl 0x35d28                                            |         zbx_strdup2 ();
    0x0002ef96 ldr.w r1, [pc, 0x560]                                 |         r1 = *(0x0002f4f8);
    0x0002ef9a mov r7, r0                                            |         r7 = r0;
    0x0002ef9c mov r0, fp                                            |         r0 = fp;
    0x0002ef9e add r1, pc                                            |         r1 += pc;
    0x0002efa0 bl 0x3936c                                            |         zbx_rtrim ();
    0x0002efa4 clz r3, r7                                            |         r3 &= r7;
    0x0002efa8 cmp r0, 0                                             |         
    0x0002efaa lsr.w r3, r3, 5                                       |         r3 >>= 5;
    0x0002efae it eq                                                 |         
                                                                     |         if (r0 != 0) {
    0x0002efb0 moveq r3, 0                                           |             r3 = 0;
                                                                     |         }
    0x0002efb2 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0002efb4 bne.w 0x2f36c                                         |             goto label_39;
                                                                     |         }
                                                                     | label_15:
    0x0002efb8 ldrb.w r3, [fp]                                       |         r3 = *(fp);
                                                                     |         if (r3 == 0) {
    0x0002efbc cbnz r3, 0x2efcc                                      |             
    0x0002efbe ldrb r2, [r4, 1]                                      |             r2 = *((r4 + 1));
    0x0002efc0 cmp r2, 0x2f                                          |             
    0x0002efc2 itt eq                                                |             
                                                                     |             if (r2 != 0x2f) {
    0x0002efc4 strbeq r2, [fp]                                       |                 *(fp) = r2;
                                                                     |             }
                                                                     |             if (r2 != 0x2f) {
    0x0002efc8 strb.w r3, [fp, 1]                                    |                 *(arg_1h) = r3;
                                                                     |                 goto label_40;
                                                                     |             }
                                                                     |         }
                                                                     | label_40:
    0x0002efcc add r4, sp, 0x48                                      |         r4 += arg_48h;
    0x0002efce mov r0, fp                                            |         r0 = fp;
    0x0002efd0 mov r1, r4                                            |         r1 = r4;
    0x0002efd2 blx 0xbe7c                                            |         r0 = unlink (r0);
    0x0002efd6 mov r8, r0                                            |         r8 = r0;
    0x0002efd8 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0002efda bne.w 0x2f3ea                                         |             goto label_41;
                                                                     |         }
    0x0002efde ldr r3, [r4, 0x10]                                    |         r3 = *((r4 + 0x10));
    0x0002efe0 and r3, r3, 0xf000                                    |         r3 &= case.0x3207a.11;
    0x0002efe4 cmp.w r3, 0x4000                                      |         
                                                                     |         if (r3 == 0x4000) {
    0x0002efe8 beq.w 0x2f1f2                                         |             goto label_42;
                                                                     |         }
    0x0002efec cmp r7, 0                                             |         
                                                                     |         if (r7 != 0) {
    0x0002efee bne.w 0x2f380                                         |             goto label_43;
                                                                     |         }
    0x0002eff2 ldr.w r2, [sp, 0x948]                                 |         r2 = *(arg_948h);
    0x0002eff6 mov r3, r7                                            |         r3 = r7;
    0x0002eff8 ldr r1, [sp, 0x2c]                                    |         r1 = *(arg_2ch);
    0x0002effa mov r0, fp                                            |         r0 = fp;
    0x0002effc str r2, [sp]                                          |         *(sp) = r2;
    0x0002effe ldr r2, [sp, 0x34]                                    |         r2 = *(arg_34h);
    0x0002f000 bl 0x2ee08                                            |         r0 = fcn_0002ee08 (r0, r1, r2, r3, r4, r5, r6);
    0x0002f004 mov r4, r0                                            |         r4 = r0;
                                                                     | label_9:
    0x0002f006 mov r0, fp                                            |         r0 = fp;
    0x0002f008 blx 0xbd14                                            |         gai_strerror ();
    0x0002f00c adds r4, 1                                            |         r4++;
    0x0002f00e beq 0x2ef62                                           |         
                                                                     |     } while (r4 == 1);
                                                                     | label_2:
    0x0002f010 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0002f012 movw r1, 0x803                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002f016 ldr r2, [sp, 0x18]                                    |     r2 = addr;
    0x0002f018 mov r0, r5                                            |     r0 = r5;
    0x0002f01a adds r3, 1                                            |     r3++;
    0x0002f01c str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0002f01e blx 0xbd2c                                            |     r0 = ferror (r0);
    0x0002f022 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002f024 bne.w 0x2ee90                                         |         goto label_0;
                                                                     |     }
                                                                     | label_29:
    0x0002f028 ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f02a blx 0xc248                                            |     munmap (r0, r1);
                                                                     | label_27:
    0x0002f02e ldr r3, [sp, 0x34]                                    |     r3 = *(arg_34h);
    0x0002f030 cmp r3, 1                                             |     
                                                                     |     if (r3 != 1) {
    0x0002f032 bne.w 0x2f32c                                         |         goto label_20;
                                                                     |     }
    0x0002f036 ldr r3, [sp, 0x2c]                                    |     r3 = *(arg_2ch);
    0x0002f038 ldr r1, [r3]                                          |     r1 = *(r3);
                                                                     |     if (r1 != 0) {
    0x0002f03a cbnz r1, 0x2f052                                      |         goto label_44;
                                                                     |     }
    0x0002f03c b 0x2f32c                                             |     goto label_20;
                                                                     | label_1:
    0x0002f03e ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0002f040 ldr r2, [r2]                                          |     r2 = *(r2);
    0x0002f042 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0002f044 beq.w 0x2f426                                         |         goto label_45;
                                                                     |     }
                                                                     |     do {
    0x0002f048 ldr r1, [r3, 0x20]!                                   |         r1 = *((r3 += 0x20));
    0x0002f04c cmp r1, 0                                             |         
                                                                     |         if (r1 == 0) {
    0x0002f04e beq.w 0x2f32c                                         |             goto label_20;
                                                                     |         }
                                                                     | label_44:
    0x0002f052 ldr r2, [r3, 0xc]                                     |         r2 = *((r3 + 0xc));
    0x0002f054 cmp r2, 1                                             |         
    0x0002f056 bne 0x2f048                                           |         
                                                                     |     } while (r2 != 1);
    0x0002f058 ldr r2, [r3, 8]                                       |     r2 = *((r3 + 8));
    0x0002f05a cmp r2, 1                                             |     
                                                                     |     if (r2 == 1) {
    0x0002f05c beq 0x2f03e                                           |         goto label_1;
                                                                     |     }
    0x0002f05e cmp r2, 4                                             |     
                                                                     |     if (r2 == 4) {
    0x0002f060 beq 0x2f03e                                           |         goto label_1;
                                                                     |     }
    0x0002f062 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0002f064 beq 0x2f03e                                           |         goto label_1;
                                                                     |     }
    0x0002f066 ldr.w r3, [pc, 0x494]                                 |     r3 = *(0x0002f4fc);
    0x0002f06a movw r2, 0x212                                        |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002f06e ldr.w r1, [pc, 0x490]                                 |     
    0x0002f072 ldr.w r0, [pc, 0x490]                                 |     r0 = *(0x0002f504);
    0x0002f076 add r3, pc                                            |     r3 += pc;
    0x0002f078 add r1, pc                                            |     r1 = 0x5e57e;
    0x0002f07a add r0, pc                                            |     r0 += pc;
    0x0002f07c blx 0xc4a0                                            |     fcn_0000c4a0 ();
                                                                     | label_34:
    0x0002f080 ldr r3, [sp, 0x2c]                                    |     r3 = *(arg_2ch);
    0x0002f082 ldr r0, [r3]                                          |     r0 = *(r3);
    0x0002f084 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f086 beq.w 0x2f3c4                                         |         goto label_46;
                                                                     |     }
    0x0002f08a ldr.w sl, [pc, 0x47c]                                 |     
    0x0002f08e ldr.w fp, [pc, 0x47c]                                 |     fp = *(0x0002f50c);
    0x0002f092 ldr r4, [sp, 0x2c]                                    |     r4 = *(arg_2ch);
    0x0002f094 add sl, pc                                            |     sl = 0x5e5a2;
    0x0002f096 add fp, pc                                            |     
                                                                     |     do {
    0x0002f098 mov r1, r5                                            |         r1 = r5;
    0x0002f09a blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
                                                                     |         if (r0 == 0) {
    0x0002f09e cbnz r0, 0x2f0de                                      |             
    0x0002f0a0 ldr.w r3, [r8]                                        |             r3 = *(r8);
    0x0002f0a4 cmp r3, 3                                             |             
                                                                     |             if (r3 > 3) {
    0x0002f0a6 bgt.w 0x2f1d2                                         |                 goto label_47;
                                                                     |             }
                                                                     | label_5:
    0x0002f0aa ldr r3, [r4, 8]                                       |             r3 = *((r4 + 8));
    0x0002f0ac cmp r3, 5                                             |             
                                                                     |             if (r3 > 5) {
    0x0002f0ae bhi.w 0x2f4ae                                         |                 goto label_48;
                                                                     |             }
                                                                     |             /* switch table (6 cases) at 0x2f0b6 */
    0x0002f0b2 tbb [pc, r3]                                          |             __asm ("tbb case.0x3207a.11");
    0x0002f0bc movs r1, 0x2c                                         |             r1 = 0x2c;
    0x0002f0be mov r0, r6                                            |             r0 = r6;
    0x0002f0c0 bl 0x3b028                                            |             zbx_trim_str_list ();
    0x0002f0c4 ldr.w sb, [r4, 4]                                     |             sb = *((r4 + 4));
    0x0002f0c8 movs r7, 1                                            |             r7 = 1;
    0x0002f0ca mov r3, r6                                            |             r3 = r6;
    0x0002f0cc movw r1, 0x1d9                                        |             r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002f0d0 mov r0, sl                                            |             r0 = sl;
    0x0002f0d2 ldr.w r2, [sb]                                        |             r2 = *(sb);
    0x0002f0d6 bl 0x35d28                                            |             zbx_strdup2 ();
    0x0002f0da str.w r0, [sb]                                        |             __asm ("str.w r0, [sb]");
                                                                     |         }
                                                                     | label_4:
    0x0002f0de ldr r0, [r4, 0x20]!                                   |         r0 = *((r4 += 0x20));
    0x0002f0e2 cmp r0, 0                                             |         
    0x0002f0e4 bne 0x2f098                                           |         
                                                                     |     } while (r0 != 0);
    0x0002f0e6 eor r7, r7, 1                                         |     r7 ^= 1;
    0x0002f0ea and r7, r7, 1                                         |     r7 &= 1;
                                                                     | label_18:
    0x0002f0ee ldr.w r3, [sp, 0x948]                                 |     r3 = *(arg_948h);
    0x0002f0f2 cmp r3, 1                                             |     
    0x0002f0f4 ite ne                                                |     
                                                                     |     if (r3 == 1) {
    0x0002f0f6 movne r7, 0                                           |         r7 = 0;
                                                                     |     }
                                                                     |     if (r3 != 1) {
    0x0002f0f8 andeq r7, r7, 1                                       |         r7 &= 1;
                                                                     |     }
    0x0002f0fc cmp r7, 0                                             |     
                                                                     |     if (r7 == 0) {
    0x0002f0fe beq 0x2f010                                           |         goto label_2;
                                                                     |     }
    0x0002f100 ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f102 blx 0xc248                                            |     munmap (r0, r1);
    0x0002f106 ldr.w r0, [pc, 0x408]                                 |     
    0x0002f10a mov r1, r5                                            |     r1 = r5;
    0x0002f10c ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0002f10e ldr r2, [sp, 0x38]                                    |     r2 = *(arg_38h);
    0x0002f110 add r0, pc                                            |     r0 = 0x5e626;
    0x0002f112 bl 0x38c64                                            |     zbx_error ();
    0x0002f116 b 0x2ef68                                             |     goto label_3;
    0x0002f118 add r7, sp, 0x40                                      |     r7 += arg_40h;
    0x0002f11a mov r1, fp                                            |     r1 = fp;
    0x0002f11c mov r2, r7                                            |     r2 = r7;
    0x0002f11e mov r0, r6                                            |     r0 = r6;
    0x0002f120 bl 0x37a10                                            |     str2uint64 ();
    0x0002f124 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0002f126 beq.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f12a ldrd r3, r2, [sp, 0x40]                               |     __asm ("ldrd r3, r2, [arg_40h]");
    0x0002f12e ldrd r0, r1, [r4, 0x10]                               |     __asm ("ldrd r0, r1, [r4, 0x10]");
    0x0002f132 cmp r3, r0                                            |     
    0x0002f134 sbcs.w r1, r2, r1                                     |     __asm ("sbcs.w r1, r2, r1");
                                                                     |     if (r3 <= r0) {
    0x0002f138 blo.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f13c ldr r1, [r4, 0x18]                                    |     r1 = *((r4 + 0x18));
    0x0002f13e ldr r0, [r4, 0x1c]                                    |     r0 = *((r4 + 0x1c));
    0x0002f140 cmp r1, r3                                            |     
    0x0002f142 sbcs.w r2, r0, r2                                     |     __asm ("sbcs.w r2, r0, r2");
    0x0002f146 ite lo                                                |     
                                                                     |     if (r1 >= r3) {
    0x0002f148 movlo r2, 1                                           |         r2 = 1;
                                                                     |     }
                                                                     |     if (r1 < r3) {
    0x0002f14a movhs r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0002f14c orrs r1, r0                                           |     r1 |= r0;
    0x0002f14e and r2, r2, 1                                         |     r2 &= 1;
    0x0002f152 it eq                                                 |     
                                                                     |     if (r1 != r0) {
    0x0002f154 moveq r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0002f156 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0002f158 bne.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f15c ldr r2, [r4, 4]                                       |     r2 = *((r4 + 4));
    0x0002f15e movs r7, 1                                            |     r7 = 1;
    0x0002f160 str r3, [r2]                                          |     *(r2) = r3;
    0x0002f162 b 0x2f0de                                             |     goto label_4;
    0x0002f164 ldr r3, [r4, 4]                                       |     r3 = *((r4 + 4));
                                                                     |     if (r3 != 0) {
    0x0002f166 cbz r3, 0x2f174                                       |         
    0x0002f168 mov r1, r4                                            |         r1 = r4;
    0x0002f16a mov r0, r6                                            |         r0 = r6;
    0x0002f16c blx r3                                                |         r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x0002f16e cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0002f170 bne.w 0x2f3d4                                         |             goto label_49;
                                                                     |         }
                                                                     |     }
    0x0002f174 movs r7, 1                                            |     r7 = 1;
    0x0002f176 b 0x2f0de                                             |     goto label_4;
    0x0002f178 add r7, sp, 0x40                                      |     r7 += arg_40h;
    0x0002f17a ldr r1, [sp, 0x14]                                    |     r1 = var_14h;
    0x0002f17c mov r2, r7                                            |     r2 = r7;
    0x0002f17e mov r0, r6                                            |     r0 = r6;
    0x0002f180 bl 0x37a10                                            |     str2uint64 ();
    0x0002f184 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0002f186 beq.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f18a ldrd r1, r3, [sp, 0x40]                               |     __asm ("ldrd r1, r3, [arg_40h]");
    0x0002f18e ldrd r0, r2, [r4, 0x10]                               |     __asm ("ldrd r0, r2, [r4, 0x10]");
    0x0002f192 cmp r1, r0                                            |     
    0x0002f194 sbcs.w r2, r3, r2                                     |     __asm ("sbcs.w r2, r3, r2");
                                                                     |     if (r1 <= r0) {
    0x0002f198 blo.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f19c ldr r0, [r4, 0x18]                                    |     r0 = *((r4 + 0x18));
    0x0002f19e ldr r7, [r4, 0x1c]                                    |     r7 = *((r4 + 0x1c));
    0x0002f1a0 cmp r0, r1                                            |     
    0x0002f1a2 sbcs.w r2, r7, r3                                     |     __asm ("sbcs.w r2, r7, r3");
    0x0002f1a6 ite lo                                                |     
                                                                     |     if (r0 >= r1) {
    0x0002f1a8 movlo r2, 1                                           |         r2 = 1;
                                                                     |     }
                                                                     |     if (r0 < r1) {
    0x0002f1aa movhs r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0002f1ac orrs r0, r7                                           |     r0 |= r7;
    0x0002f1ae and r2, r2, 1                                         |     r2 &= 1;
    0x0002f1b2 it eq                                                 |     
                                                                     |     if (r0 != r7) {
    0x0002f1b4 moveq r2, 0                                           |         r2 = 0;
                                                                     |     }
    0x0002f1b6 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0002f1b8 bne.w 0x2f3d4                                         |         goto label_49;
                                                                     |     }
    0x0002f1bc ldr r2, [r4, 4]                                       |     r2 = *((r4 + 4));
    0x0002f1be movs r7, 1                                            |     r7 = 1;
    0x0002f1c0 strd r1, r3, [r2]                                     |     __asm ("strd r1, r3, [r2]");
    0x0002f1c4 b 0x2f0de                                             |     goto label_4;
    0x0002f1c6 ldr r0, [r4, 4]                                       |     r0 = *((r4 + 4));
    0x0002f1c8 mov r1, r6                                            |     r1 = r6;
    0x0002f1ca movs r7, 1                                            |     r7 = 1;
    0x0002f1cc bl 0x3ae50                                            |     zbx_strarr_add ();
    0x0002f1d0 b 0x2f0de                                             |     goto label_4;
                                                                     | label_47:
    0x0002f1d2 ldr r1, [pc, 0x340]                                   |     
    0x0002f1d4 mov r3, r6                                            |     r3 = r6;
    0x0002f1d6 mov r2, r5                                            |     r2 = r5;
    0x0002f1d8 movs r0, 4                                            |     r0 = 4;
    0x0002f1da add r1, pc                                            |     r1 = 0x5e6f4;
    0x0002f1dc bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002f1e0 b 0x2f0aa                                             |     goto label_5;
                                                                     | label_33:
    0x0002f1e2 ldr r1, [pc, 0x334]                                   |     
    0x0002f1e4 mov r3, r6                                            |     r3 = r6;
    0x0002f1e6 mov r2, r5                                            |     r2 = r5;
    0x0002f1e8 movs r0, 4                                            |     r0 = 4;
    0x0002f1ea add r1, pc                                            |     r1 = 0x5e708;
    0x0002f1ec bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002f1f0 b 0x2ef16                                             |     goto label_6;
                                                                     | label_42:
    0x0002f1f2 mov r0, fp                                            |     r0 = fp;
    0x0002f1f4 blx 0xbfd8                                            |     getenv (r0);
    0x0002f1f8 str r0, [sp, 0x1c]                                    |     var_1ch = r0;
    0x0002f1fa cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f1fc beq.w 0x2f492                                         |         goto label_50;
                                                                     |     }
    0x0002f200 add.w sl, sp, 0xb0                                    |     sl += arg_b0h;
    0x0002f204 str r5, [sp, 0x3c]                                    |     *(arg_3ch) = r5;
                                                                     |     do {
                                                                     | label_7:
    0x0002f206 ldr r0, [sp, 0x1c]                                    |         r0 = var_1ch;
    0x0002f208 blx 0xc360                                            |         r0 = fcn_0000c360 ();
    0x0002f20c cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0002f20e beq.w 0x2f31a                                         |             goto label_51;
                                                                     |         }
    0x0002f212 add.w r6, r0, 0x13                                    |         r6 = r0 + 0x13;
    0x0002f216 ldr r1, [sp, 0x24]                                    |         r1 = *(arg_0h);
    0x0002f218 mov r0, r8                                            |         r0 = r8;
    0x0002f21a mov r3, r6                                            |         r3 = r6;
    0x0002f21c mov r2, fp                                            |         r2 = fp;
    0x0002f21e bl 0x396b0                                            |         zbx_dsprintf ()
    0x0002f222 mov r1, sl                                            |         r1 = sl;
    0x0002f224 mov r8, r0                                            |         r8 = r0;
    0x0002f226 blx 0xbe7c                                            |         unlink (r0);
    0x0002f22a str r0, [sp, 0x20]                                    |         var_20h = r0;
    0x0002f22c cmp r0, 0                                             |         
    0x0002f22e bne 0x2f206                                           |         
                                                                     |     } while (r0 != 0);
    0x0002f230 ldr.w r3, [sl, 0x10]                                  |     r3 = *((sl + 0x10));
    0x0002f234 and r3, r3, 0xf000                                    |     r3 &= case.0x3207a.11;
    0x0002f238 cmp.w r3, 0x8000                                      |     
                                                                     |     if (r3 != 0x8000) {
    0x0002f23c bne 0x2f206                                           |         goto label_7;
                                                                     |     }
                                                                     |     if (r7 == 0) {
    0x0002f23e cbz r7, 0x2f288                                       |         goto label_17;
                                                                     |     }
    0x0002f240 ldrb r4, [r7]                                         |     r4 = *(r7);
                                                                     |     if (r4 == 0) {
    0x0002f242 cbz r4, 0x2f282                                       |         goto label_12;
                                                                     |     }
    0x0002f244 mov r5, r7                                            |     r5 = r7;
                                                                     | label_8:
    0x0002f246 cmp r4, 0x2a                                          |     
                                                                     |     if (r4 != 0x2a) {
    0x0002f248 bne 0x2f256                                           |         goto label_52;
                                                                     |     }
                                                                     |     do {
    0x0002f24a ldrb r4, [r5, 1]!                                     |         r4 = *((r5 += 1));
    0x0002f24e cmp r4, 0x2a                                          |         
    0x0002f250 beq 0x2f24a                                           |         
                                                                     |     } while (r4 == 0x2a);
    0x0002f252 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0002f254 beq 0x2f2de                                           |         goto label_53;
                                                                     |     }
                                                                     | label_52:
    0x0002f256 mov sb, r5                                            |     sb = r5;
                                                                     |     do {
    0x0002f258 ldrb r4, [sb, 1]!                                     |         r4 = *((sb += 1));
    0x0002f25c cmp r4, 0                                             |         
    0x0002f25e it ne                                                 |         
                                                                     |         if (r4 != 0) {
    0x0002f260 cmpne r4, 0x2a                                        |             __asm ("cmpne r4, 0x2a");
                                                                     |         }
    0x0002f262 bne 0x2f258                                           |         
                                                                     |     } while (r4 != 0);
    0x0002f264 cmp r7, r5                                            |     
                                                                     |     if (r7 != r5) {
    0x0002f266 bne 0x2f2e6                                           |         goto label_54;
                                                                     |     }
    0x0002f268 sub.w r5, sb, r7                                      |     r5 = sb - r7;
    0x0002f26c mov r1, r7                                            |     r1 = r7;
    0x0002f26e mov r2, r5                                            |     r2 = r5;
    0x0002f270 mov r0, r6                                            |     r0 = r6;
    0x0002f272 blx 0xc448                                            |     r0 = fcn_0000c448 ();
    0x0002f276 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002f278 bne 0x2f206                                           |         goto label_7;
                                                                     |     }
    0x0002f27a add r6, r5                                            |     r6 += r5;
    0x0002f27c mov r5, sb                                            |     r5 = sb;
                                                                     | label_10:
    0x0002f27e cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0002f280 bne 0x2f246                                           |         goto label_8;
                                                                     |     }
                                                                     | label_12:
    0x0002f282 ldrb r3, [r6]                                         |     r3 = *(r6);
    0x0002f284 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0002f286 bne 0x2f206                                           |         goto label_7;
                                                                     |     }
                                                                     | label_17:
    0x0002f288 ldr.w r3, [sp, 0x948]                                 |     r3 = *(arg_948h);
    0x0002f28c mov r0, r8                                            |     r0 = r8;
    0x0002f28e ldr r2, [sp, 0x34]                                    |     r2 = *(arg_34h);
    0x0002f290 ldr r1, [sp, 0x2c]                                    |     r1 = *(arg_2ch);
    0x0002f292 str r3, [sp]                                          |     *(sp) = r3;
    0x0002f294 movs r3, 0                                            |     r3 = 0;
    0x0002f296 bl 0x2ee08                                            |     r0 = fcn_0002ee08 (r0, r1, r2, r3, r4, r5, r6);
    0x0002f29a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f29c beq 0x2f206                                           |         goto label_7;
                                                                     |     }
    0x0002f29e ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0002f2a0 mov r6, r8                                            |     r6 = r8;
    0x0002f2a2 ldr r5, [sp, 0x3c]                                    |     r5 = *(arg_3ch);
    0x0002f2a4 mov.w r4, -1                                          |     r4 = -1;
    0x0002f2a8 blx 0xc494                                            |     r0 = fcn_0000c494 ();
                                                                     |     if (r0 != 0) {
    0x0002f2ac cbz r0, 0x2f2ca                                       |         
                                                                     | label_14:
    0x0002f2ae blx 0xc15c                                            |         r0 = fcn_0000c15c ();
    0x0002f2b2 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0002f2b4 mov.w r4, -1                                          |         r4 = -1;
    0x0002f2b8 bl 0x26fdc                                            |         r0 = zbx_strerror ();
    0x0002f2bc mov r2, r0                                            |         r2 = r0;
    0x0002f2be ldr r0, [pc, 0x25c]                                   |         
    0x0002f2c0 mov r1, fp                                            |         r1 = fp;
    0x0002f2c2 add r0, pc                                            |         r0 = 0x5e7e4;
    0x0002f2c4 bl 0x38c64                                            |         zbx_error ();
                                                                     |         if (r6 == 0) {
                                                                     | label_13:
    0x0002f2c8 cbz r6, 0x2f2d0                                       |             goto label_55;
                                                                     |         }
                                                                     |     }
    0x0002f2ca mov r0, r6                                            |     r0 = r6;
    0x0002f2cc blx 0xbd14                                            |     gai_strerror ();
                                                                     | label_55:
    0x0002f2d0 cmp r7, 0                                             |     
                                                                     |     if (r7 == 0) {
    0x0002f2d2 beq.w 0x2f006                                         |         goto label_9;
                                                                     |     }
    0x0002f2d6 mov r0, r7                                            |     r0 = r7;
    0x0002f2d8 blx 0xbd14                                            |     gai_strerror ();
    0x0002f2dc b 0x2f006                                             |     goto label_9;
                                                                     | label_53:
    0x0002f2de cmp r5, r7                                            |     
    0x0002f2e0 it ne                                                 |     
                                                                     |     if (r5 != r7) {
    0x0002f2e2 movne sb, r5                                          |         sb = r5;
                                                                     |         goto label_56;
                                                                     |     }
                                                                     |     if (r5 == r7) {
                                                                     | label_56:
    0x0002f2e4 beq 0x2f27e                                           |         goto label_10;
                                                                     |     }
                                                                     | label_54:
    0x0002f2e6 ldrb r2, [r6]                                         |     r2 = *(r6);
    0x0002f2e8 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0002f2ea beq 0x2f398                                           |         goto label_57;
                                                                     |     }
    0x0002f2ec cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0002f2ee beq 0x2f206                                           |         goto label_7;
                                                                     |     }
    0x0002f2f0 sub.w r4, sb, r5                                      |     r4 = sb - r5;
    0x0002f2f4 b 0x2f2fe                                             |     goto label_58;
                                                                     | label_11:
    0x0002f2f6 ldrb r3, [r6, 1]!                                     |     r3 = *((r6 += 1));
    0x0002f2fa cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0002f2fc beq 0x2f206                                           |         goto label_7;
                                                                     |     }
                                                                     | label_58:
    0x0002f2fe mov r2, r4                                            |     r2 = r4;
    0x0002f300 mov r1, r5                                            |     r1 = r5;
    0x0002f302 mov r0, r6                                            |     r0 = r6;
    0x0002f304 blx 0xc448                                            |     r0 = fcn_0000c448 ();
    0x0002f308 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002f30a bne 0x2f2f6                                           |         goto label_11;
                                                                     |     }
    0x0002f30c add r6, r4                                            |     r6 += r4;
    0x0002f30e ldrb.w r4, [sb]                                       |     r4 = *(sb);
    0x0002f312 mov r5, sb                                            |     r5 = sb;
    0x0002f314 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0002f316 bne 0x2f246                                           |         goto label_8;
                                                                     |     }
    0x0002f318 b 0x2f282                                             |     goto label_12;
                                                                     | label_51:
    0x0002f31a ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0002f31c mov r6, r8                                            |     r6 = r8;
    0x0002f31e ldr r5, [sp, 0x3c]                                    |     r5 = *(arg_3ch);
    0x0002f320 blx 0xc494                                            |     r0 = fcn_0000c494 ();
    0x0002f324 mov r4, r0                                            |     r4 = r0;
    0x0002f326 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f328 beq 0x2f2c8                                           |         goto label_13;
                                                                     |     }
    0x0002f32a b 0x2f2ae                                             |     goto label_14;
                                                                     | label_20:
    0x0002f32c movs r0, 0                                            |     r0 = 0;
                                                                     | label_19:
    0x0002f32e ldr r2, [pc, 0x1f0]                                   |     
    0x0002f330 ldr r3, [pc, 0x194]                                   |     r3 = *(0x2f4c8);
    0x0002f332 add r2, pc                                            |     r2 = 0x5e858;
    0x0002f334 ldr r3, [r2, r3]                                      |     r3 = imp.__environ;
    0x0002f336 ldr r2, [r3]                                          |     r2 = imp.__environ;
    0x0002f338 ldr.w r3, [sp, 0x91c]                                 |     r3 = *(arg_91ch);
    0x0002f33c eors r2, r3                                           |     r2 ^= r3;
    0x0002f33e mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0002f342 bne.w 0x2f470                                         |         goto label_59;
                                                                     |     }
    0x0002f346 addw sp, sp, 0x924                                    |     __asm ("addw sp, var_0h_2");
    0x0002f34a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_35:
    0x0002f34e mov r2, r0                                            |     r2 = r0;
    0x0002f350 ldr r0, [pc, 0x1d0]                                   |     
    0x0002f352 movs r1, 0x94                                         |     r1 = 0x94;
    0x0002f354 mov r3, r6                                            |     r3 = r6;
    0x0002f356 add r0, pc                                            |     r0 = 0x5e87e;
    0x0002f358 bl 0x35d28                                            |     zbx_strdup2 ();
    0x0002f35c ldr r1, [pc, 0x1c8]                                   |     
    0x0002f35e mov fp, r0                                            |     
    0x0002f360 add r1, pc                                            |     r1 = 0x5e88c;
    0x0002f362 bl 0x3936c                                            |     r0 = zbx_rtrim ();
    0x0002f366 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f368 beq.w 0x2efb8                                         |         goto label_15;
                                                                     |     }
                                                                     | label_39:
    0x0002f36c ldr r3, [pc, 0x1bc]                                   |     
    0x0002f36e movs r2, 0                                            |     r2 = 0;
    0x0002f370 ldr r0, [pc, 0x1bc]                                   |     
    0x0002f372 movs r1, 0xbc                                         |     r1 = 0xbc;
    0x0002f374 add r3, pc                                            |     r3 = 0x5e8a4;
    0x0002f376 add r0, pc                                            |     r0 = 0x5e8aa;
    0x0002f378 bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0002f37c mov r7, r0                                            |     r7 = r0;
    0x0002f37e b 0x2efb8                                             |     goto label_15;
                                                                     | label_43:
    0x0002f380 ldr r0, [pc, 0x1b0]                                   |     
    0x0002f382 mov r1, r6                                            |     r1 = r6;
    0x0002f384 add r0, pc                                            |     r0 = 0x5e8bc;
    0x0002f386 bl 0x38c64                                            |     zbx_error ();
    0x0002f38a mov r0, r7                                            |     r0 = r7;
    0x0002f38c blx 0xbd14                                            |     gai_strerror ();
    0x0002f390 mov r0, fp                                            |     r0 = fp;
    0x0002f392 blx 0xbd14                                            |     gai_strerror ();
    0x0002f396 b 0x2ef62                                             |     goto label_16;
                                                                     | label_57:
    0x0002f398 mov r0, r6                                            |     r0 = r6;
                                                                     |     if (r2 == 0) {
    0x0002f39a cbz r2, 0x2f3a8                                       |         goto label_60;
                                                                     |     }
                                                                     |     do {
    0x0002f39c ldrb r3, [r0, 1]!                                     |         r3 = *((r0 += 1));
    0x0002f3a0 cmp r3, 0                                             |         
    0x0002f3a2 bne 0x2f39c                                           |         
                                                                     |     } while (r3 != 0);
    0x0002f3a4 subs r3, r0, r6                                       |     r3 = r0 - r6;
    0x0002f3a6 str r3, [sp, 0x20]                                    |     var_20h = r3;
                                                                     | label_60:
    0x0002f3a8 ldr r2, [sp, 0x20]                                    |     r2 = var_20h;
    0x0002f3aa sub.w r3, sb, r5                                      |     r3 = sb - r5;
    0x0002f3ae cmp r3, r2                                            |     
                                                                     |     if (r3 > r2) {
    0x0002f3b0 bgt.w 0x2f206                                         |         goto label_7;
                                                                     |     }
    0x0002f3b4 subs r0, r0, r3                                       |     r0 -= r3;
    0x0002f3b6 mov r1, r5                                            |     r1 = r5;
    0x0002f3b8 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0002f3bc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002f3be beq.w 0x2f288                                         |         goto label_17;
                                                                     |     }
    0x0002f3c2 b 0x2f206                                             |     goto label_7;
                                                                     | label_46:
    0x0002f3c4 movs r7, 1                                            |     r7 = 1;
    0x0002f3c6 b 0x2f0ee                                             |     goto label_18;
                                                                     | label_37:
    0x0002f3c8 ldr r0, [pc, 0x16c]                                   |     
    0x0002f3ca mov r1, r6                                            |     r1 = r6;
    0x0002f3cc add r0, pc                                            |     r0 = 0x5e908;
    0x0002f3ce bl 0x38c64                                            |     zbx_error ();
    0x0002f3d2 b 0x2ef62                                             |     goto label_16;
                                                                     | label_49:
    0x0002f3d4 ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f3d6 blx 0xc248                                            |     munmap (r0, r1);
    0x0002f3da ldr r0, [pc, 0x160]                                   |     
    0x0002f3dc ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0002f3de ldr r2, [sp, 0x38]                                    |     r2 = *(arg_38h);
    0x0002f3e0 ldr r1, [r4]                                          |     r1 = *(r4);
    0x0002f3e2 add r0, pc                                            |     r0 = 0x5e924;
    0x0002f3e4 bl 0x38c64                                            |     zbx_error ();
    0x0002f3e8 b 0x2ef68                                             |     goto label_3;
                                                                     | label_41:
    0x0002f3ea blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0002f3ee ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002f3f0 bl 0x26fdc                                            |     r0 = zbx_strerror ();
    0x0002f3f4 mov r2, r0                                            |     r2 = r0;
    0x0002f3f6 ldr r0, [pc, 0x148]                                   |     
    0x0002f3f8 mov r1, fp                                            |     r1 = fp;
    0x0002f3fa add r0, pc                                            |     r0 = 0x5e940;
    0x0002f3fc bl 0x38c64                                            |     zbx_error ();
                                                                     |     if (r7 != 0) {
    0x0002f400 cbz r7, 0x2f408                                       |         
                                                                     | label_21:
    0x0002f402 mov r0, r7                                            |         r0 = r7;
    0x0002f404 blx 0xbd14                                            |         gai_strerror ();
                                                                     |     }
                                                                     | label_22:
    0x0002f408 mov r0, fp                                            |     r0 = fp;
    0x0002f40a blx 0xbd14                                            |     gai_strerror ();
    0x0002f40e b 0x2ef62                                             |     goto label_16;
                                                                     | label_31:
    0x0002f410 ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f412 blx 0xc248                                            |     munmap (r0, r1);
    0x0002f416 ldr r0, [pc, 0x12c]                                   |     
    0x0002f418 mov r2, r5                                            |     r2 = r5;
    0x0002f41a ldr r3, [sp, 0x38]                                    |     r3 = *(arg_38h);
    0x0002f41c ldr r1, [sp, 0xc]                                     |     r1 = var_ch;
    0x0002f41e add r0, pc                                            |     r0 = 0x5e968;
    0x0002f420 bl 0x38c64                                            |     zbx_error ();
    0x0002f424 b 0x2ef68                                             |     goto label_3;
                                                                     | label_45:
    0x0002f426 ldr r0, [pc, 0x120]                                   |     
    0x0002f428 ldr r2, [sp, 0x38]                                    |     r2 = *(arg_38h);
    0x0002f42a add r0, pc                                            |     r0 = 0x5e978;
    0x0002f42c bl 0x38c64                                            |     zbx_error ();
    0x0002f430 b 0x2ef68                                             |     goto label_3;
                                                                     | label_30:
    0x0002f432 ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f434 blx 0xc248                                            |     munmap (r0, r1);
    0x0002f438 ldr r0, [pc, 0x110]                                   |     r0 = *(0x2f54c);
    0x0002f43a mov.w r2, 0x800                                       |     r2 = case.0x3207a.11;
    0x0002f43e ldr r3, [sp, 0x38]                                    |     r3 = *(arg_38h);
                                                                     | label_24:
    0x0002f440 ldr r1, [sp, 0xc]                                     |     r1 = var_ch;
    0x0002f442 add r0, pc                                            |     r0 += pc;
    0x0002f444 bl 0x38c64                                            |     zbx_error ();
    0x0002f448 b 0x2ef68                                             |     goto label_3;
                                                                     | label_32:
    0x0002f44a ldr r0, [sp, 0x18]                                    |     r0 = addr;
    0x0002f44c blx 0xc248                                            |     munmap (r0, r1);
    0x0002f450 ldr r0, [pc, 0xfc]                                    |     
    0x0002f452 mov r1, r5                                            |     r1 = r5;
    0x0002f454 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0002f456 ldr r2, [sp, 0x38]                                    |     r2 = *(arg_38h);
    0x0002f458 add r0, pc                                            |     r0 = 0x5e9ac;
    0x0002f45a bl 0x38c64                                            |     zbx_error ();
    0x0002f45e b 0x2ef68                                             |     goto label_3;
                                                                     | label_26:
    0x0002f460 ldr r0, [pc, 0xf0]                                    |     
    0x0002f462 ldr r1, [sp, 0x38]                                    |     r1 = *(arg_38h);
    0x0002f464 add r0, pc                                            |     r0 = 0x5e9bc;
    0x0002f466 invalid                                               |     
                                                                     | label_23:
    0x0002f468 invalid                                               |     
    0x0002f46c adds r0, 0xff                                         |     r0 += 0xff;
    0x0002f46e b 0x2f32e                                             |     goto label_19;
                                                                     | label_59:
    0x0002f470 blx 0xbe48                                            |     fcn_0000be48 ();
                                                                     | label_28:
    0x0002f474 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0002f476 bne.w 0x2f32c                                         |         goto label_20;
                                                                     |     }
    0x0002f47a blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0002f47e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0002f480 bl 0x26fdc                                            |     r0 = zbx_strerror ();
    0x0002f484 mov r2, r0                                            |     r2 = r0;
    0x0002f486 ldr r0, [pc, 0xd0]                                    |     
    0x0002f488 ldr r1, [sp, 0x38]                                    |     r1 = *(arg_38h);
    0x0002f48a add r0, pc                                            |     r0 = 0x5e9e8;
    0x0002f48c bl 0x38c64                                            |     zbx_error ();
    0x0002f490 b 0x2ef68                                             |     goto label_3;
                                                                     | label_50:
    0x0002f492 blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0002f496 ldr r0, [r0]                                          |     r0 = *(r0);
                                                                     | label_25:
    0x0002f498 bl 0x26fdc                                            |     r0 = zbx_strerror ();
    0x0002f49c mov r2, r0                                            |     r2 = r0;
    0x0002f49e ldr r0, [pc, 0xbc]                                    |     
    0x0002f4a0 mov r1, fp                                            |     r1 = fp;
    0x0002f4a2 add r0, pc                                            |     r0 = 0x5ea04;
    0x0002f4a4 bl 0x38c64                                            |     zbx_error ();
    0x0002f4a8 cmp r7, 0                                             |     
                                                                     |     if (r7 != 0) {
    0x0002f4aa bne 0x2f402                                           |         goto label_21;
                                                                     |     }
    0x0002f4ac b 0x2f408                                             |     goto label_22;
                                                                     | label_48:
    0x0002f4ae ldr r3, [pc, 0xb0]                                    |     
    0x0002f4b0 mov.w r2, 0x1f4                                       |     r2 = case.0x3207a.11;
    0x0002f4b4 ldr r1, [pc, 0xac]                                    |     
    0x0002f4b6 ldr r0, [pc, 0xb0]                                    |     
    0x0002f4b8 add r3, pc                                            |     r3 = 0x5ea1e;
    0x0002f4ba add r1, pc                                            |     r1 = 0x5ea22;
    0x0002f4bc add r0, pc                                            |     r0 = 0x5ea2a;
    0x0002f4be blx 0xc4a0                                            |     fcn_0000c4a0 ();
    0x0002f4c2 nop                                                   |     
                                                                     |     if (r7 <= 0) {
    0x0002f4c4 ble 0x2f468                                           |         goto label_23;
                                                                     |     }
    0x0002f4c6 movs r2, r0                                           |     r2 = r0;
    0x0002f4c8 lsls r4, r2, 0xc                                      |     r4 = r2 << 0xc;
    0x0002f4ca movs r0, r0                                           |     
                                                                     |     if (r0 <= r0) {
    0x0002f4cc ble 0x2f440                                           |         goto label_24;
                                                                     |     }
    0x0002f4ce movs r2, r0                                           |     r2 = r0;
    0x0002f4d0 str r2, [r6, 0x6c]                                    |     *((r6 + 0x6c)) = r2;
    0x0002f4d2 movs r1, r0                                           |     r1 = r0;
    0x0002f4d4 ldm r0!, {r1, r2, r3, r5, r6, r7}                     |     r1 = *(r0!);
                                                                     |     r2 = *((r0! + 4));
                                                                     |     r3 = *((r0! + 8));
                                                                     |     r5 = *((r0! + 12));
                                                                     |     r6 = *((r0! + 16));
                                                                     |     r7 = *((r0! + 20));
    0x0002f4d6 movs r1, r0                                           |     r1 = r0;
    0x0002f4d8 add r6, sp, 0x1d8                                     |     r6 += arg_1d8h;
    0x0002f4da movs r1, r0                                           |     r1 = r0;
    0x0002f4dc strb r2, [r3, 2]                                      |     *((r3 + 2)) = r2;
    0x0002f4de movs r1, r0                                           |     r1 = r0;
    0x0002f4e0 strh r2, [r5, 0x12]                                   |     *((r5 + 0x12)) = r2;
    0x0002f4e2 movs r1, r0                                           |     r1 = r0;
    0x0002f4e4 add r6, sp, 0xc0                                      |     r6 += arg_c0h;
    0x0002f4e6 movs r1, r0                                           |     r1 = r0;
    0x0002f4e8 lsls r0, r6, 0xe                                      |     r0 = r6 << 0xe;
    0x0002f4ea movs r0, r0                                           |     
    0x0002f4ec add r6, sp, 0x210                                     |     r6 += arg_210h;
    0x0002f4ee movs r1, r0                                           |     r1 = r0;
    0x0002f4f0 add r6, sp, 0x240                                     |     r6 += arg_240h;
    0x0002f4f2 movs r1, r0                                           |     r1 = r0;
    0x0002f4f4 add r6, sp, 0xb0                                      |     r6 += arg_b0h;
    0x0002f4f6 movs r1, r0                                           |     r1 = r0;
    0x0002f4f8 str r6, [r0, 0x10]                                    |     *((r0 + 0x10)) = r6;
    0x0002f4fa movs r1, r0                                           |     r1 = r0;
    0x0002f4fc add r7, sp, 0x278                                     |     r7 += arg_278h;
    0x0002f4fe movs r1, r0                                           |     r1 = r0;
    0x0002f500 add r5, sp, 0xc0                                      |     r5 += arg_c0h;
    0x0002f502 movs r1, r0                                           |     r1 = r0;
    0x0002f504 ldr r6, [r2, 0x78]                                    |     r6 = *((r2 + 0x78));
    0x0002f506 movs r1, r0                                           |     r1 = r0;
    0x0002f508 add r5, sp, 0x50                                      |     r5 += arg_50h;
    0x0002f50a movs r1, r0                                           |     r1 = r0;
    0x0002f50c strh r2, [r2, 2]                                      |     *((r2 + 2)) = r2;
    0x0002f50e movs r1, r0                                           |     r1 = r0;
    0x0002f510 add r5, sp, 0x160                                     |     r5 += arg_160h;
    0x0002f512 movs r1, r0                                           |     r1 = r0;
    0x0002f514 add r4, sp, 0x178                                     |     r4 += arg_178h;
    0x0002f516 movs r1, r0                                           |     r1 = r0;
    0x0002f518 add r3, sp, 0x268                                     |     r3 += arg_268h;
    0x0002f51a movs r1, r0                                           |     r1 = r0;
    0x0002f51c add r3, sp, 0x128                                     |     r3 += arg_128h;
    0x0002f51e movs r1, r0                                           |     r1 = r0;
                                                                     |     if (r1 > r0) {
    0x0002f520 bhi 0x2f498                                           |         goto label_25;
                                                                     |     }
    0x0002f522 movs r2, r0                                           |     r2 = r0;
    0x0002f524 add r2, sp, 0x148                                     |     r2 += arg_148h;
    0x0002f526 movs r1, r0                                           |     r1 = r0;
    0x0002f528 ldrb r4, [r0, r5]                                     |     r4 = *((r0 + r5));
    0x0002f52a movs r1, r0                                           |     r1 = r0;
    0x0002f52c add r2, sp, 0x250                                     |     r2 += arg_250h;
    0x0002f52e movs r1, r0                                           |     r1 = r0;
    0x0002f530 add r2, sp, 0xc8                                      |     r2 += arg_c8h;
    0x0002f532 movs r1, r0                                           |     r1 = r0;
    0x0002f534 add r2, sp, 0x240                                     |     r2 += arg_240h;
    0x0002f536 movs r1, r0                                           |     r1 = r0;
    0x0002f538 add r1, sp, 0x390                                     |     r1 += arg_390h;
    0x0002f53a movs r1, r0                                           |     r1 = r0;
    0x0002f53c add r2, sp, 0x378                                     |     r2 += arg_378h;
    0x0002f53e movs r1, r0                                           |     r1 = r0;
    0x0002f540 add r2, sp, 0x48                                      |     r2 += arg_48h;
    0x0002f542 movs r1, r0                                           |     r1 = r0;
    0x0002f544 add r0, sp, 0x348                                     |     r0 += arg_348h;
    0x0002f546 movs r1, r0                                           |     r1 = r0;
    0x0002f548 add r2, sp, 0x328                                     |     r2 += arg_328h;
    0x0002f54a movs r1, r0                                           |     r1 = r0;
    0x0002f54c add r0, sp, 0x198                                     |     r0 += arg_198h;
    0x0002f54e movs r1, r0                                           |     r1 = r0;
    0x0002f550 add r0, sp, 0x340                                     |     r0 += arg_340h;
    0x0002f552 movs r1, r0                                           |     r1 = r0;
    0x0002f554 add r0, sp, 0x50                                      |     r0 += arg_50h;
    0x0002f556 movs r1, r0                                           |     r1 = r0;
    0x0002f558 add r2, sp, 0x48                                      |     r2 += arg_48h;
    0x0002f55a movs r1, r0                                           |     r1 = r0;
    0x0002f55c add r1, sp, 0x1a8                                     |     r1 += arg_1a8h;
    0x0002f55e movs r1, r0                                           |     r1 = r0;
    0x0002f560 add r3, sp, 0x170                                     |     r3 += arg_170h;
    0x0002f562 movs r1, r0                                           |     r1 = r0;
    0x0002f564 add r0, sp, 0x3b8                                     |     r0 += arg_3b8h;
    0x0002f566 movs r1, r0                                           |     r1 = r0;
    0x0002f568 ldr r4, [r2, 0x34]                                    |     r4 = *((r2 + 0x34));
    0x0002f56a movs r1, r0                                           |     r1 = r0;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x30a34 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00030a34 ()                                      | void fcn_00030a34 (int16_t arg1, int16_t arg2) {
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00030a34 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00030a38 ldrb r4, [r0, 1]                                  |     r4 = *((r0 + 1));
    0x00030a3a cmp r4, 0x22                                      |     
                                                                 |     if (r4 == 0x22) {
    0x00030a3c beq.w 0x30b4c                                     |         goto label_7;
                                                                 |     }
    0x00030a40 movw sb, 0x441                                    |     sb = (sb & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00030a44 mov r8, r0                                        |     r8 = r0;
    0x00030a46 mov r7, r1                                        |     r7 = r1;
    0x00030a48 adds r6, r0, 1                                    |     r6 = r0 + 1;
    0x00030a4a mov.w sl, 1                                       |     sl = 1;
    0x00030a4e movt sb, 0x144                                    |     sb = (sb & 0xFFFF) | 0xNaN0000;
                                                                 |     do {
    0x00030a52 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00030a54 beq 0x30b06                                       |             goto label_8;
                                                                 |         }
    0x00030a56 cmp r4, 0x5c                                      |         
                                                                 |         if (r4 == 0x5c) {
    0x00030a58 beq 0x30a72                                       |             goto label_9;
                                                                 |         }
    0x00030a5a ldrb r3, [r6]                                     |         r3 = *(r6);
    0x00030a5c mov r5, r6                                        |         r5 = r6;
                                                                 | label_1:
    0x00030a5e cmp r3, 0x1f                                      |         
                                                                 |         if (r3 < 0x1f) {
    0x00030a60 bls 0x30b22                                       |             goto label_10;
                                                                 |         }
                                                                 | label_0:
    0x00030a62 ldrb r4, [r5, 1]                                  |         r4 = *((r5 + 1));
    0x00030a64 adds r6, r5, 1                                    |         r6 = r5 + 1;
    0x00030a66 cmp r4, 0x22                                      |         
    0x00030a68 bne 0x30a52                                       |         
                                                                 |     } while (r4 != 0x22);
    0x00030a6a sub.w r0, r6, r8                                  |     r0 = r6 - r8;
    0x00030a6e adds r0, 1                                        |     r0++;
    0x00030a70 b 0x30aae                                         |     goto label_3;
                                                                 | label_9:
    0x00030a72 ldrb r4, [r6, 1]                                  |     r4 = *((r6 + 1));
    0x00030a74 adds r5, r6, 1                                    |     r5 = r6 + 1;
    0x00030a76 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00030a78 beq 0x30b3e                                       |         goto label_11;
                                                                 |     }
    0x00030a7a cmp r4, 0x75                                      |     
                                                                 |     if (r4 > 0x75) {
    0x00030a7c bhi 0x30a96                                       |         goto label_12;
                                                                 |     }
    0x00030a7e cmp r4, 0x5b                                      |     
                                                                 |     if (r4 < 0x5b) {
    0x00030a80 bls 0x30af4                                       |         goto label_13;
                                                                 |     }
    0x00030a82 sub.w r3, r4, 0x5c                                |     r3 = r4 - 0x5c;
    0x00030a86 uxtb r3, r3                                       |     r3 = (int8_t) r3;
    0x00030a88 lsl.w r3, sl, r3                                  |     r3 = sl << r3;
    0x00030a8c tst.w r3, sb                                      |     
                                                                 |     if ((r3 & sb) != 0) {
    0x00030a90 bne 0x30a62                                       |         goto label_0;
                                                                 |     }
    0x00030a92 cmp r4, 0x75                                      |     
                                                                 |     if (r4 != 0x75) {
    0x00030a94 beq 0x30ab2                                       |         
                                                                 |         if (r7 == 0) {
                                                                 | label_12:
    0x00030a96 cbz r7, 0x30b00                                   |             goto label_5;
                                                                 |         }
                                                                 | label_4:
    0x00030a98 ldr r2, [pc, 0xb4]                                |         
    0x00030a9a mov r3, r6                                        |         r3 = r6;
    0x00030a9c ldr r1, [pc, 0xb4]                                |         
    0x00030a9e ldr r0, [r7]                                      |         r0 = *(r7);
    0x00030aa0 add r2, pc                                        |         r2 = 0x615f4;
    0x00030aa2 add r1, pc                                        |         r1 = 0x615fa;
    0x00030aa4 bl 0x396b0                                        |         r0 = zbx_dsprintf ()
    0x00030aa8 mov r3, r0                                        |         r3 = r0;
    0x00030aaa movs r0, 0                                        |         r0 = 0;
    0x00030aac str r3, [r7]                                      |         *(r7) = r3;
                                                                 | label_3:
    0x00030aae pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 |     }
    0x00030ab2 blx 0xc0d4                                        |     feof (r0);
    0x00030ab6 ldrb r3, [r5, 1]!                                 |     r3 = *((r5 += 1));
    0x00030aba adds r1, r6, 5                                    |     r1 = r6 + 5;
    0x00030abc ldr r2, [r0]                                      |     r2 = *(r0);
    0x00030abe ldrh.w r4, [r2, r3, lsl 1]                        |     offset_0 = r3 << 1;
                                                                 |     r4 = *((r2 + offset_0));
    0x00030ac2 ands r4, r4, 0x1000                               |     r4 &= case.0x3207a.11;
                                                                 |     if (r4 == r4) {
    0x00030ac6 beq 0x30ada                                       |         goto label_14;
                                                                 |     }
                                                                 | label_2:
    0x00030ac8 cmp r5, r1                                        |     
                                                                 |     if (r5 == r1) {
    0x00030aca beq 0x30a5e                                       |         goto label_1;
                                                                 |     }
    0x00030acc ldrb r3, [r5, 1]!                                 |     r3 = *((r5 += 1));
    0x00030ad0 ldrh.w r4, [r2, r3, lsl 1]                        |     offset_1 = r3 << 1;
                                                                 |     r4 = *((r2 + offset_1));
    0x00030ad4 ands r4, r4, 0x1000                               |     r4 &= case.0x3207a.11;
                                                                 |     if (r4 != r4) {
    0x00030ad8 bne 0x30ac8                                       |         goto label_2;
                                                                 |     }
                                                                 |     if (r7 == 0) {
                                                                 | label_14:
    0x00030ada cbz r7, 0x30b00                                   |         goto label_5;
                                                                 |     }
    0x00030adc ldr r2, [pc, 0x78]                                |     
    0x00030ade ldr r1, [pc, 0x7c]                                |     
    0x00030ae0 add r2, pc                                        |     r2 = 0x6163c;
    0x00030ae2 add r1, pc                                        |     r1 = 0x61644;
                                                                 | label_6:
    0x00030ae4 mov r3, r6                                        |     r3 = r6;
    0x00030ae6 ldr r0, [r7]                                      |     r0 = *(r7);
    0x00030ae8 bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x00030aec mov r3, r0                                        |     r3 = r0;
    0x00030aee mov r0, r4                                        |     r0 = r4;
    0x00030af0 str r3, [r7]                                      |     *(r7) = r3;
    0x00030af2 b 0x30aae                                         |     goto label_3;
                                                                 | label_13:
    0x00030af4 cmp r4, 0x22                                      |     
                                                                 |     if (r4 == 0x22) {
    0x00030af6 beq 0x30a62                                       |         goto label_0;
                                                                 |     }
    0x00030af8 cmp r4, 0x2f                                      |     
                                                                 |     if (r4 == 0x2f) {
    0x00030afa beq 0x30a62                                       |         goto label_0;
                                                                 |     }
    0x00030afc cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00030afe bne 0x30a98                                       |         goto label_4;
                                                                 |     }
                                                                 |     do {
                                                                 | label_5:
    0x00030b00 mov r0, r7                                        |         r0 = r7;
    0x00030b02 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_8:
    0x00030b06 cmp r7, 0                                         |         
    0x00030b08 beq 0x30b00                                       |         
                                                                 |     } while (r7 == 0);
    0x00030b0a ldr r3, [pc, 0x54]                                |     
    0x00030b0c movs r1, 0x35                                     |     r1 = 0x35;
    0x00030b0e ldr r0, [pc, 0x54]                                |     
    0x00030b10 ldr r2, [r7]                                      |     r2 = *(r7);
    0x00030b12 add r3, pc                                        |     r3 = 0x61678;
    0x00030b14 add r0, pc                                        |     r0 = 0x6167e;
    0x00030b16 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00030b1a mov r3, r0                                        |     r3 = r0;
    0x00030b1c mov r0, r4                                        |     r0 = r4;
    0x00030b1e str r3, [r7]                                      |     *(r7) = r3;
    0x00030b20 b 0x30aae                                         |     goto label_3;
                                                                 | label_10:
    0x00030b22 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00030b24 beq 0x30b00                                       |         goto label_5;
                                                                 |     }
    0x00030b26 ldr r2, [pc, 0x40]                                |     
    0x00030b28 mov r3, r5                                        |     r3 = r5;
    0x00030b2a ldr r1, [pc, 0x40]                                |     
    0x00030b2c ldr r0, [r7]                                      |     r0 = *(r7);
    0x00030b2e add r2, pc                                        |     r2 = 0x6169c;
    0x00030b30 add r1, pc                                        |     r1 = 0x616a2;
    0x00030b32 bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x00030b36 mov r3, r0                                        |     r3 = r0;
    0x00030b38 movs r0, 0                                        |     r0 = 0;
    0x00030b3a str r3, [r7]                                      |     *(r7) = r3;
    0x00030b3c b 0x30aae                                         |     goto label_3;
                                                                 | label_11:
    0x00030b3e cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00030b40 beq 0x30b00                                       |         goto label_5;
                                                                 |     }
    0x00030b42 ldr r2, [pc, 0x2c]                                |     
    0x00030b44 ldr r1, [pc, 0x2c]                                |     
    0x00030b46 add r2, pc                                        |     r2 = 0x616bc;
    0x00030b48 add r1, pc                                        |     r1 = 0x616c0;
    0x00030b4a b 0x30ae4                                         |     goto label_6;
                                                                 | label_7:
    0x00030b4c movs r0, 2                                        |     r0 = 2;
    0x00030b4e b 0x30aae                                         |     goto label_3;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x30efc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00030efc ()                                  | void fcn_00030efc (int16_t arg1, int16_t arg2) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00030efc push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00030f00 mov r8, r1                                    |     r8 = r1;
    0x00030f02 ldrb r1, [r0]                                 |     r1 = *(r0);
    0x00030f04 mov sb, r0                                    |     sb = r0;
    0x00030f06 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r1 == 0) {
    0x00030f08 cbz r1, 0x30f28                               |         goto label_1;
                                                             |     }
    0x00030f0a ldr r6, [pc, 0x140]                           |     
    0x00030f0c mov r5, r0                                    |     r5 = r0;
    0x00030f0e add r6, pc                                    |     r6 = 0x61f60;
    0x00030f10 b 0x30f18                                     |     
                                                             |     while (r0 != 0) {
    0x00030f12 cmp r1, 0                                     |         
                                                             |         if (r1 == 0) {
    0x00030f14 beq.w 0x3101a                                 |             goto label_5;
                                                             |         }
    0x00030f18 mov r0, r6                                    |         r0 = r6;
    0x00030f1a mov r4, r5                                    |         r4 = r5;
    0x00030f1c blx 0xc138                                    |         fcn_0000c138 ();
    0x00030f20 adds r5, 1                                    |         r5++;
    0x00030f22 ldrb r1, [r5]                                 |         r1 = *(r5);
    0x00030f24 cmp r0, 0                                     |         
    0x00030f26 bne 0x30f12                                   |         
                                                             |     }
                                                             | label_1:
    0x00030f28 ldrb r5, [r4, 1]                              |     r5 = *((r4 + 1));
    0x00030f2a adds r4, 1                                    |     r4++;
    0x00030f2c cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00030f2e beq 0x30ff6                                   |         goto label_6;
                                                             |     }
    0x00030f30 ldr r6, [pc, 0x11c]                           |     
    0x00030f32 add r6, pc                                    |     r6 = 0x61f86;
    0x00030f34 b 0x30f3e                                     |     
                                                             |     while (r0 != 0) {
    0x00030f36 ldrb r5, [r4, 1]!                             |         r5 = *((r4 += 1));
    0x00030f3a cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00030f3c beq 0x30ff6                                   |             goto label_6;
                                                             |         }
    0x00030f3e mov r1, r5                                    |         r1 = r5;
    0x00030f40 mov r0, r6                                    |         r0 = r6;
    0x00030f42 blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x00030f46 cmp r0, 0                                     |         
    0x00030f48 bne 0x30f36                                   |         
                                                             |     }
    0x00030f4a cmp r5, 0x7d                                  |     
                                                             |     if (r5 == 0x7d) {
    0x00030f4c bne 0x30f58                                   |         
                                                             | label_3:
    0x00030f4e sub.w r0, r4, sb                              |         r0 = r4 - sb;
    0x00030f52 adds r0, 1                                    |         r0++;
    0x00030f54 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
    0x00030f58 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00030f5a cmp r3, 0x22                                  |     
                                                             |     if (r3 != 0x22) {
    0x00030f5c bne 0x30ff6                                   |         goto label_6;
                                                             |     }
    0x00030f5e ldr r5, [pc, 0xf4]                            |     
    0x00030f60 ldr r6, [pc, 0xf4]                            |     
    0x00030f62 ldr r7, [pc, 0xf8]                            |     
    0x00030f64 add r5, pc                                    |     r5 = 0x61fbe;
    0x00030f66 add r6, pc                                    |     r6 = 0x61fc2;
    0x00030f68 add r7, pc                                    |     r7 = 0x61fca;
                                                             | label_0:
    0x00030f6a mov r1, r8                                    |     r1 = r8;
    0x00030f6c mov r0, r4                                    |     r0 = r4;
    0x00030f6e bl 0x30a34                                    |     r0 = fcn_00030a34 (r0, r1);
    0x00030f72 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00030f74 beq 0x3101e                                   |         goto label_4;
                                                             |     }
    0x00030f76 ldrb.w sl, [r4, r0]                           |     sl = *((r4 + r0));
    0x00030f7a add r4, r0                                    |     r4 += r0;
    0x00030f7c cmp.w sl, 0                                   |     
                                                             |     if (sl != 0) {
    0x00030f80 bne 0x30f8e                                   |         goto label_7;
                                                             |     }
    0x00030f82 b 0x31024                                     |     goto label_8;
                                                             |     do {
    0x00030f84 ldrb sl, [r4, 1]!                             |         sl = *((r4 += 1));
    0x00030f88 cmp.w sl, 0                                   |         
                                                             |         if (sl == 0) {
    0x00030f8c beq 0x31024                                   |             goto label_8;
                                                             |         }
                                                             | label_7:
    0x00030f8e mov r1, sl                                    |         r1 = sl;
    0x00030f90 mov r0, r5                                    |         r0 = r5;
    0x00030f92 blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x00030f96 cmp r0, 0                                     |         
    0x00030f98 bne 0x30f84                                   |         
                                                             |     } while (r0 != 0);
    0x00030f9a cmp.w sl, 0x3a                                |     
                                                             |     if (sl != 0x3a) {
    0x00030f9e bne 0x31024                                   |         goto label_8;
                                                             |     }
    0x00030fa0 adds r4, 1                                    |     r4++;
    0x00030fa2 mov r1, r8                                    |     r1 = r8;
    0x00030fa4 mov r0, r4                                    |     r0 = r4;
    0x00030fa6 bl 0x30b78                                    |     r0 = json_parse_value ();
    0x00030faa cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00030fac beq 0x3101e                                   |         goto label_4;
                                                             |     }
    0x00030fae ldrb.w sl, [r4, r0]                           |     sl = *((r4 + r0));
    0x00030fb2 add r4, r0                                    |     r4 += r0;
    0x00030fb4 cmp.w sl, 0                                   |     
                                                             |     if (sl != 0) {
    0x00030fb8 bne 0x30fc6                                   |         goto label_9;
                                                             |     }
    0x00030fba b 0x3103a                                     |     goto label_10;
                                                             |     do {
    0x00030fbc ldrb sl, [r4, 1]!                             |         sl = *((r4 += 1));
    0x00030fc0 cmp.w sl, 0                                   |         
                                                             |         if (sl == 0) {
    0x00030fc4 beq 0x3103a                                   |             goto label_10;
                                                             |         }
                                                             | label_9:
    0x00030fc6 mov r1, sl                                    |         r1 = sl;
    0x00030fc8 mov r0, r6                                    |         r0 = r6;
    0x00030fca blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x00030fce cmp r0, 0                                     |         
    0x00030fd0 bne 0x30fbc                                   |         
                                                             |     } while (r0 != 0);
    0x00030fd2 cmp.w sl, 0x2c                                |     
                                                             |     if (sl != 0x2c) {
    0x00030fd6 bne 0x31034                                   |         goto label_11;
                                                             |     }
    0x00030fd8 ldrb r1, [r4, 1]                              |     r1 = *((r4 + 1));
    0x00030fda adds r4, 1                                    |     r4++;
                                                             |     if (r1 != 0) {
    0x00030fdc cbnz r1, 0x30fe6                              |         goto label_12;
                                                             |     }
    0x00030fde b 0x30ff6                                     |     goto label_6;
                                                             |     do {
    0x00030fe0 ldrb r1, [r4, 1]!                             |         r1 = *((r4 += 1));
                                                             |         if (r1 == 0) {
    0x00030fe4 cbz r1, 0x30ff6                               |             goto label_6;
                                                             |         }
                                                             | label_12:
    0x00030fe6 mov r0, r7                                    |         r0 = r7;
    0x00030fe8 blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x00030fec cmp r0, 0                                     |         
    0x00030fee bne 0x30fe0                                   |         
                                                             |     } while (r0 != 0);
    0x00030ff0 ldrb r3, [r4]                                 |     r3 = *(r4);
    0x00030ff2 cmp r3, 0x22                                  |     
                                                             |     if (r3 == 0x22) {
    0x00030ff4 beq 0x30f6a                                   |         goto label_0;
                                                             |     }
                                                             | label_6:
    0x00030ff6 cmp.w r8, 0                                   |     
                                                             |     if (r8 == 0) {
    0x00030ffa beq 0x3101e                                   |         goto label_4;
                                                             |     }
    0x00030ffc ldr r2, [pc, 0x60]                            |     
    0x00030ffe ldr r1, [pc, 0x64]                            |     
    0x00031000 add r2, pc                                    |     r2 = 0x62064;
    0x00031002 add r1, pc                                    |     r1 = 0x6206c;
                                                             | label_2:
    0x00031004 mov r3, r4                                    |     r3 = r4;
    0x00031006 ldr.w r0, [r8]                                |     r0 = *(r8);
    0x0003100a bl 0x396b0                                    |     r0 = zbx_dsprintf ()
    0x0003100e mov r3, r0                                    |     r3 = r0;
    0x00031010 movs r0, 0                                    |     r0 = 0;
    0x00031012 str.w r3, [r8]                                |     __asm ("str.w r3, [r8]");
    0x00031016 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_5:
    0x0003101a mov r4, r5                                    |     r4 = r5;
    0x0003101c b 0x30f28                                     |     goto label_1;
                                                             |     do {
                                                             | label_4:
    0x0003101e movs r0, 0                                    |         r0 = 0;
    0x00031020 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_8:
    0x00031024 cmp.w r8, 0                                   |         
    0x00031028 beq 0x3101e                                   |         
                                                             |     } while (r8 == 0);
    0x0003102a ldr r2, [pc, 0x3c]                            |     
    0x0003102c ldr r1, [pc, 0x3c]                            |     
    0x0003102e add r2, pc                                    |     r2 = 0x6209c;
    0x00031030 add r1, pc                                    |     r1 = 0x620a0;
    0x00031032 b 0x31004                                     |     goto label_2;
                                                             | label_11:
    0x00031034 cmp.w sl, 0x7d                                |     
                                                             |     if (sl == 0x7d) {
    0x00031038 beq 0x30f4e                                   |         goto label_3;
                                                             |     }
                                                             | label_10:
    0x0003103a cmp.w r8, 0                                   |     
                                                             |     if (r8 == 0) {
    0x0003103e beq 0x3101e                                   |         goto label_4;
                                                             |     }
    0x00031040 ldr r2, [pc, 0x2c]                            |     
    0x00031042 ldr r1, [pc, 0x30]                            |     
    0x00031044 add r2, pc                                    |     r2 = 0x620b8;
    0x00031046 add r1, pc                                    |     r1 = 0x620c0;
    0x00031048 b 0x31004                                     |     goto label_2;
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x31078 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00031078 ()                          | void fcn_00031078 (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00031078 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x0003107c mov r8, r0                            |     r8 = r0;
    0x0003107e ldrb r4, [r0, 1]                      |     r4 = *((r0 + 1));
    0x00031080 mov r7, r1                            |     r7 = r1;
    0x00031082 adds r5, r0, 1                        |     r5 = r0 + 1;
                                                     |     if (r4 == 0) {
    0x00031084 cbz r4, 0x310ac                       |         goto label_3;
                                                     |     }
    0x00031086 ldr r6, [pc, 0x78]                    |     
    0x00031088 add r6, pc                            |     r6 = 0x6218e;
    0x0003108a b 0x31092                             |     
                                                     |     while (r0 != 0) {
    0x0003108c ldrb r4, [r5, 1]!                     |         r4 = *((r5 += 1));
                                                     |         if (r4 == 0) {
    0x00031090 cbz r4, 0x310ac                       |             goto label_3;
                                                     |         }
    0x00031092 mov r1, r4                            |         r1 = r4;
    0x00031094 mov r0, r6                            |         r0 = r6;
    0x00031096 blx 0xc138                            |         r0 = fcn_0000c138 ();
    0x0003109a cmp r0, 0                             |         
    0x0003109c bne 0x3108c                           |         
                                                     |     }
    0x0003109e cmp r4, 0x5d                          |     
                                                     |     if (r4 != 0x5d) {
    0x000310a0 bne 0x310ac                           |         goto label_3;
                                                     |     }
                                                     | label_1:
    0x000310a2 sub.w r0, r5, r8                      |     r0 = r5 - r8;
    0x000310a6 adds r0, 1                            |     r0++;
                                                     |     do {
                                                     | label_2:
    0x000310a8 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_3:
    0x000310ac ldr r6, [pc, 0x54]                    |         
    0x000310ae add r6, pc                            |         r6 = 0x621b6;
                                                     | label_0:
    0x000310b0 mov r1, r7                            |         r1 = r7;
    0x000310b2 mov r0, r5                            |         r0 = r5;
    0x000310b4 bl 0x30b78                            |         r0 = json_parse_value ();
    0x000310b8 cmp r0, 0                             |         
    0x000310ba beq 0x310a8                           |         
                                                     |     } while (r0 == 0);
    0x000310bc add r5, r0                            |     r5 += r0;
    0x000310be ldrb r4, [r5]                         |     r4 = *(r5);
                                                     |     if (r4 != 0) {
    0x000310c0 cbnz r4, 0x310ca                      |         goto label_4;
                                                     |     }
    0x000310c2 b 0x310e2                             |     goto label_5;
                                                     |     do {
    0x000310c4 ldrb r4, [r5, 1]!                     |         r4 = *((r5 += 1));
                                                     |         if (r4 == 0) {
    0x000310c8 cbz r4, 0x310e2                       |             goto label_5;
                                                     |         }
                                                     | label_4:
    0x000310ca mov r1, r4                            |         r1 = r4;
    0x000310cc mov r0, r6                            |         r0 = r6;
    0x000310ce blx 0xc138                            |         r0 = fcn_0000c138 ();
    0x000310d2 cmp r0, 0                             |         
    0x000310d4 bne 0x310c4                           |         
                                                     |     } while (r0 != 0);
    0x000310d6 cmp r4, 0x2c                          |     
                                                     |     if (r4 == 0x2c) {
    0x000310d8 bne 0x310de                           |         
    0x000310da adds r5, 1                            |         r5++;
    0x000310dc b 0x310b0                             |         goto label_0;
                                                     |     }
    0x000310de cmp r4, 0x5d                          |     
                                                     |     if (r4 == 0x5d) {
    0x000310e0 beq 0x310a2                           |         goto label_1;
                                                     |     }
                                                     | label_5:
    0x000310e2 mov r0, r7                            |     r0 = r7;
    0x000310e4 cmp r7, 0                             |     
                                                     |     if (r7 == 0) {
    0x000310e6 beq 0x310a8                           |         goto label_2;
                                                     |     }
    0x000310e8 ldr r2, [pc, 0x1c]                    |     
    0x000310ea mov r3, r5                            |     r3 = r5;
    0x000310ec ldr r1, [pc, 0x1c]                    |     
    0x000310ee ldr r0, [r7]                          |     r0 = *(r7);
    0x000310f0 add r2, pc                            |     r2 = 0x621fc;
    0x000310f2 add r1, pc                            |     r1 = 0x62202;
    0x000310f4 bl 0x396b0                            |     r0 = zbx_dsprintf ()
    0x000310f8 mov r3, r0                            |     r3 = r0;
    0x000310fa movs r0, 0                            |     r0 = 0;
    0x000310fc str r3, [r7]                          |     *(r7) = r3;
    0x000310fe b 0x310a8                             |     goto label_2;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x317a8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000317a8 ()                                      | void fcn_000317a8 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_8h_3;
                                                                 |     int32_t var_8h_4;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_24h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int32_t var_8h_2;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_858h;
                                                                 |     int16_t var_1040h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_1840h;
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000317a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000317ac sub.w sp, sp, 0x1840                              |     
    0x000317b0 ldr r6, [pc, 0x34c]                               |     
    0x000317b2 sub sp, 0x1c                                      |     
    0x000317b4 add.w r7, sp, 0x1840                              |     r7 += var_1840h;
    0x000317b8 ldr r4, [pc, 0x348]                               |     r4 = *(0x31b04);
    0x000317ba adds r7, 0x14                                     |     r7 += 0x14;
    0x000317bc add r6, pc                                        |     r6 = 0x632c0;
    0x000317be ldr r5, [pc, 0x348]                               |     
    0x000317c0 ldr r4, [r6, r4]                                  |     
    0x000317c2 movs r6, 0                                        |     r6 = 0;
    0x000317c4 add r5, pc                                        |     r5 = 0x632d2;
    0x000317c6 ldr r4, [r4]                                      |     r4 = imp.__environ;
    0x000317c8 str r4, [r7]                                      |     *(r7) = r4;
    0x000317ca mov.w r4, 0                                       |     r4 = 0;
    0x000317ce mov r7, r2                                        |     r7 = r2;
    0x000317d0 ldr r2, [pc, 0x338]                               |     r2 = *(0x31b0c);
    0x000317d2 mov r4, r0                                        |     r4 = r0;
    0x000317d4 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000317d6 addw r3, sp, 0x858                                |     __asm ("addw r3, var_858h");
    0x000317da str r3, [sp, 8]                                   |     var_8h = r3;
    0x000317dc add r3, sp, 0x24                                  |     r3 += var_24h;
    0x000317de str r1, [sp, 4]                                   |     var_4h = r1;
    0x000317e0 mov r0, r1                                        |     r0 = r1;
    0x000317e2 strd r6, r6, [r3]                                 |     __asm ("strd r6, r6, [r3]");
    0x000317e6 cmp r0, 7                                         |     
    0x000317e8 str r6, [r3, 8]                                   |     var_8h_2 = r6;
    0x000317ea mov r1, r5                                        |     r1 = r5;
    0x000317ec ldr r2, [r5, r2]                                  |     r2 = imp.__environ;
    0x000317ee str r2, [r3, 0xc]                                 |     var_ch_2 = r2;
    0x000317f0 ldr r2, [pc, 0x31c]                               |     r2 = *(0x31b10);
    0x000317f2 ldr r2, [r5, r2]                                  |     r2 = imp.__environ;
    0x000317f4 str r2, [r3, 0x10]                                |     var_10h = r2;
    0x000317f6 ldr r2, [pc, 0x31c]                               |     r2 = *(0x31b16);
    0x000317f8 ldr r2, [r5, r2]                                  |     r2 = imp.__environ;
    0x000317fa str r2, [r3, 0x14]                                |     var_14h = r2;
    0x000317fc ldr r2, [r4, 4]                                   |     r2 = *((r4 + 4));
                                                                 |     if (r0 == 7) {
    0x000317fe beq.w 0x319ce                                     |         goto label_7;
                                                                 |     }
    0x00031802 cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x00031804 bne.w 0x31964                                     |         goto label_8;
                                                                 |     }
    0x00031808 mov r8, r7                                        |     r8 = r7;
                                                                 | label_2:
    0x0003180a ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0003180c cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x0003180e beq.w 0x31a86                                     |         goto label_9;
                                                                 |     }
    0x00031812 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00031814 cmp r3, 5                                         |     
                                                                 |     if (r3 == 5) {
    0x00031816 beq.w 0x31a6e                                     |         goto label_10;
                                                                 |     }
    0x0003181a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0003181c beq.w 0x31ace                                     |         goto label_11;
                                                                 |     }
    0x00031820 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00031822 add.w sb, sp, 0x1040                              |     sb += var_1040h;
    0x00031826 add.w sb, sb, 0x14                                |     sb += var_14h_2;
    0x0003182a mov.w r2, 0x800                                   |     r2 = case.0x3207a.11;
    0x0003182e mov r1, sb                                        |     r1 = sb;
    0x00031830 ldr r6, [r3, 4]                                   |     r6 = *((r3 + 4));
    0x00031832 movs r3, 0                                        |     r3 = 0;
    0x00031834 mov r0, r6                                        |     r0 = r6;
    0x00031836 bl 0x305c8                                        |     r0 = zbx_json_decodevalue ();
    0x0003183a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003183c beq.w 0x31abe                                     |         goto label_12;
                                                                 |     }
    0x00031840 add r5, sp, 0x18                                  |     r5 += var_18h;
    0x00031842 mov r0, sb                                        |     r0 = sb;
    0x00031844 sub.w r1, r5, 8                                   |     r1 -= var_8h_3;
    0x00031848 bl 0x365b0                                        |     r0 = is_double ();
    0x0003184c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003184e bne.w 0x31abe                                     |         goto label_12;
                                                                 |     }
    0x00031852 ldr r3, [r4, 4]                                   |     r3 = var_0h_2;
    0x00031854 cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x00031856 ble 0x318b6                                       |         goto label_13;
                                                                 |     }
    0x00031858 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0003185a movs r6, 1                                        |     r6 = 1;
    0x0003185c mov fp, r7                                        |     
    0x0003185e add.w sl, r3, -1                                  |     sl = r3 + -1;
                                                                 |     do {
    0x00031862 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00031864 mov.w r2, 0x800                                   |         r2 = case.0x3207a.11;
    0x00031868 mov r1, sb                                        |         r1 = sb;
    0x0003186a add.w r3, r3, r6, lsl 3                           |         r3 += (r6 << 3);
    0x0003186e ldr r7, [r3, 4]                                   |         r7 = *((r3 + 4));
    0x00031870 movs r3, 0                                        |         r3 = 0;
    0x00031872 mov r0, r7                                        |         r0 = r7;
    0x00031874 bl 0x305c8                                        |         r0 = zbx_json_decodevalue ();
    0x00031878 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0003187a beq.w 0x31a98                                     |             goto label_14;
                                                                 |         }
    0x0003187e mov r1, r5                                        |         r1 = r5;
    0x00031880 mov r0, sb                                        |         r0 = sb;
    0x00031882 bl 0x365b0                                        |         r0 = is_double ();
    0x00031886 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00031888 bne.w 0x31a98                                     |             goto label_14;
                                                                 |         }
    0x0003188c cmp.w sl, 5                                       |         
                                                                 |         if (sl <= 5) {
    0x00031890 bhi 0x318ac                                       |             
                                                                 |             /* switch table (6 cases) at 0x31896 */
    0x00031892 tbb [pc, sl]                                      |             __asm ("tbb case.0x3207a.11");
    0x0003189c vldr d16, [r5, -8]                                |             __asm ("vldr d16, [r5, -8]");
    0x000318a0 vldr d17, [r5]                                    |             __asm ("vldr d17, [r5]");
    0x000318a4 vadd.f64 d16, d16, d17                            |             __asm ("vadd.f64 d16, d16, d17");
                                                                 | label_1:
    0x000318a8 vstr d16, [r5, -8]                                |             __asm ("vstr d16, [r5, -8]");
                                                                 |         }
                                                                 | label_0:
    0x000318ac ldr r3, [r4, 4]                                   |         r3 = var_0h_2;
    0x000318ae adds r6, 1                                        |         r6++;
    0x000318b0 cmp r3, r6                                        |         
    0x000318b2 bgt 0x31862                                       |         
                                                                 |     } while (r3 > r6);
    0x000318b4 mov r7, fp                                        |     r7 = fp;
                                                                 | label_13:
    0x000318b6 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x000318b8 ldrd r0, r1, [r5, -0x8]                           |     __asm ("ldrd r0, r1, [r5, -0x8]");
    0x000318bc cmp r2, 3                                         |     
                                                                 |     if (r2 == 3) {
    0x000318be beq.w 0x31a4a                                     |         goto label_15;
                                                                 |     }
                                                                 | label_4:
    0x000318c2 mov r3, r1                                        |     r3 = r1;
    0x000318c4 ldr r1, [pc, 0x250]                               |     
    0x000318c6 mov r2, r0                                        |     r2 = r0;
    0x000318c8 movs r0, 0                                        |     r0 = 0;
    0x000318ca add r1, pc                                        |     r1 = 0x633e6;
    0x000318cc bl 0x396b0                                        |     zbx_dsprintf ()
    0x000318d0 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000318d2 movs r1, 0                                        |     r1 = 0;
    0x000318d4 str r0, [r3]                                      |     *(r3) = r0;
    0x000318d6 bl 0x365b0                                        |     is_double ();
    0x000318da ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000318dc mov r6, r0                                        |     r6 = r0;
    0x000318de cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000318e0 bne.w 0x31aec                                     |         goto label_16;
                                                                 |     }
    0x000318e4 ldr r0, [r3]                                      |     r0 = *(r3);
    0x000318e6 bl 0x39304                                        |     del_zeros ();
                                                                 | label_6:
    0x000318ea cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x000318ec ble.w 0x31a64                                     |         goto label_17;
                                                                 |     }
    0x000318f0 movs r4, 0                                        |     r4 = 0;
    0x000318f2 mov r5, r4                                        |     r5 = r4;
                                                                 |     do {
    0x000318f4 ldr.w r0, [r8, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         r0 = *((r8 + offset_0));
                                                                 |         if (r0 != 0) {
    0x000318f8 cbz r0, 0x31902                                   |             
    0x000318fa blx 0xbd14                                        |             gai_strerror ();
    0x000318fe str.w r5, [r8, r4, lsl 3]                         |             __asm ("str.w r5, [r8, r4, lsl 3]");
                                                                 |         }
    0x00031902 adds r4, 1                                        |         r4++;
    0x00031904 cmp r7, r4                                        |         
    0x00031906 bne 0x318f4                                       |         
                                                                 |     } while (r7 != r4);
                                                                 | label_5:
    0x00031908 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x0003190a mov r0, r8                                        |     r0 = r8;
    0x0003190c subw r3, r3, 0x834                                |     __asm ("subw r3, r3, case.0x3207a.11");
    0x00031910 ldr r3, [r3, 0x14]                                |     r3 = *((r3 + 0x14));
    0x00031912 blx r3                                            |     uint32_t (*r3)(uint32_t, uint32_t) (r0, r3);
                                                                 | label_3:
    0x00031914 ldr r2, [pc, 0x204]                               |     
    0x00031916 add.w r1, sp, 0x1840                              |     r1 += var_1840h;
    0x0003191a ldr r3, [pc, 0x1e8]                               |     r3 = *(0x31b06);
    0x0003191c adds r1, 0x14                                     |     r1 += 0x14;
    0x0003191e add r2, pc                                        |     r2 = 0x6343e;
    0x00031920 ldr r3, [r2, r3]                                  |     r3 = imp.__environ;
    0x00031922 ldr r2, [r3]                                      |     r2 = imp.__environ;
    0x00031924 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00031926 eors r2, r3                                       |     r2 ^= r3;
    0x00031928 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0003192c bne.w 0x31afc                                     |         goto label_18;
                                                                 |     }
    0x00031930 mov r0, r6                                        |     r0 = r6;
    0x00031932 add.w sp, sp, 0x1840                              |     
    0x00031936 add sp, 0x1c                                      |     
    0x00031938 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x0003193c vldr d16, [r5]                                    |     __asm ("vldr d16, [r5]");
    0x00031940 vldr d17, [r5, -8]                                |     __asm ("vldr d17, [r5, -8]");
    0x00031944 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00031948 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r2 <= r3) {
    0x0003194c ble 0x318ac                                       |         goto label_0;
                                                                 |     }
    0x0003194e b 0x318a8                                         |     goto label_1;
    0x00031950 vldr d16, [r5]                                    |     __asm ("vldr d16, [r5]");
    0x00031954 vldr d17, [r5, -8]                                |     __asm ("vldr d17, [r5, -8]");
    0x00031958 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x0003195c vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r2 >= r3) {
    0x00031960 bpl 0x318ac                                       |         goto label_0;
                                                                 |     }
    0x00031962 b 0x318a8                                         |     goto label_1;
                                                                 | label_8:
    0x00031964 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00031966 beq.w 0x31aae                                     |         goto label_19;
                                                                 |     }
    0x0003196a ldr r3, [r4]                                      |     r3 = *(r4);
    0x0003196c ldr r0, [r3, 4]                                   |     r0 = *((r3 + 4));
    0x0003196e ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00031970 cmp r3, 0x5b                                      |     
                                                                 |     if (r3 != 0x5b) {
    0x00031972 bne.w 0x31aae                                     |         goto label_19;
                                                                 |     }
    0x00031976 add r5, sp, 0x18                                  |     r5 += var_18h;
    0x00031978 mov r1, r5                                        |     r1 = r5;
    0x0003197a bl 0x3084c                                        |     zbx_json_brackets_open ();
    0x0003197e adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00031980 beq.w 0x31ab6                                     |         goto label_20;
                                                                 |     }
    0x00031984 ldr.w sb, [pc, 0x198]                             |     
    0x00031988 add.w r8, sp, 0x1040                              |     r8 += var_1040h;
    0x0003198c mov r7, r6                                        |     r7 = r6;
    0x0003198e add r4, sp, 0x24                                  |     r4 += var_24h;
    0x00031990 add.w r8, r8, 0x14                                |     r8 += var_14h_2;
    0x00031994 add sb, pc                                        |     sb = 0x634b8;
    0x00031996 b 0x319b2                                         |     
                                                                 |     while (r0 != 0) {
    0x00031998 adds r2, r7, 1                                    |         r2 = r7 + 1;
    0x0003199a mov r3, r7                                        |         r3 = r7;
    0x0003199c movs r1, 0x16                                     |         r1 = 0x16;
    0x0003199e mov r7, r2                                        |         r7 = r2;
    0x000319a0 mov r0, r8                                        |         r0 = r8;
    0x000319a2 mov r2, sb                                        |         r2 = sb;
    0x000319a4 bl 0x38ea0                                        |         zbx_snprintf ();
    0x000319a8 mov r2, r6                                        |         r2 = r6;
    0x000319aa mov r1, r8                                        |         r1 = r8;
    0x000319ac mov r0, r4                                        |         r0 = r4;
    0x000319ae bl 0x31688                                        |         fcn_00031688 (r0, r1, r2);
    0x000319b2 mov r1, r6                                        |         r1 = r6;
    0x000319b4 mov r0, r5                                        |         r0 = r5;
    0x000319b6 bl 0x30468                                        |         r0 = zbx_json_next ();
    0x000319ba mov r6, r0                                        |         r6 = r0;
    0x000319bc cmp r0, 0                                         |         
    0x000319be bne 0x31998                                       |         
                                                                 |     }
    0x000319c0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000319c2 subw r3, r3, 0x834                                |     __asm ("subw r3, r3, case.0x3207a.11");
    0x000319c6 ldrd r8, r2, [r3]                                 |     __asm ("ldrd r8, r2, [r3]");
    0x000319ca mov r7, r2                                        |     r7 = r2;
    0x000319cc b 0x3180a                                         |     goto label_2;
                                                                 | label_7:
    0x000319ce cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000319d0 beq.w 0x31adc                                     |         goto label_21;
                                                                 |     }
                                                                 |     if (r7 != 0) {
    0x000319d4 cbnz r7, 0x31a2e                                  |         goto label_22;
                                                                 |     }
    0x000319d6 add r6, sp, 0x3c                                  |     r6 += var_3ch;
    0x000319d8 mov.w r1, 0x400                                   |     r1 = case.0x3207a.11;
    0x000319dc mov r0, r6                                        |     r0 = r6;
    0x000319de bl 0x2ff78                                        |     zbx_json_initarray ();
    0x000319e2 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x000319e4 cmp r3, 0                                         |     
    0x000319e6 it gt                                             |     
                                                                 |     if (r3 <= 0) {
    0x000319e8 movgt r5, r7                                      |         r5 = r7;
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x000319ea ble 0x31a04                                       |         goto label_23;
                                                                 |     }
                                                                 |     do {
    0x000319ec ldr r2, [r4]                                      |         r2 = *(r4);
    0x000319ee movs r3, 1                                        |         r3 = 1;
    0x000319f0 movs r1, 0                                        |         r1 = 0;
    0x000319f2 mov r0, r6                                        |         r0 = r6;
    0x000319f4 ldr.w r2, [r2, r5, lsl 3]                         |         offset_1 = r5 << 3;
                                                                 |         r2 = *((r2 + offset_1));
    0x000319f8 add r5, r3                                        |         r5 += r3;
    0x000319fa bl 0x300b4                                        |         zbx_json_addstring ();
    0x000319fc invalid                                           |         
    0x00031a00 cmp r3, r5                                        |         
    0x00031a02 bgt 0x319ec                                       |         
                                                                 |     } while (r3 > r5);
                                                                 | label_23:
    0x00031a04 mov r0, r6                                        |     r0 = r6;
    0x00031a06 bl 0x30384                                        |     zbx_json_close ();
    0x00031a0a ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00031a0c movs r2, 0                                        |     r2 = 0;
    0x00031a0e ldr r0, [pc, 0x114]                               |     
    0x00031a10 movw r1, 0x89c                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00031a14 subw r3, r3, 0x81c                                |     __asm ("subw r3, r3, case.0x3207a.11");
    0x00031a18 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00031a1a add r0, pc                                        |     r0 = 0x63544;
    0x00031a1c bl 0x35d28                                        |     zbx_strdup2 ();
    0x00031a20 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00031a22 str r0, [r3]                                      |     *(r3) = r0;
    0x00031a24 mov r0, r6                                        |     r0 = r6;
    0x00031a26 bl 0x2ffec                                        |     zbx_json_clean ();
    0x00031a2a mov r6, r7                                        |     r6 = r7;
    0x00031a2c b 0x31914                                         |     goto label_3;
                                                                 | label_22:
    0x00031a2e ldr r3, [r4]                                      |     r3 = *(r4);
    0x00031a30 mov r2, r6                                        |     r2 = r6;
    0x00031a32 ldr r0, [pc, 0xf4]                                |     
    0x00031a34 mov.w r1, 0x8a0                                   |     r1 = case.0x3207a.11;
    0x00031a38 mov r7, r6                                        |     r7 = r6;
    0x00031a3a ldr r3, [r3]                                      |     r3 = *(r3);
    0x00031a3c mov r6, r7                                        |     r6 = r7;
    0x00031a3e add r0, pc                                        |     r0 = 0x6356c;
    0x00031a40 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00031a44 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00031a46 str r0, [r3]                                      |     *(r3) = r0;
    0x00031a48 b 0x31914                                         |     goto label_3;
                                                                 | label_15:
    0x00031a4a vmov s15, r3                                      |     __asm ("vmov s15, r3");
    0x00031a4e vcvt.f64.s32 d16, s15                             |     __asm ("vcvt.f64.s32 d16, s15");
    0x00031a52 vmov d17, r0, r1                                  |     __asm ("vmov d17, r0, r1");
    0x00031a56 vdiv.f64 d16, d17, d16                            |     __asm ("vdiv.f64 d16, d17, d16");
    0x00031a5a vmov r0, r1, d16                                  |     __asm ("vmov r0, r1, d16");
    0x00031a5e vstr d16, [r5, -8]                                |     __asm ("vstr d16, [r5, -8]");
    0x00031a62 b 0x318c2                                         |     goto label_4;
                                                                 | label_17:
    0x00031a64 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00031a68 beq.w 0x31914                                     |         goto label_3;
                                                                 |     }
    0x00031a6c b 0x31908                                         |     goto label_5;
                                                                 | label_10:
    0x00031a6e cmp r2, 0                                         |     
    0x00031a70 it le                                             |     
                                                                 |     if (r2 <= 0) {
    0x00031a72 movle r6, 0                                       |         r6 = 0;
                                                                 |         goto label_24;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
                                                                 | label_24:
    0x00031a74 ble.w 0x318ea                                     |         goto label_6;
                                                                 |     }
    0x00031a78 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00031a7a ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x00031a7c ldr r0, [r3, 4]                                   |     r0 = *((r3 + 4));
    0x00031a7e bl 0x315f4                                        |     r0 = fcn_000315f4 (r0, r1);
    0x00031a82 mov r6, r0                                        |     r6 = r0;
    0x00031a84 b 0x318ea                                         |     goto label_6;
                                                                 | label_9:
    0x00031a86 ldr r1, [pc, 0xa4]                                |     
    0x00031a88 movs r0, 0                                        |     r0 = 0;
    0x00031a8a movs r6, 0                                        |     r6 = 0;
    0x00031a8c add r1, pc                                        |     r1 = 0x635be;
    0x00031a8e bl 0x396b0                                        |     zbx_dsprintf ()
    0x00031a92 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00031a94 str r0, [r3]                                      |     *(r3) = r0;
    0x00031a96 b 0x318ea                                         |     goto label_6;
                                                                 | label_14:
    0x00031a98 ldr r0, [pc, 0x94]                                |     
    0x00031a9a mov r3, fp                                        |     r3 = fp;
    0x00031a9c mov fp, r7                                        |     
    0x00031a9e mov.w r6, -1                                      |     r6 = -1;
    0x00031aa2 mov r1, fp                                        |     r1 = fp;
    0x00031aa4 mov r7, r3                                        |     r7 = r3;
    0x00031aa6 add r0, pc                                        |     r0 = 0x635da;
    0x00031aa8 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
    0x00031aac b 0x318ea                                         |     goto label_6;
                                                                 | label_19:
    0x00031aae ldr r0, [pc, 0x84]                                |     
    0x00031ab0 add r0, pc                                        |     r0 = 0x635ea;
    0x00031ab2 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
                                                                 | label_20:
    0x00031ab6 mov.w r7, -1                                      |     r7 = -1;
    0x00031aba mov r6, r7                                        |     r6 = r7;
    0x00031abc b 0x31914                                         |     goto label_3;
                                                                 | label_12:
    0x00031abe ldr r0, [pc, 0x78]                                |     
    0x00031ac0 mov r1, r6                                        |     r1 = r6;
    0x00031ac2 mov.w r6, -1                                      |     r6 = -1;
    0x00031ac6 add r0, pc                                        |     r0 = 0x63604;
    0x00031ac8 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
    0x00031acc b 0x318ea                                         |     goto label_6;
                                                                 | label_11:
    0x00031ace ldr r0, [pc, 0x6c]                                |     
    0x00031ad0 mov.w r6, -1                                      |     r6 = -1;
    0x00031ad4 add r0, pc                                        |     r0 = 0x63616;
    0x00031ad6 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
    0x00031ada b 0x318ea                                         |     goto label_6;
                                                                 | label_21:
    0x00031adc ldr r0, [pc, 0x60]                                |     
    0x00031ade mov.w r7, -1                                      |     r7 = -1;
    0x00031ae2 mov r6, r7                                        |     r6 = r7;
    0x00031ae4 add r0, pc                                        |     r0 = 0x63628;
    0x00031ae6 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
    0x00031aea b 0x31914                                         |     goto label_3;
                                                                 | label_16:
    0x00031aec ldr r0, [pc, 0x54]                                |     
    0x00031aee mov.w r6, -1                                      |     r6 = -1;
    0x00031af2 ldr r1, [r3]                                      |     r1 = *(r3);
    0x00031af4 add r0, pc                                        |     r0 = 0x6363c;
    0x00031af6 bl 0x2fe0c                                        |     zbx_set_json_strerror ();
    0x00031afa b 0x318ea                                         |     goto label_6;
                                                                 | label_18:
    0x00031afc blx 0xbe48                                        |     fcn_0000be48 ();
    0x00031b00 push {r4, r5}                                     |     
    0x00031b02 movs r2, r0                                       |     r2 = r0;
    0x00031b04 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00031b06 movs r0, r0                                       |     
    0x00031b08 push {r3, r5}                                     |     
    0x00031b0a movs r2, r0                                       |     r2 = r0;
    0x00031b0c lsls r0, r6, 0xc                                  |     r0 = r6 << 0xc;
    0x00031b0e movs r0, r0                                       |     
    0x00031b10 lsls r0, r2, 0xf                                  |     r0 = r2 << 0xf;
    0x00031b12 movs r0, r0                                       |     
    0x00031b14 lsls r4, r3, 0xe                                  |     r4 = r3 << 0xe;
    0x00031b16 movs r0, r0                                       |     
    0x00031b18 str r2, [r0, 0x60]                                |     *((r0 + 0x60)) = r2;
    0x00031b1a movs r1, r0                                       |     r1 = r0;
    0x00031b1c uxtb r6, r1                                       |     r6 = (int8_t) r1;
    0x00031b1e movs r2, r0                                       |     r2 = r0;
    0x00031b20 strh r4, [r5, 0x1e]                               |     *((r5 + 0x1e)) = r4;
    0x00031b22 movs r1, r0                                       |     r1 = r0;
    0x00031b24 ldrh r6, [r0, 0x18]                               |     r6 = *((r0 + 0x18));
    0x00031b26 movs r1, r0                                       |     r1 = r0;
    0x00031b28 ldrh r2, [r4, 0x16]                               |     r2 = *((r4 + 0x16));
    0x00031b2a movs r1, r0                                       |     r1 = r0;
    0x00031b2c strh r4, [r6, 0x16]                               |     *((r6 + 0x16)) = r4;
    0x00031b2e movs r1, r0                                       |     r1 = r0;
    0x00031b30 ldrh r2, [r0, 0x1a]                               |     r2 = *((r0 + 0x1a));
    0x00031b32 movs r1, r0                                       |     r1 = r0;
    0x00031b34 ldrh r4, [r2, 0x16]                               |     r4 = *((r2 + 0x16));
    0x00031b36 movs r1, r0                                       |     r1 = r0;
    0x00031b38 ldrh r2, [r4, 0x18]                               |     r2 = *((r4 + 0x18));
    0x00031b3a movs r1, r0                                       |     r1 = r0;
    0x00031b3c ldrh r0, [r4, 0x16]                               |     r0 = *((r4 + 0x16));
    0x00031b3e movs r1, r0                                       |     r1 = r0;
    0x00031b40 ldrh r0, [r7, 0x12]                               |     r0 = *((r7 + 0x12));
    0x00031b42 movs r1, r0                                       |     r1 = r0;
    0x00031b44 ldrh r4, [r6, 0x18]                               |     r4 = *((r6 + 0x18));
    0x00031b46 movs r1, r0                                       |     r1 = r0;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23558 */
                                                 | #include <stdint.h>
                                                 |  
                                                 | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                 |                                ((n & 0x0000ff00) <<  8) | \
                                                 |                                ((n & 0x00ff0000) >>  8) | \
                                                 |                                ((n & 0xff000000) >> 24)))
                                                 |  
    ; (fcn) sym.NET_DNS ()                       | void NET_DNS (int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_54h, int16_t arg_64h, int16_t arg_90h, int16_t arg_d0h, int16_t arg_2d0h, int16_t arg_4cch, int16_t arg_8cch, int16_t arg_10c0h, int16_t arg_20c0h, int16_t arg1, int16_t arg2) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     int16_t var_10h;
                                                 |     int16_t var_14h;
                                                 |     int16_t var_1ch;
                                                 |     int16_t var_20h;
                                                 |     int16_t var_24h;
                                                 |     int16_t var_28h;
                                                 |     int16_t var_2ch;
                                                 |     int16_t var_30h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 | label_12:
    0x000223dc svcmi 0xf0e92d                    |     __asm ("svcmi case.0x3207a.11");
    0x000223e0 sub.w sp, sp, 0x20c0              |     
    0x000223e4 ldr.w r7, [pc, 0xc40]             |     r7 = *(0x00023028);
    0x000223e8 sub sp, 0x14                      |     
    0x000223ea add r5, sp, 0xd0                  |     r5 += arg_d0h;
    0x000223ec add.w ip, sp, 0x20c0              |     
    0x000223f0 ldr.w r4, [pc, 0xc38]             |     r4 = *(0x0002302c);
    0x000223f4 mov r6, r0                        |     r6 = r0;
    0x000223f6 ldr.w r3, [pc, 0xc38]             |     
    0x000223f8 subs r4, 0x38                     |     r4 -= 0x38;
    0x000223fa add r7, pc                        |     r7 += pc;
    0x000223fc str r5, [sp, 0x24]                |     var_24h = r5;
    0x000223fe add.w ip, ip, 0xc                 |     
    0x00022402 add r4, pc                        |     r4 += pc;
    0x00022404 str r7, [sp, 0x4c]                |     *(arg_4ch) = r7;
    0x00022406 ldr r3, [r4, r3]                  |     r3 = *((r4 + r3));
    0x00022408 movs r0, 0                        |     r0 = 0;
    0x0002240a ldr r3, [r3]                      |     r3 = *(0x23032);
    0x0002240c str.w r3, [ip]                    |     __asm ("str.w r3, [ip]");
    0x00022410 mov.w r3, 0                       |     r3 = 0;
    0x00022414 ldr r3, [r6, 4]                   |     r3 = *((r6 + 4));
    0x00022416 strd r1, r2, [sp, 0x44]           |     __asm ("strd r1, r2, [sp, 0x44]");
    0x0002241a add.w r2, sp, 0x10c0              |     r2 += arg_10c0h;
    0x0002241e adds r2, 0x10                     |     r2 += 0x10;
    0x00022420 str r0, [sp, 0x64]                |     *(arg_64h) = r0;
    0x00022422 cmp r3, 6                         |     
    0x00022424 str r2, [sp, 0x20]                |     var_20h = r2;
    0x00022426 strb r0, [r2, -0x4]               |     *((r2 - 0x4)) = r0;
                                                 |     if (r3 > 6) {
    0x0002242a bgt.w 0x22646                     |         goto label_13;
                                                 |     }
    0x0002242e cmp r3, 0                         |     
                                                 |     if (r3 <= 0) {
    0x00022430 ble.w 0x22694                     |         goto label_14;
                                                 |     }
    0x00022434 ldr r2, [r6, 8]                   |     r2 = *((r6 + 8));
    0x00022436 cmp r3, 1                         |     
    0x00022438 add r4, sp, 0x90                  |     r4 += arg_90h;
    0x0002243a mov.w r1, 0                       |     r1 = 0;
    0x0002243e mov.w r3, 4                       |     r3 = 4;
    0x00022442 it eq                             |     
                                                 |     if (r3 != 1) {
    0x00022444 moveq r8, r0                      |         r8 = r0;
                                                 |     }
    0x00022446 ldr r7, [r2]                      |     r7 = *(r2);
    0x00022448 it ne                             |     
                                                 |     if (r3 == 1) {
    0x0002244a ldrne r8, [r2, 4]                 |         r8 = *((r2 + 4));
                                                 |     }
    0x0002244e ldr r2, [sp, 0x24]                |     r2 = var_24h;
    0x00022450 strd r1, r1, [r4, -0xc]           |     __asm ("strd r1, r1, [r4, -0xc]");
    0x00022454 strd r1, r1, [r4, -0x4]           |     __asm ("strd r1, r1, [r4, -0x4]");
    0x00022458 str r3, [r2, -0x50]               |     *((r2 - 0x50)) = r3;
    0x0002245c sub.w r2, r4, 0x10                |     r2 = r4 - 0x10;
    0x00022460 strd r1, r1, [r4, 4]              |     __asm ("strd r1, r1, [r4, 4]");
    0x00022464 str r1, [r4, 0xc]                 |     *((r4 + 0xc)) = r1;
                                                 |     if (r7 != 0) {
    0x00022466 cbz r7, 0x22470                   |         
    0x00022468 ldrb r3, [r7]                     |         r3 = *(r7);
    0x0002246a cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x0002246c bne.w 0x227e8                     |             goto label_15;
                                                 |         }
                                                 |     }
    0x00022470 movs r5, 2                        |     r5 = 2;
                                                 | label_8:
    0x00022472 cmp.w r8, 0                       |     
                                                 |     if (r8 != 0) {
    0x00022476 beq 0x22482                       |         
    0x00022478 ldrb.w r3, [r8]                   |         r3 = *(r8);
    0x0002247c cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x0002247e bne.w 0x22634                     |             goto label_16;
                                                 |         }
                                                 |     }
                                                 | label_2:
    0x00022482 ldr.w r1, [pc, 0xbb0]             |     
    0x00022486 addw r8, sp, 0x8cc                |     __asm ("addw r8, arg_8cch");
    0x0002248a mov.w r2, 0x800                   |     r2 = case.0x3207a.11;
    0x0002248e mov r0, r8                        |     r0 = r8;
    0x00022490 add r1, pc                        |     r1 = 0x454ca;
    0x00022492 bl 0x394f0                        |     zbx_strlcpy ();
                                                 | label_1:
    0x00022496 ldr.w sl, [r6, 4]                 |     sl = *((r6 + 4));
    0x0002249a cmp.w sl, 2                       |     
                                                 |     if (sl <= 2) {
    0x0002249e ble.w 0x22628                     |         goto label_17;
                                                 |     }
    0x000224a2 ldr r3, [r6, 8]                   |     r3 = *((r6 + 8));
    0x000224a4 ldr.w sb, [r3, 8]                 |     sb = *((r3 + 8));
    0x000224a8 str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x000224aa cmp.w sb, 0                       |     
                                                 |     if (sb != 0) {
    0x000224ae beq 0x224ba                       |         
    0x000224b0 ldrb.w r2, [sb]                   |         r2 = *(sb);
    0x000224b4 cmp r2, 0                         |         
                                                 |         if (r2 != 0) {
    0x000224b6 bne.w 0x22730                     |             goto label_18;
                                                 |         }
                                                 |     }
    0x000224ba mov.w sb, 6                       |     sb = 6;
                                                 | label_5:
    0x000224be cmp.w sl, 3                       |     
                                                 |     if (sl == 3) {
    0x000224c2 beq 0x224d2                       |         goto label_19;
                                                 |     }
    0x000224c4 ldr r3, [sp, 0x1c]                |     r3 = var_1ch;
    0x000224c6 ldr r0, [r3, 0xc]                 |     r0 = *((r3 + 0xc));
                                                 |     if (r0 == 0) {
    0x000224c8 cbz r0, 0x224d2                   |         goto label_19;
                                                 |     }
    0x000224ca ldrb r2, [r0]                     |     r2 = *(r0);
    0x000224cc cmp r2, 0                         |     
                                                 |     if (r2 != 0) {
    0x000224ce bne.w 0x22774                     |         goto label_20;
                                                 |     }
                                                 |     do {
                                                 | label_19:
    0x000224d2 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x000224d4 movs r2, 1                        |         r2 = 1;
    0x000224d6 str r2, [r3, -0x78]               |         *((r3 - 0x78)) = r2;
                                                 | label_6:
    0x000224da cmp.w sl, 4                       |         
                                                 |         if (sl > 4) {
    0x000224de ble 0x224ee                       |             
    0x000224e0 ldr r2, [r6, 8]                   |             r2 = *((r6 + 8));
    0x000224e2 ldr r0, [r2, 0x10]                |             r0 = *((r2 + 0x10));
                                                 |             if (r0 == 0) {
    0x000224e4 cbz r0, 0x224ee                   |                 goto label_21;
                                                 |             }
    0x000224e6 ldrb r2, [r0]                     |             r2 = *(r0);
    0x000224e8 cmp r2, 0                         |             
                                                 |             if (r2 != 0) {
    0x000224ea bne.w 0x227ae                     |                 goto label_22;
                                                 |             }
                                                 |         }
                                                 | label_21:
    0x000224ee ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x000224f0 movs r2, 2                        |         r2 = 2;
    0x000224f2 str r2, [r3, -0x74]               |         *((r3 - 0x74)) = r2;
                                                 | label_7:
    0x000224f6 cmp.w sl, 5                       |         
                                                 |         if (sl <= 5) {
    0x000224fa ble.w 0x2262e                     |             goto label_23;
                                                 |         }
    0x000224fe ldr r3, [r6, 8]                   |         r3 = *((r6 + 8));
    0x00022500 ldr r6, [r3, 0x14]                |         r6 = *((r3 + 0x14));
    0x00022502 cmp r6, 0                         |         
                                                 |         if (r6 == 0) {
    0x00022504 beq.w 0x2283c                     |             goto label_24;
                                                 |         }
    0x00022508 ldrb r3, [r6]                     |         r3 = *(r6);
    0x0002250a cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x0002250c bne.w 0x226b2                     |             goto label_25;
                                                 |         }
                                                 | label_3:
    0x00022510 str r3, [sp, 0x1c]                |         var_1ch = r3;
                                                 | label_0:
    0x00022512 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x00022514 mov.w fp, 0x200                   |         
    0x00022518 mov r2, fp                        |         r2 = fp;
    0x0002251a movs r1, 0                        |         r1 = 0;
    0x0002251c subs r6, r3, 4                    |         r6 = r3 - 4;
    0x0002251e mov r0, r6                        |         r0 = r6;
    0x00022520 blx 0xc1ac                        |         statvfs64 ();
    0x00022524 mov r0, r6                        |         r0 = r6;
    0x00022526 blx 0xc424                        |         fcn_0000c424 ();
    0x0002252a adds r0, 1                        |         r0++;
                                                 |         if (r0 == 1) {
    0x0002252c beq.w 0x22814                     |             goto label_26;
                                                 |         }
    0x00022530 mov r2, r8                        |         r2 = r8;
    0x00022532 mov.w r3, 0x400                   |         r3 = case.0x3207a.11;
    0x00022536 mov.w r8, 0                       |         r8 = 0;
    0x0002253a addw sl, sp, 0x4cc                |         __asm ("addw sl, arg_4cch");
    0x0002253e str.w sb, [sp]                    |         __asm ("str.w sb, [sp]");
    0x00022542 mov r1, r8                        |         r1 = r8;
    0x00022544 str r3, [sp, 0x14]                |         var_14h = r3;
    0x00022546 mov r0, r6                        |         r0 = r6;
    0x00022548 movs r3, 1                        |         r3 = 1;
    0x0002254a strd r8, r8, [sp, 8]              |         __asm ("strd r8, r8, [sp, 8]");
    0x0002254e str.w r8, [sp, 4]                 |         __asm ("str.w r8, [var_4h]");
    0x00022552 str.w sl, [sp, 0x10]              |         __asm ("str.w sl, [var_10h]");
    0x00022556 blx 0xbc94                        |         r0 = fcn_0000bc94 ();
    0x0002255a cmp.w r0, -1                      |         
    0x0002255e mov sb, r0                        |         sb = r0;
                                                 |         if (r0 == -1) {
    0x00022560 beq.w 0x23212                     |             goto label_27;
                                                 |         }
    0x00022564 cmp r7, 0                         |         
                                                 |         if (r7 == 0) {
    0x00022566 beq.w 0x22840                     |             goto label_28;
                                                 |         }
    0x0002256a ldrb r2, [r7]                     |         r2 = *(r7);
    0x0002256c subs r2, 0                        |         
    0x0002256e it ne                             |         
                                                 |         if (r2 == 0) {
    0x00022570 movne r2, 1                       |             r2 = 1;
                                                 |         }
    0x00022572 cmp r5, 2                         |         
    0x00022574 ite ne                            |         
                                                 |         if (r5 == 2) {
    0x00022576 movne r3, 0                       |             r3 = 0;
                                                 |         }
                                                 |         if (r5 != 2) {
    0x00022578 andeq r3, r2, 1                   |             r3 = r2 & 1;
                                                 |         }
    0x0002257c cmp r3, 0                         |         
                                                 |         if (r3 != 0) {
    0x0002257e bne.w 0x232a6                     |             goto label_29;
                                                 |         }
    0x00022582 sub.w r5, r5, 0xa                 |         r5 -= 0xa;
    0x00022586 clz r5, r5                        |         r5 &= r5;
    0x0002258a lsrs r5, r5, 5                    |         r5 >>= 5;
    0x0002258c ands.w r8, r5, r2                 |         r8 = r5 & r2;
                                                 |         if (r8 != r5) {
    0x00022590 bne.w 0x232d2                     |             goto label_30;
                                                 |         }
                                                 | label_11:
    0x00022594 ldr r1, [sp, 0x1c]                |         r1 = var_1ch;
    0x00022596 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x00022598 ldrd r2, r3, [r3, -0x78]          |         __asm ("ldrd r2, r3, [r3, -0x78]");
    0x0002259c cmp r1, 0                         |         
                                                 |         if (r1 != 0) {
    0x0002259e bne.w 0x22700                     |             goto label_31;
                                                 |         }
    0x000225a2 ldr r1, [sp, 0x24]                |         r1 = var_24h;
    0x000225a4 add.w r8, sp, 0x2d0               |         r8 += arg_2d0h;
    0x000225a8 mov r0, r6                        |         r0 = r6;
    0x000225aa strd r2, r3, [r1, -0x4]           |         __asm ("strd r2, r3, [r1, -0x4]");
    0x000225ae mov.w r3, 0x200                   |         r3 = case.0x3207a.11;
    0x000225b2 mov r2, sb                        |         r2 = sb;
    0x000225b4 str r3, [sp]                      |         *(sp) = r3;
    0x000225b6 mov r1, sl                        |         r1 = sl;
    0x000225b8 sub.w r3, r8, 4                   |         r3 = r8 - 4;
    0x000225bc str r3, [sp, 0x30]                |         var_30h = r3;
    0x000225be blx 0xc108                        |         r0 = fcn_0000c108 ();
    0x000225c2 mov sb, r0                        |         sb = r0;
                                                 | label_4:
    0x000225c4 ldrb r3, [r7]                     |         r3 = *(r7);
    0x000225c6 cmp r3, 0                         |         
    0x000225c8 ite eq                            |         
                                                 |         if (r3 != 0) {
    0x000225ca moveq r5, 0                       |             r5 = 0;
                                                 |         }
                                                 |         if (r3 == 0) {
    0x000225cc andne r5, r5, 1                   |             r5 &= 1;
                                                 |         }
    0x000225d0 cmp r5, 0                         |         
                                                 |         if (r5 != 0) {
    0x000225d2 bne.w 0x23252                     |             goto label_32;
                                                 |         }
                                                 | label_9:
    0x000225d6 mov r0, r6                        |         r0 = r6;
    0x000225d8 blx 0xc3c4                        |         fcn_0000c3c4 ();
    0x000225dc ldr r3, [sp, 0x48]                |         r3 = *(arg_48h);
    0x000225de cmp r3, 1                         |         
                                                 |         if (r3 == 1) {
    0x000225e0 beq.w 0x231ae                     |             goto label_33;
                                                 |         }
    0x000225e4 ldr r3, [sp, 0x20]                |         r3 = var_20h;
    0x000225e6 subw r2, r3, 0xe04                |         __asm ("subw r2, r3, case.0x3207a.11");
    0x000225ea ldrb r3, [r2, 3]                  |         r3 = *((r2 + 3));
    0x000225ec lsls r1, r3, 0x1c                 |         r1 = r3 << 0x1c;
                                                 |         if (r1 == r3) {
    0x000225ee bne 0x22602                       |             
    0x000225f0 ldrh r3, [r2, 6]                  |             r3 = *((r2 + 6));
    0x000225f2 rev16 r3, r3                      |             __asm ("rev16 r3, r3");
    0x000225f4 uxth r3, r3                       |             r3 = (int16_t) r3;
    0x000225f6 cmp.w sb, -1                      |             
    0x000225fa it ne                             |             
                                                 |             if (sb != -1) {
    0x000225fc cmpne r3, 0                       |                 __asm ("cmpne r3, 0");
                                                 |             }
                                                 |             if (sb != -1) {
    0x000225fe bne.w 0x22878                     |                 goto label_34;
                                                 |             }
                                                 |         }
    0x00022602 ldr r5, [sp, 0x44]                |         r5 = *(arg_44h);
    0x00022604 movs r2, 0                        |         r2 = 0;
    0x00022606 ldr.w r3, [pc, 0xa30]             |         r3 = *(0x00023038);
    0x0002260a movw r1, 0x26d                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002260e movs r4, 1                        |         r4 = 1;
    0x00022610 ldr r0, [r5, 0x28]                |         r0 = *((r5 + 0x28));
    0x00022612 add r3, pc                        |         r3 += pc;
    0x00022614 orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x00022618 str r0, [r5, 0x28]                |         *((r5 + 0x28)) = r0;
    0x0002261a ldr.w r0, [pc, 0xa20]             |         r0 = *(0x0002303c);
    0x0002261e add r0, pc                        |         r0 += pc;
    0x00022620 bl 0x35d28                        |         zbx_strdup2 ();
    0x00022624 str r0, [r5, 0x20]                |         *((r5 + 0x20)) = r0;
    0x00022626 b 0x22668                         |         void (*0x22668)() ();
                                                 | label_17:
    0x00022628 mov.w sb, 6                       |         sb = 6;
    0x0002262c b 0x224d2                         |         
                                                 |     } while (1);
                                                 | label_23:
    0x0002262e movs r3, 0                        |     r3 = 0;
    0x00022630 str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x00022632 b 0x22512                         |     goto label_0;
                                                 | label_16:
    0x00022634 mov r1, r8                        |     r1 = r8;
    0x00022636 addw r8, sp, 0x8cc                |     __asm ("addw r8, arg_8cch");
    0x0002263a mov.w r2, 0x800                   |     r2 = case.0x3207a.11;
    0x0002263e mov r0, r8                        |     r0 = r8;
    0x00022640 bl 0x394f0                        |     zbx_strlcpy ();
    0x00022644 b 0x22496                         |     goto label_1;
                                                 | label_13:
    0x00022646 ldr r4, [r1, 0x28]                |     r4 = *((r1 + 0x28));
    0x00022648 mov r2, r0                        |     r2 = r0;
    0x0002264a ldr.w r3, [pc, 0x9f4]             |     r3 = *(0x00023040);
    0x0002264e mov r5, r1                        |     r5 = r1;
    0x00022650 ldr.w r0, [pc, 0x9f0]             |     
    0x00022654 movs r1, 0xe9                     |     r1 = 0xe9;
    0x00022656 orr r4, r4, 0x20                  |     r4 |= 0x20;
    0x0002265a str r4, [r5, 0x28]                |     *((r5 + 0x28)) = r4;
    0x0002265c movs r4, 1                        |     r4 = 1;
    0x0002265e add r3, pc                        |     r3 += pc;
    0x00022660 add r0, pc                        |     r0 = 0x456a8;
    0x00022662 bl 0x35d28                        |     zbx_strdup2 ();
    0x00022666 str r0, [r5, 0x20]                |     *((r5 + 0x20)) = r0;
                                                 | label_14:
    0x00022694 ldr r2, [sp, 0x24]                |     r2 = var_24h;
    0x00022696 add r4, sp, 0x90                  |     r4 += arg_90h;
    0x00022698 movs r3, 4                        |     r3 = 4;
    0x0002269a mov r7, r0                        |     r7 = r0;
    0x0002269c movs r5, 2                        |     r5 = 2;
    0x0002269e strd r0, r0, [r4, -0xc]           |     __asm ("strd r0, r0, [r4, -0xc]");
    0x000226a2 strd r0, r0, [r4, -0x4]           |     __asm ("strd r0, r0, [r4, -0x4]");
    0x000226a6 strd r0, r0, [r4, 4]              |     __asm ("strd r0, r0, [r4, 4]");
    0x000226aa str r3, [r2, -0x50]               |     *((r2 - 0x50)) = r3;
    0x000226ae str r0, [r4, 0xc]                 |     *((r4 + 0xc)) = r0;
    0x000226b0 b 0x22482                         |     goto label_2;
                                                 | label_25:
    0x000226b2 ldr.w r1, [pc, 0x998]             |     
    0x000226b6 mov r0, r6                        |     r0 = r6;
    0x000226b8 add r1, pc                        |     r1 = 0x4570a;
    0x000226ba blx 0xbc58                        |     fcn_0000bc58 ();
    0x000226be str r0, [sp, 0x1c]                |     var_1ch = r0;
    0x000226c0 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x000226c2 beq.w 0x22512                     |         goto label_0;
                                                 |     }
    0x000226c6 ldr.w r1, [pc, 0x988]             |     
    0x000226ca mov r0, r6                        |     r0 = r6;
    0x000226cc add r1, pc                        |     r1 = 0x45722;
    0x000226ce blx 0xbc58                        |     fcn_0000bc58 ();
    0x000226d2 movs r3, 1                        |     r3 = 1;
    0x000226d4 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x000226d6 beq.w 0x22510                     |         goto label_3;
                                                 |     }
    0x000226da ldr r5, [sp, 0x44]                |     r5 = *(arg_44h);
    0x000226dc movs r2, 0                        |     r2 = 0;
    0x000226de ldr.w r3, [pc, 0x974]             |     r3 = *(0x00023054);
    0x000226e0 subs r1, 0x74                     |     r1 -= 0x74;
    0x000226e2 mov.w r1, 0x132                   |     r1 = case.0x3207a.11;
    0x000226e6 movs r4, 1                        |     r4 = 1;
    0x000226e8 ldr r0, [r5, 0x28]                |     r0 = *((r5 + 0x28));
    0x000226ea add r3, pc                        |     r3 += pc;
    0x000226ec orr r0, r0, 0x20                  |     r0 |= 0x20;
    0x000226f0 str r0, [r5, 0x28]                |     *((r5 + 0x28)) = r0;
    0x000226f2 ldr.w r0, [pc, 0x964]             |     r0 = *(0x00023058);
    0x000226f6 add r0, pc                        |     r0 += pc;
    0x000226f8 bl 0x35d28                        |     zbx_strdup2 ();
    0x000226fc str r0, [r5, 0x20]                |     *((r5 + 0x20)) = r0;
    0x000226fe b 0x22668                         |     void (*0x22668)() ();
                                                 | label_31:
    0x00022700 ldr r0, [sp, 0x24]                |     r0 = var_24h;
    0x00022702 add.w r8, sp, 0x2d0               |     r8 += arg_2d0h;
    0x00022706 mov r1, sl                        |     r1 = sl;
    0x00022708 strd r2, r3, [r0, -0x4]           |     __asm ("strd r2, r3, [r0, -0x4]");
    0x0002270c mov r2, sb                        |     r2 = sb;
    0x0002270e ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x00022710 orr r3, r3, 8                     |     r3 |= 8;
    0x00022714 str r3, [r0, 4]                   |     *((r0 + 4)) = r3;
    0x00022716 sub.w r3, r8, 4                   |     r3 = r8 - 4;
    0x0002271a mov r0, r3                        |     r0 = r3;
    0x0002271c str r3, [sp, 0x30]                |     var_30h = r3;
    0x0002271e mov.w r3, 0x200                   |     r3 = case.0x3207a.11;
    0x00022722 str r3, [sp]                      |     *(sp) = r3;
    0x00022724 mov r3, r0                        |     r3 = r0;
    0x00022726 mov r0, r6                        |     r0 = r6;
    0x00022728 blx 0xc108                        |     r0 = fcn_0000c108 ();
    0x0002272c mov sb, r0                        |     sb = r0;
    0x0002272e b 0x225c4                         |     goto label_4;
                                                 | label_18:
    0x00022730 ldr.w r3, [pc, 0x928]             |     
    0x00022734 mov.w fp, 0                       |     
    0x00022738 ldr.w r0, [pc, 0x924]             |     
    0x0002273c str r4, [sp, 0x28]                |     var_28h = r4;
    0x0002273e mov r4, fp                        |     r4 = fp;
    0x00022740 add r3, pc                        |     r3 = 0x457a0;
    0x00022742 mov fp, sb                        |     
    0x00022744 add r0, pc                        |     r0 = 0x457a8;
    0x00022746 mov sb, r3                        |     sb = r3;
    0x00022748 b 0x22756                         |     
                                                 |     while (r0 != 0) {
    0x0002274a adds r4, 1                        |         r4++;
    0x0002274c ldr.w r0, [sb, r4, lsl 3]         |         offset_0 = r4 << 3;
                                                 |         r0 = *((sb + offset_0));
    0x00022750 cmp r0, 0                         |         
                                                 |         if (r0 == 0) {
    0x00022752 beq.w 0x23438                     |             goto label_35;
                                                 |         }
    0x00022756 mov r1, fp                        |         r1 = fp;
    0x00022758 blx 0xbf24                        |         r0 = tzset ();
    0x0002275c cmp r0, 0                         |         
    0x0002275e bne 0x2274a                       |         
                                                 |     }
    0x00022760 ldr.w r2, [pc, 0x900]             |     r2 = sym.zbx_dservice_type_string;
    0x00022764 mov fp, r4                        |     
    0x00022766 ldr r4, [sp, 0x28]                |     r4 = var_28h;
    0x00022768 add r2, pc                        |     r2 += pc;
    0x0002276a add.w r2, r2, fp, lsl 3           |     r2 += (fp << 3);
    0x0002276e ldr.w sb, [r2, 4]                 |     sb = *((r2 + 4));
    0x00022772 b 0x224be                         |     goto label_5;
                                                 | label_20:
    0x00022774 vmov.i32 d16, 0                   |     __asm ("vmov.i32 d16, 0");
    0x00022778 mvn sl, 0x80000000                |     sl = ~case.0x3207a.11;
    0x0002277c mov.w fp, 0                       |     
    0x00022780 movs r3, 4                        |     r3 = 4;
    0x00022782 sub.w r2, r4, 0x38                |     r2 = r4 - 0x38;
    0x00022786 mov.w r1, -1                      |     r1 = -1;
    0x0002278a vstr d16, [sp]                    |     __asm ("vstr d16, [sp]");
    0x0002278e strd sl, fp, [sp, 8]              |     __asm ("strd sl, fp, [sp, 8]");
    0x00022792 bl 0x367c8                        |     r0 = is_uint_n_range ();
    0x00022796 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00022798 bne.w 0x2325e                     |         goto label_36;
                                                 |     }
    0x0002279c ldr r3, [sp, 0x24]                |     r3 = var_24h;
    0x0002279e ldr r3, [r3, -0x78]               |     r3 = *((r3 - 0x78));
    0x000227a2 cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x000227a4 beq.w 0x2325e                     |         goto label_36;
                                                 |     }
    0x000227a8 ldr.w sl, [r6, 4]                 |     sl = *((r6 + 4));
    0x000227ac b 0x224da                         |     goto label_6;
                                                 | label_22:
    0x000227ae vmov.i32 d16, 0                   |     __asm ("vmov.i32 d16, 0");
    0x000227b2 mvn sl, 0x80000000                |     sl = ~case.0x3207a.11;
    0x000227b6 mov.w fp, 0                       |     
    0x000227b8 lsrs r0, r0, 0xc                  |     r0 >>= 0xc;
    0x000227ba movs r3, 4                        |     r3 = 4;
    0x000227bc sub.w r2, r4, 0x34                |     r2 = r4 - 0x34;
    0x000227c0 mov.w r1, -1                      |     r1 = -1;
    0x000227c4 vstr d16, [sp]                    |     __asm ("vstr d16, [sp]");
    0x000227c8 strd sl, fp, [sp, 8]              |     __asm ("strd sl, fp, [sp, 8]");
    0x000227cc bl 0x367c8                        |     r0 = is_uint_n_range ();
    0x000227d0 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000227d2 bne.w 0x23282                     |         goto label_37;
                                                 |     }
    0x000227d6 ldr r3, [sp, 0x24]                |     r3 = var_24h;
    0x000227d8 ldr r3, [r3, -0x74]               |     r3 = *((r3 - 0x74));
    0x000227dc cmp r3, 0                         |     
                                                 |     if (r3 == 0) {
    0x000227de beq.w 0x23282                     |         goto label_37;
                                                 |     }
    0x000227e2 ldr.w sl, [r6, 4]                 |     sl = *((r6 + 4));
    0x000227e6 b 0x224f6                         |     goto label_7;
                                                 | label_15:
    0x000227e8 sub.w r3, r4, 0x2c                |     r3 = r4 - 0x2c;
    0x000227ec mov r0, r7                        |     r0 = r7;
    0x000227ee blx 0xc3e8                        |     fcn_0000c3e8 ();
    0x000227f2 ldr r3, [sp, 0x24]                |     r3 = var_24h;
                                                 |     if (r0 != 0) {
    0x000227f4 cbnz r0, 0x22808                  |         goto label_38;
                                                 |     }
    0x000227f6 ldr r0, [r3, -0x6c]               |     r0 = *((r3 - 0x6c));
    0x000227fa ldr r5, [r0, 4]                   |     r5 = *((r0 + 4));
    0x000227fc cmp r5, 0xa                       |     
    0x000227fe it ne                             |     
    0x00022800 movne r5, 2                       |     r5 = 2;
                                                 |     while (r0 != 0) {
    0x00022802 blx 0xc3dc                        |         fcn_0000c3dc ();
    0x00022806 b 0x22472                         |         goto label_8;
                                                 | label_38:
    0x00022808 ldr r0, [r3, -0x6c]               |         r0 = *((r3 - 0x6c));
    0x0002280c movs r5, 2                        |         r5 = 2;
    0x0002280e cmp r0, 0                         |         
    0x00022810 bne 0x22802                       |         
                                                 |     }
    0x00022812 b 0x22472                         |     goto label_8;
                                                 | label_26:
    0x00022814 ldr r5, [sp, 0x44]                |     r5 = *(arg_44h);
    0x00022816 movs r4, 1                        |     r4 = 1;
    0x00022818 ldr r3, [r5, 0x28]                |     r3 = *((r5 + 0x28));
    0x0002281a orr r3, r3, 0x20                  |     r3 |= 0x20;
    0x0002281e str r3, [r5, 0x28]                |     *((r5 + 0x28)) = r3;
    0x00022820 blx 0xc15c                        |     r0 = fcn_0000c15c ();
    0x00022824 ldr r0, [r0]                      |     r0 = *(r0);
    0x00022826 bl 0x26fdc                        |     zbx_strerror ();
    0x0002282a ldr.w r1, [pc, 0x83c]             |     r1 = *(0x00023068);
    0x0002282e mov r2, r0                        |     r2 = r0;
    0x00022830 movs r0, 0                        |     r0 = 0;
    0x00022832 add r1, pc                        |     r1 += pc;
    0x00022834 bl 0x396b0                        |     zbx_dsprintf ()
    0x00022838 str r0, [r5, 0x20]                |     *((r5 + 0x20)) = r0;
    0x0002283a b 0x22668                         |     void (*0x22668)() ();
                                                 | label_24:
    0x0002283c str r6, [sp, 0x1c]                |     var_1ch = r6;
    0x0002283e b 0x22512                         |     goto label_0;
                                                 | label_28:
    0x00022840 ldr r1, [sp, 0x1c]                |     r1 = var_1ch;
    0x00022842 ldr r3, [sp, 0x24]                |     r3 = var_24h;
    0x00022844 ldrd r2, r3, [r3, -0x78]          |     __asm ("ldrd r2, r3, [r3, -0x78]");
    0x00022848 cmp r1, 0                         |     
                                                 |     if (r1 == 0) {
    0x0002284a beq.w 0x231e8                     |         goto label_39;
                                                 |     }
    0x0002284e ldr r0, [sp, 0x24]                |     r0 = var_24h;
    0x00022850 mov r1, sl                        |     r1 = sl;
    0x00022852 str.w fp, [sp]                    |     __asm ("str.w fp, [sp]");
    0x00022856 strd r2, r3, [r0, -0x4]           |     __asm ("strd r2, r3, [r0, -0x4]");
    0x0002285a mov r2, sb                        |     r2 = sb;
    0x0002285c ldr r3, [r0, 4]                   |     r3 = *((r0 + 4));
    0x0002285e orr r3, r3, 8                     |     r3 |= 8;
    0x00022862 str r3, [r0, 4]                   |     *((r0 + 4)) = r3;
                                                 | label_10:
    0x00022864 add.w r8, sp, 0x2d0               |     r8 += arg_2d0h;
    0x00022868 mov r0, r6                        |     r0 = r6;
    0x0002286a sub.w r3, r8, 4                   |     r3 = r8 - 4;
    0x0002286e str r3, [sp, 0x30]                |     var_30h = r3;
    0x00022870 blx 0xc108                        |     r0 = fcn_0000c108 ();
    0x00022874 mov sb, r0                        |     sb = r0;
    0x00022876 b 0x225d6                         |     goto label_9;
                                                 | label_34:
    0x00022878 ldrh r2, [r2, 4]                  |     r2 = *((r2 + 4));
    0x0002287a sub.w r0, r4, 0x28                |     r0 = r4 - 0x28;
    0x0002287e str r3, [sp, 0x2c]                |     var_2ch = r3;
    0x00022880 add.w r8, r8, 8                   |     r8 += 8;
    0x00022884 ldr r3, [sp, 0x30]                |     r3 = var_30h;
    0x00022886 mov sl, r8                        |     sl = r8;
    0x00022888 rev16 r4, r2                      |     __asm ("rev16 r4, r2");
    0x0002288a str r0, [sp, 0x40]                |     *(arg_40h) = r0;
    0x0002288c uxth r4, r4                       |     r4 = (int16_t) r4;
    0x0002288e add.w r5, r3, sb                  |     r5 = r3 + sb;
    0x00022892 str r5, [sp, 0x1c]                |     var_1ch = r5;
    0x00022894 bl 0x28fb4                        |     zbx_vector_str_create ();
    0x00022898 cmp r4, 0                         |     
    0x0002289a it ne                             |     
                                                 |     if (r4 != 0) {
    0x0002289c cmpne r5, r8                      |         __asm ("cmpne r5, r8");
                                                 |     }
                                                 |     if (r4 < 0) {
    0x0002289e bls 0x228c0                       |         goto label_40;
                                                 |     }
                                                 |     do {
    0x000228a0 mov r0, sl                        |         r0 = sl;
    0x000228a2 mov r1, r5                        |         r1 = r5;
    0x000228a4 blx 0xbe24                        |         fcn_0000be24 ();
    0x000228a8 subs r4, 1                        |         r4--;
    0x000228aa adds r0, 4                        |         r0 += 4;
    0x000228ac cmp r4, 0                         |         
    0x000228ae add sl, r0                        |         sl += r0;
    0x000228b0 ite le                            |         
                                                 |         if (r4 > 0) {
    0x000228b2 movle r3, 0                       |             r3 = 0;
                                                 |         }
                                                 |         if (r4 <= 0) {
    0x000228b4 movgt r3, 1                       |             r3 = 1;
                                                 |         }
    0x000228b6 cmp sl, r5                        |         
    0x000228b8 it hs                             |         
                                                 |         if (sl < r5) {
    0x000228ba movhs r3, 0                       |             r3 = 0;
                                                 |         }
    0x000228bc cmp r3, 0                         |         
    0x000228be bne 0x228a0                       |         
                                                 |     } while (r3 != 0);
                                                 | label_40:
    0x000228c0 ldr r3, [sp, 0x1c]                |     r3 = var_1ch;
    0x000228c2 cmp sl, r3                        |     
                                                 |     if (sl < r3) {
    0x000228c4 bhs.w 0x234c4                     |         
    0x000228c8 ldr.w r3, [pc, 0x7a0]             |         r3 = *(0x0002306c);
    0x000228cc mov r4, sl                        |         r4 = sl;
    0x000228ce ldr.w sb, [pc, 0x7a0]             |         sb = *(0x00023070);
    0x000228d2 add r3, pc                        |         r3 += pc;
    0x000228d4 str r3, [sp, 0x28]                |         var_28h = r3;
    0x000228d6 add sb, pc                        |         sb += pc;
    0x000228d8 ldr.w r3, [pc, 0x798]             |         
    0x000228dc add r3, pc                        |         r3 = 0x45954;
    0x000228de str r3, [sp, 0x54]                |         *(arg_54h) = r3;
                                                 | label_33:
    0x000231ae ldr r3, [sp, 0x20]                |         r3 = var_20h;
    0x000231b0 ldr r0, [sp, 0x44]                |         r0 = *(arg_44h);
    0x000231b2 subw r1, r3, 0xe04                |         __asm ("subw r1, r3, case.0x3207a.11");
    0x000231b6 ldr r2, [r0, 0x28]                |         r2 = *((r0 + 0x28));
    0x000231b8 ldrb r3, [r1, 3]                  |         r3 = *((r1 + 3));
    0x000231ba orr r2, r2, 1                     |         r2 |= 1;
    0x000231be ands r3, r3, 0xf                  |         r3 &= 0xf;
    0x000231c2 str r2, [r0, 0x28]                |         *((r0 + 0x28)) = r2;
    0x000231c4 itt ne                            |         
                                                 |         if (r3 == r3) {
    0x000231c6 movne r2, 0                       |             r2 = 0;
                                                 |         }
                                                 |         if (r3 == r3) {
    0x000231c8 movne r3, r2                      |             r3 = r2;
                                                 |         }
                                                 |         if (r3 == r3) {
    0x000231ca bne 0x231dc                       |             
    0x000231cc ldrh r2, [r1, 6]                  |             r2 = *((r1 + 6));
    0x000231ce cmp.w sb, -1                      |             
    0x000231d2 it ne                             |             
                                                 |             if (sb != -1) {
    0x000231d4 cmpne r2, 0                       |                 __asm ("cmpne r2, 0");
                                                 |             }
    0x000231d6 ite ne                            |             
                                                 |             if (sb == -1) {
    0x000231d8 movne r2, 1                       |                 r2 = 1;
                                                 |             }
                                                 |             if (sb == -1) {
    0x000231da moveq r2, 0                       |                 r2 = 0;
                                                 |                 goto label_41;
                                                 |             }
                                                 |         }
                                                 | label_41:
    0x000231dc ldr r1, [sp, 0x44]                |         r1 = *(arg_44h);
    0x000231de movs r4, 0                        |         r4 = 0;
    0x000231e0 strd r2, r3, [r1, 8]              |         __asm ("strd r2, r3, [r1, 8]");
    0x000231e4 b.w 0x22668                       |         void (*0x22668)() ();
                                                 | label_39:
    0x000231e8 ldr r1, [sp, 0x24]                |         r1 = var_24h;
    0x000231ea str.w fp, [sp]                    |         __asm ("str.w fp, [sp]");
    0x000231ee strd r2, r3, [r1, -0x4]           |         __asm ("strd r2, r3, [r1, -0x4]");
    0x000231f2 mov r2, sb                        |         r2 = sb;
    0x000231f4 mov r1, sl                        |         r1 = sl;
    0x000231f6 b.w 0x22864                       |         goto label_10;
                                                 | label_27:
    0x00023212 ldr r5, [sp, 0x44]                |         r5 = *(arg_44h);
    0x00023214 movs r4, 1                        |         r4 = 1;
    0x00023216 ldr r3, [r5, 0x28]                |         r3 = *((r5 + 0x28));
    0x00023218 orr r3, r3, 0x20                  |         r3 |= 0x20;
    0x0002321c str r3, [r5, 0x28]                |         *((r5 + 0x28)) = r3;
    0x0002321e blx 0xc15c                        |         r0 = fcn_0000c15c ();
    0x00023222 ldr r0, [r0]                      |         r0 = *(r0);
    0x00023224 bl 0x26fdc                        |         zbx_strerror ();
    0x00023228 ldr r1, [pc, 0x2bc]               |         
    0x0002322a mov r2, r0                        |         r2 = r0;
    0x0002322c mov r0, r8                        |         r0 = r8;
    0x0002322e add r1, pc                        |         r1 = 0x4671a;
    0x00023230 bl 0x396b0                        |         zbx_dsprintf ()
    0x00023234 str r0, [r5, 0x20]                |         *((r5 + 0x20)) = r0;
    0x00023236 b.w 0x22668                       |         void (*0x22668)() ();
    0x00023238 rev r7, r2                        |         r2 = SWAP32 (r7);
                                                 | label_32:
    0x00023252 ldr r3, [sp, 0x24]                |         r3 = var_24h;
    0x00023254 ldr r2, [sp, 0x2c]                |         r2 = var_2ch;
    0x00023256 str.w r2, [r3, 0x1e0]             |         __asm ("str.w r2, case.0x3207a.11");
    0x0002325a b.w 0x225d6                       |         goto label_9;
                                                 | label_36:
    0x0002325e ldr r5, [sp, 0x44]                |         r5 = *(arg_44h);
    0x00023260 movs r2, 0                        |         r2 = 0;
    0x00023262 ldr r3, [pc, 0x28c]               |         
    0x00023264 mov.w r1, 0x11c                   |         r1 = case.0x3207a.11;
    0x00023268 movs r4, 1                        |         r4 = 1;
    0x0002326a ldr r0, [r5, 0x28]                |         r0 = *((r5 + 0x28));
    0x0002326c add r3, pc                        |         r3 = 0x46762;
    0x0002326e orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x00023270 movs r0, r4                       |         r0 = r4;
    0x00023272 str r0, [r5, 0x28]                |         *((r5 + 0x28)) = r0;
    0x00023274 ldr r0, [pc, 0x27c]               |         
    0x00023276 add r0, pc                        |         r0 = 0x4676e;
    0x00023278 bl 0x35d28                        |         zbx_strdup2 ();
    0x0002327c str r0, [r5, 0x20]                |         *((r5 + 0x20)) = r0;
    0x0002327e b.w 0x22668                       |         void (*0x22668)() ();
                                                 | label_37:
    0x00023282 ldr r5, [sp, 0x44]                |         r5 = *(arg_44h);
    0x00023284 movs r2, 0                        |         r2 = 0;
    0x00023286 ldr r3, [pc, 0x270]               |         
    0x00023288 mov.w r1, 0x126                   |         r1 = case.0x3207a.11;
    0x0002328c movs r4, 1                        |         r4 = 1;
    0x0002328e ldr r0, [r5, 0x28]                |         r0 = *((r5 + 0x28));
    0x00023290 add r3, pc                        |         r3 = 0x4678e;
    0x00023292 orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x00023296 str r0, [r5, 0x28]                |         *((r5 + 0x28)) = r0;
    0x00023298 ldr r0, [pc, 0x260]               |         
    0x0002329a add r0, pc                        |         r0 = 0x4679a;
    0x0002329c bl 0x35d28                        |         zbx_strdup2 ();
    0x000232a0 str r0, [r5, 0x20]                |         *((r5 + 0x20)) = r0;
    0x000232a2 b.w 0x22668                       |         void (*0x22668)() ();
                                                 | label_29:
    0x000232a6 sub.w r1, r4, 0x30                |         r1 = r4 - 0x30;
    0x000232aa mov r0, r7                        |         r0 = r7;
    0x000232ac blx 0xbc0c                        |         r0 = inet_aton (r0, r1);
    0x000232b0 mov r2, r0                        |         r2 = r0;
    0x000232b2 cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x000232b4 beq.w 0x2347e                     |             
    0x000232b8 ldr r2, [sp, 0x24]                |             r2 = var_24h;
    0x000232ba mov r5, r8                        |             r5 = r8;
    0x000232bc ldr r3, [r2, -0x70]               |             r3 = *((r2 - 0x70));
    0x000232c0 str r3, [r2, 0x10]                |             *((r2 + 0x10)) = r3;
    0x000232c2 movs r3, 2                        |             
    0x000232c4 movt r3, 0x3500                   |             r3 = 0x2;
    0x000232c8 str r3, [r2, 0xc]                 |             *((r2 + 0xc)) = r3;
    0x000232ca movs r3, 1                        |             r3 = 1;
    0x000232cc str r3, [r2, 8]                   |             *((r2 + 8)) = r3;
    0x000232ce b.w 0x22594                       |             goto label_11;
                                                 | label_30:
    0x000232d2 str r3, [sp, 0x28]                |             var_28h = r3;
    0x000232d4 mov r1, r7                        |             r1 = r7;
    0x000232d6 ldr r3, [sp, 0x24]                |             r3 = var_24h;
    0x000232d8 movs r0, 0xa                      |             r0 = 0xa;
    0x000232da sub.w fp, r3, 0x30                |             
    0x000232de mov r2, fp                        |             r2 = fp;
    0x000232e0 blx 0xbd44                        |             clock_gettime ();
    0x000232e4 ldr r3, [sp, 0x28]                |             r3 = var_28h;
    0x000232e6 mov r2, r0                        |             r2 = r0;
    0x000232e8 cmp r0, 0                         |             
                                                 |             if (r0 != 0) {
    0x000232ea beq.w 0x2345c                     |                 
    0x000232ee ldr r1, [sp, 0x24]                |                 r1 = var_24h;
    0x000232f0 mov.w r2, -1                      |                 r2 = -1;
    0x000232f4 mov r5, r8                        |                 r5 = r8;
    0x000232f6 str r3, [r1, -0x1c]               |                 *((r1 - 0x1c)) = r3;
    0x000232fa sub.w ip, r1, 0x18                |                 
    0x000232fe str r3, [r1, -0x8]                |                 *((r1 - 0x8)) = r3;
    0x00023302 strd r3, r3, [r1, 0xc]            |                 __asm ("strd r3, r3, [r1, 0xc]");
    0x00023306 strd r3, r3, [r1, 0x14]           |                 __asm ("strd r3, r3, [r1, 0x14]");
    0x0002330a movs r3, 0xa                      |                 
    0x0002330c movt r3, 0x3500                   |                 r3 = 0xa;
    0x00023310 str.w r2, [r1, 0x1d0]             |                 __asm ("str.w r2, case.0x3207a.11");
    0x00023314 str r3, [r1, -0x20]               |                 *((r1 - 0x20)) = r3;
    0x00023318 movs r3, 1                        |                 r3 = 1;
    0x0002331a mov r2, r1                        |                 r2 = r1;
    0x0002331c strh.w r3, [r1, 0x1dc]            |                 r3 = case.0x3207a.11;
    0x00023320 str r3, [r1, 8]                   |                 *((r1 + 8)) = r3;
    0x00023322 sub.w r3, r1, 0x20                |                 r3 = r1 - 0x20;
    0x00023326 ldr.w r1, [r1, 0x1e0]             |                 r1 = case.0x3207a.11;
    0x0002332a str.w r3, [r2, 0x1e0]             |                 __asm ("str.w r3, case.0x3207a.11");
    0x0002332e str r1, [sp, 0x2c]                |                 var_2ch = r1;
    0x00023330 ldm.w fp, {r0, r1, r2, r3}        |                 r0 = *(fp);
                                                 |                 r1 = *((fp + 4));
                                                 |                 r2 = *((fp + 8));
                                                 |                 r3 = *((fp + 12));
    0x00023334 stm.w ip, {r0, r1, r2, r3}        |                 *(ip) = r0;
                                                 |                 *((ip + 4)) = r1;
                                                 |                 *((ip + 8)) = r2;
                                                 |                 *((ip + 12)) = r3;
    0x00023338 b.w 0x22594                       |                 goto label_11;
                                                 | label_35:
    0x00023438 ldr r5, [sp, 0x44]                |                 r5 = *(arg_44h);
    0x0002343a mov r2, r0                        |                 r2 = r0;
    0x0002343c ldr r3, [pc, 0xf8]                |                 
    0x0002343e movw r1, 0x111                    |                 r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023442 ldr r0, [pc, 0xf8]                |                 
    0x00023444 ldr r4, [r5, 0x28]                |                 r4 = *((r5 + 0x28));
    0x00023446 add r3, pc                        |                 r3 = 0x46982;
    0x00023448 add r0, pc                        |                 r0 = 0x4698a;
    0x0002344a orr r4, r4, 0x20                  |                 r4 |= 0x20;
    0x0002344e str r4, [r5, 0x28]                |                 *((r5 + 0x28)) = r4;
    0x00023450 movs r4, 1                        |                 r4 = 1;
    0x00023452 bl 0x35d28                        |                 zbx_strdup2 ();
    0x00023456 str r0, [r5, 0x20]                |                 *((r5 + 0x20)) = r0;
    0x00023458 b.w 0x22668                       |                 void (*0x22668)() ();
                                                 |             }
    0x0002345c ldr r5, [sp, 0x44]                |             r5 = *(arg_44h);
    0x0002345e mov.w r1, 0x1f8                   |             r1 = case.0x3207a.11;
    0x00023462 ldr r3, [pc, 0xdc]                |             
    0x00023464 movs r4, 1                        |             r4 = 1;
    0x00023466 ldr r0, [r5, 0x28]                |             r0 = *((r5 + 0x28));
    0x00023468 add r3, pc                        |             r3 = 0x469ae;
    0x0002346a orr r0, r0, 0x20                  |             r0 |= 0x20;
    0x0002346e str r0, [r5, 0x28]                |             *((r5 + 0x28)) = r0;
    0x00023470 ldr r0, [pc, 0xd0]                |             
    0x00023472 add r0, pc                        |             r0 = 0x469ba;
    0x00023474 bl 0x35d28                        |             zbx_strdup2 ();
    0x00023478 str r0, [r5, 0x20]                |             *((r5 + 0x20)) = r0;
    0x0002347a b.w 0x22668                       |             void (*0x22668)() ();
                                                 |         }
    0x0002347e ldr r5, [sp, 0x44]                |         r5 = *(arg_44h);
    0x00023480 movw r1, 0x1e1                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023484 ldr r3, [pc, 0xc0]                |         
    0x00023486 movs r4, 1                        |         r4 = 1;
    0x00023488 ldr r0, [r5, 0x28]                |         r0 = *((r5 + 0x28));
    0x0002348a add r3, pc                        |         r3 = 0x469d6;
    0x0002348c orr r0, r0, 0x20                  |         r0 |= 0x20;
    0x00023490 str r0, [r5, 0x28]                |         *((r5 + 0x28)) = r0;
    0x00023492 ldr r0, [pc, 0xb8]                |         
    0x00023494 add r0, pc                        |         r0 = 0x469e6;
    0x00023496 bl 0x35d28                        |         zbx_strdup2 ();
    0x0002349a str r0, [r5, 0x20]                |         *((r5 + 0x20)) = r0;
    0x0002349c b.w 0x22668                       |         void (*0x22668)() ();
                                                 |     }
    0x000234c4 add.w fp, sp, 0x10c0              |     
    0x000234c8 add.w fp, fp, 0xc                 |     
    0x000234cc b.w 0x22a9a                       |     void (*0x22a9a)() ();
    0x00023558 movs r2, 1                        |     r2 = 1;
    0x0002355a b.w 0x223dc                       |     goto label_12;
                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23560 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.NET_DNS_RECORD ()        | void NET_DNS_RECORD (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00023560 movs r2, 0                |     r2 = 0;
    0x00023562 b.w 0x223dc               |     return void (*0x223dc)() ();
                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1a3f0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.NET_IF_DISCOVERY ()                          | void NET_IF_DISCOVERY (int16_t arg2) {
                                                             |     int16_t var_4h;
                                                             |     int16_t var_1000h;
                                                             |     int16_t var_1800h;
                                                             |     r1 = arg2;
    0x0001a3f0 ldr r2, [pc, 0x124]                           |     
    0x0001a3f2 ldr r3, [pc, 0x128]                           |     r3 = *(0x1a51e);
    0x0001a3f4 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0001a3f8 mov sb, r1                                    |     sb = r1;
    0x0001a3fa add r2, pc                                    |     r2 = 0x34916;
    0x0001a3fc ldr r0, [pc, 0x120]                           |     
    0x0001a3fe sub.w sp, sp, 0x1820                          |     
    0x0001a402 ldr r1, [pc, 0x120]                           |     
    0x0001a404 sub sp, 4                                     |     
    0x0001a406 ldr r3, [r2, r3]                              |     
    0x0001a408 add.w r4, sp, 0x1800                          |     r4 += var_1800h;
    0x0001a40c add r0, pc                                    |     r0 = 0x34930;
    0x0001a40e adds r4, 0x1c                                 |     r4 += 0x1c;
    0x0001a410 add r1, pc                                    |     r1 = 0x3493a;
    0x0001a412 ldr r3, [r3]                                  |     r3 = *(0x34916);
    0x0001a414 str r3, [r4]                                  |     *(r4) = r3;
    0x0001a416 mov.w r3, 0                                   |     r3 = 0;
    0x0001a41a blx 0xc39c                                    |     r0 = fcn_0000c39c ();
    0x0001a41e mov r7, r0                                    |     r7 = r0;
    0x0001a420 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0001a422 beq 0x1a4e6                                   |         goto label_1;
                                                             |     }
    0x0001a424 ldr.w r8, [pc, 0x100]                         |     r8 = *(0x0001a528);
    0x0001a428 add.w r5, sp, 0x1000                          |     r5 += var_1000h;
    0x0001a42c add r6, sp, 4                                 |     r6 += var_4h;
    0x0001a42e adds r5, 0x1c                                 |     r5 += 0x1c;
    0x0001a430 mov.w r1, 0x1000                              |     r1 = case.0x3207a.11;
    0x0001a434 mov r0, r6                                    |     r0 = r6;
    0x0001a436 add r8, pc                                    |     r8 += pc;
    0x0001a438 bl 0x2ff78                                    |     zbx_json_initarray ();
                                                             |     do {
    0x0001a43c mov r2, r7                                    |         r2 = r7;
    0x0001a43e mov.w r1, 0x800                               |         r1 = case.0x3207a.11;
    0x0001a442 mov r0, r5                                    |         r0 = r5;
    0x0001a444 blx 0xbd2c                                    |         r0 = ferror (r0);
    0x0001a448 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r0 == 0) {
    0x0001a44a cbz r0, 0x1a498                               |             goto label_2;
                                                             |         }
                                                             | label_0:
    0x0001a44c movs r1, 0x3a                                 |         r1 = 0x3a;
    0x0001a44e mov r0, r5                                    |         r0 = r5;
    0x0001a450 blx 0xc138                                    |         r0 = fcn_0000c138 ();
    0x0001a454 cmp r0, 0                                     |         
    0x0001a456 beq 0x1a43c                                   |         
                                                             |     } while (r0 == 0);
    0x0001a458 movs r3, 0                                    |     r3 = 0;
    0x0001a45a mov r4, r5                                    |     r4 = r5;
    0x0001a45c strb r3, [r0]                                 |     *(r0) = r3;
    0x0001a45e ldrb r3, [r5]                                 |     r3 = *(r5);
    0x0001a460 cmp r3, 0x20                                  |     
                                                             |     if (r3 != 0x20) {
    0x0001a462 bne 0x1a46c                                   |         goto label_3;
                                                             |     }
                                                             |     do {
    0x0001a464 ldrb r3, [r4, 1]!                             |         r3 = *((r4 += 1));
    0x0001a468 cmp r3, 0x20                                  |         
    0x0001a46a beq 0x1a464                                   |         
                                                             |     } while (r3 == 0x20);
                                                             | label_3:
    0x0001a46c movs r1, 0                                    |     r1 = 0;
    0x0001a46e mov r0, r6                                    |     r0 = r6;
    0x0001a470 bl 0x300ac                                    |     zbx_json_addobject ();
    0x0001a474 mov r2, r4                                    |     r2 = r4;
    0x0001a476 movs r3, 1                                    |     r3 = 1;
    0x0001a478 mov r1, r8                                    |     r1 = r8;
    0x0001a47a mov r0, r6                                    |     r0 = r6;
    0x0001a47c bl 0x300b4                                    |     zbx_json_addstring ();
    0x0001a480 mov r0, r6                                    |     r0 = r6;
    0x0001a482 bl 0x30384                                    |     zbx_json_close ();
    0x0001a486 mov r2, r7                                    |     r2 = r7;
    0x0001a488 mov.w r1, 0x800                               |     r1 = case.0x3207a.11;
    0x0001a48c mov r0, r5                                    |     r0 = r5;
    0x0001a48e blx 0xbd2c                                    |     r0 = ferror (r0);
    0x0001a492 mov r4, r0                                    |     r4 = r0;
    0x0001a494 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001a496 bne 0x1a44c                                   |         goto label_0;
                                                             |     }
                                                             | label_2:
    0x0001a498 mov r0, r7                                    |     r0 = r7;
    0x0001a49a blx 0xc248                                    |     munmap (r0, r1);
    0x0001a49e mov r0, r6                                    |     r0 = r6;
    0x0001a4a0 bl 0x30384                                    |     zbx_json_close ();
    0x0001a4a4 ldr.w r3, [sb, 0x28]                          |     r3 = *((sb + 0x28));
    0x0001a4a8 ldr r0, [sp, 4]                               |     r0 = var_4h;
    0x0001a4aa orr r3, r3, 4                                 |     r3 |= 4;
    0x0001a4ae str.w r3, [sb, 0x28]                          |     __asm ("str.w r3, [sb, 0x28]");
    0x0001a4b2 blx 0xbe3c                                    |     fcn_0000be3c ();
    0x0001a4b6 str.w r0, [sb, 0x18]                          |     __asm ("str.w r0, [sb, 0x18]");
    0x0001a4ba mov r0, r6                                    |     r0 = r6;
    0x0001a4bc bl 0x3002c                                    |     zbx_json_free ();
    0x0001a4c0 mov r0, r4                                    |     r0 = r4;
                                                             |     do {
    0x0001a4c2 ldr r2, [pc, 0x68]                            |         
    0x0001a4c4 add.w r1, sp, 0x1800                          |         r1 += var_1800h;
    0x0001a4c8 ldr r3, [pc, 0x50]                            |         r3 = *(0x1a51c);
    0x0001a4ca adds r1, 0x1c                                 |         r1 += 0x1c;
    0x0001a4cc add r2, pc                                    |         r2 = 0x349fe;
    0x0001a4ce ldr r3, [r2, r3]                              |         r3 = *(0x349fe);
    0x0001a4d0 ldr r2, [r3]                                  |         r2 = *(0x349fe);
    0x0001a4d2 ldr r3, [r1]                                  |         r3 = *(r1);
    0x0001a4d4 eors r2, r3                                   |         r2 ^= r3;
    0x0001a4d6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0001a4da bne 0x1a512                                   |             goto label_4;
                                                             |         }
    0x0001a4dc add.w sp, sp, 0x1820                          |         
    0x0001a4e0 add sp, 4                                     |         
    0x0001a4e2 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_1:
    0x0001a4e6 ldr.w r3, [sb, 0x28]                          |         r3 = *((sb + 0x28));
    0x0001a4ea orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001a4ee str.w r3, [sb, 0x28]                          |         __asm ("str.w r3, [sb, 0x28]");
    0x0001a4f2 blx 0xc15c                                    |         r0 = fcn_0000c15c ();
    0x0001a4f6 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0001a4f8 bl 0x26fdc                                    |         zbx_strerror ();
    0x0001a4fc ldr r1, [pc, 0x30]                            |         
    0x0001a4fe mov r2, r0                                    |         r2 = r0;
    0x0001a500 mov r0, r7                                    |         r0 = r7;
    0x0001a502 add r1, pc                                    |         r1 = 0x34a36;
    0x0001a504 bl 0x396b0                                    |         r0 = zbx_dsprintf ()
    0x0001a508 mov r3, r0                                    |         r3 = r0;
    0x0001a50a movs r0, 1                                    |         r0 = 1;
    0x0001a50c str.w r3, [sb, 0x20]                          |         __asm ("str.w r3, [sb, 0x20]");
    0x0001a510 b 0x1a4c2                                     |         
                                                             |     } while (1);
                                                             | label_4:
    0x0001a512 blx 0xbe48                                    |     fcn_0000be48 ();
    0x0001a516 nop                                           |     
    0x0001a518 movs r7, 0xf2                                 |     r7 = 0xf2;
    0x0001a51a movs r4, r0                                   |     r4 = r0;
    0x0001a51c lsls r4, r2, 0xc                              |     r4 = r2 << 0xc;
    0x0001a51e movs r0, r0                                   |     
                                                             |     if (r0 == 0) {
    0x0001a520 cbz r0, 0x1a59c                               |         void (*0x1a59c)() ();
                                                             |     }
    0x0001a522 movs r2, r0                                   |     r2 = r0;
                                                             |     if (r4 != 0) {
    0x0001a524 cbz r4, 0x1a532                               |         
    0x0001a526 movs r2, r0                                   |         r2 = r0;
    0x0001a528 push {r1, r3, lr}                             |         
    0x0001a52a movs r2, r0                                   |         r2 = r0;
    0x0001a52c movs r7, 0x20                                 |         r7 = 0x20;
    0x0001a52e movs r4, r0                                   |         r4 = r0;
    0x0001a530 uxtb r2, r7                                   |         r2 = (int8_t) r7;
                                                             |     }
    0x0001a532 movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1b1f8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.PROC_MEM ()                                          | void PROC_MEM (int16_t arg_24h, int16_t arg_28h, int16_t arg_30h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_44h, int16_t arg_844h, int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0001b1f8 ldr.w r2, [pc, 0x474]                                 |     r2 = *(0x0001b670);
    0x0001b1fc ldr.w r3, [pc, 0x474]                                 |     
    0x0001b200 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001b204 ldr r5, [r0, 4]                                       |     r5 = *((r0 + 4));
    0x0001b206 add r2, pc                                            |     r2 += pc;
    0x0001b208 vpush {d8, d9, d10}                                   |     __asm ("vpush {d8, d9, d10}");
    0x0001b20c subw sp, sp, 0x84c                                    |     __asm ("subw sp, sp, case.0x3207a.11");
    0x0001b210 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0001b212 cmp r5, 5                                             |     
    0x0001b214 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0001b218 add.w sl, sp, 0x28                                    |     sl += arg_28h;
    0x0001b21c ldr r3, [r3]                                          |     r3 = *(0x1b674);
    0x0001b21e str.w r3, [sp, 0x844]                                 |     __asm ("str.w r3, [arg_844h]");
    0x0001b220 subs r0, 0x44                                         |     r0 -= 0x44;
    0x0001b222 mov.w r3, 0                                           |     r3 = 0;
    0x0001b226 str r1, [sp, 0x14]                                    |     var_14h = r1;
    0x0001b228 vstr d16, [sl]                                        |     __asm ("vstr d16, [sl]");
                                                                     |     if (r0 > 0x44) {
    0x0001b22c bgt.w 0x1b634                                         |         goto label_21;
                                                                     |     }
    0x0001b230 cmp r5, 0                                             |     
    0x0001b232 mov r4, r0                                            |     r4 = r0;
    0x0001b234 itet gt                                               |     
                                                                     |     if (r5 <= 0) {
    0x0001b236 ldrgt r3, [r0, 8]                                     |         r3 = *((r0 + 8));
                                                                     |     }
                                                                     |     if (r5 > 0) {
    0x0001b238 movle r3, 0                                           |         r3 = 0;
                                                                     |     }
                                                                     |     if (r5 <= 0) {
    0x0001b23a ldrgt r3, [r3]                                        |         r3 = *(r3);
                                                                     |     }
    0x0001b23c cmp r5, 1                                             |     
    0x0001b23e str r3, [sp]                                          |     *(sp) = r3;
                                                                     |     if (r5 <= 1) {
    0x0001b240 ble.w 0x1b392                                         |         goto label_22;
                                                                     |     }
    0x0001b244 ldr r3, [r0, 8]                                       |     r3 = *((r0 + 8));
    0x0001b246 ldr.w sb, [r3, 4]                                     |     sb = *((r3 + 4));
    0x0001b24a cmp.w sb, 0                                           |     
                                                                     |     if (sb != 0) {
    0x0001b24e beq 0x1b25c                                           |         
    0x0001b250 ldrb.w r3, [sb]                                       |         r3 = *(sb);
    0x0001b254 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0001b256 bne.w 0x1b7b2                                         |             goto label_23;
                                                                     |         }
    0x0001b25a mov sb, r3                                            |         sb = r3;
                                                                     |     }
                                                                     | label_10:
    0x0001b25c cmp r5, 2                                             |     
    0x0001b25e mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r5 <= 2) {
    0x0001b262 ble.w 0x1b3a0                                         |         goto label_24;
                                                                     |     }
                                                                     |     do {
                                                                     | label_20:
    0x0001b266 ldr r4, [r4, 8]                                       |         r4 = *((r4 + 8));
    0x0001b268 str r3, [sp, 4]                                       |         var_4h = r3;
    0x0001b26a ldr r6, [r4, 8]                                       |         r6 = *((r4 + 8));
    0x0001b26c cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x0001b26e beq.w 0x1b79c                                         |             goto label_25;
                                                                     |         }
    0x0001b272 ldrb r3, [r6]                                         |         r3 = *(r6);
    0x0001b274 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0001b276 bne.w 0x1b6e8                                         |             goto label_26;
                                                                     |         }
                                                                     | label_7:
    0x0001b27a str r3, [sp, 0x18]                                    |         var_18h = r3;
                                                                     | label_6:
    0x0001b27c cmp r5, 3                                             |         
                                                                     |         if (r5 == 3) {
    0x0001b27e beq.w 0x1ba54                                         |             goto label_27;
                                                                     |         }
    0x0001b282 ldr r3, [r4, 0xc]                                     |         r3 = *((r4 + 0xc));
    0x0001b284 cmp r5, 4                                             |         
    0x0001b286 str r3, [sp, 8]                                       |         var_8h = r3;
                                                                     |         if (r5 == 4) {
    0x0001b288 beq.w 0x1ba58                                         |             goto label_28;
                                                                     |         }
    0x0001b28c ldr r4, [r4, 0x10]                                    |         r4 = *((r4 + 0x10));
    0x0001b28e cmp r4, 0                                             |         
                                                                     |         if (r4 == 0) {
    0x0001b290 beq.w 0x1b7a0                                         |             goto label_29;
                                                                     |         }
    0x0001b294 ldrb r3, [r4]                                         |         r3 = *(r4);
    0x0001b296 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0001b298 beq.w 0x1b78a                                         |             goto label_30;
                                                                     |         }
    0x0001b29c ldr r1, [pc, 0x3d8]                                   |         
    0x0001b29e mov r0, r4                                            |         r0 = r4;
    0x0001b2a0 add r1, pc                                            |         r1 = 0x3691c;
    0x0001b2a2 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2a6 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2a8 beq.w 0x1b810                                         |             goto label_31;
                                                                     |         }
    0x0001b2ac ldr r1, [pc, 0x3cc]                                   |         
    0x0001b2ae mov r0, r4                                            |         r0 = r4;
    0x0001b2b0 add r1, pc                                            |         r1 = 0x36930;
    0x0001b2b2 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2b6 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2b8 beq.w 0x1b8ac                                         |             goto label_32;
                                                                     |         }
    0x0001b2bc ldr r1, [pc, 0x3c0]                                   |         
    0x0001b2be mov r0, r4                                            |         r0 = r4;
    0x0001b2c0 add r1, pc                                            |         r1 = 0x36944;
    0x0001b2c2 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2c6 mov r5, r0                                            |         r5 = r0;
    0x0001b2c8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2ca beq.w 0x1b942                                         |             goto label_33;
                                                                     |         }
    0x0001b2ce ldr r1, [pc, 0x3b4]                                   |         
    0x0001b2d0 mov r0, r4                                            |         r0 = r4;
    0x0001b2d2 add r1, pc                                            |         r1 = 0x3695c;
    0x0001b2d4 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2d8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2da beq.w 0x1b7ca                                         |             goto label_34;
                                                                     |         }
    0x0001b2de ldr r1, [pc, 0x3a8]                                   |         
    0x0001b2e0 mov r0, r4                                            |         r0 = r4;
    0x0001b2e2 add r1, pc                                            |         r1 = 0x36970;
    0x0001b2e4 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2e8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2ea beq.w 0x1b9dc                                         |             goto label_35;
                                                                     |         }
    0x0001b2ee ldr r1, [pc, 0x39c]                                   |         
    0x0001b2f0 mov r0, r4                                            |         r0 = r4;
    0x0001b2f2 add r1, pc                                            |         r1 = 0x36984;
    0x0001b2f4 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b2f8 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b2fa beq.w 0x1ba00                                         |             goto label_36;
                                                                     |         }
    0x0001b2fe ldr r1, [pc, 0x390]                                   |         
    0x0001b300 mov r0, r4                                            |         r0 = r4;
    0x0001b302 add r1, pc                                            |         r1 = 0x36998;
    0x0001b304 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b308 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b30a beq.w 0x1ba14                                         |             goto label_37;
                                                                     |         }
    0x0001b30c strh r3, [r0, 0x1c]                                   |         *((r0 + 0x1c)) = r3;
    0x0001b30e ldr r1, [pc, 0x384]                                   |         
    0x0001b310 mov r0, r4                                            |         r0 = r4;
    0x0001b312 add r1, pc                                            |         r1 = 0x369ac;
    0x0001b314 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b318 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b31a beq.w 0x1ba32                                         |             goto label_38;
                                                                     |         }
    0x0001b31e ldr r1, [pc, 0x378]                                   |         
    0x0001b320 mov r0, r4                                            |         r0 = r4;
    0x0001b322 add r1, pc                                            |         r1 = 0x369c0;
    0x0001b324 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b328 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b32a beq.w 0x1ba80                                         |             goto label_39;
                                                                     |         }
    0x0001b32e ldr r1, [pc, 0x36c]                                   |         
    0x0001b330 mov r0, r4                                            |         r0 = r4;
    0x0001b332 add r1, pc                                            |         r1 = 0x369d4;
    0x0001b334 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b338 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b33a beq.w 0x1ba6c                                         |             goto label_40;
                                                                     |         }
    0x0001b33e ldr r1, [pc, 0x360]                                   |         
    0x0001b340 mov r0, r4                                            |         r0 = r4;
    0x0001b342 add r1, pc                                            |         r1 = 0x369e8;
    0x0001b344 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b348 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b34a beq.w 0x1bae0                                         |             goto label_41;
                                                                     |         }
    0x0001b34e ldr r1, [pc, 0x354]                                   |         
    0x0001b350 mov r0, r4                                            |         r0 = r4;
    0x0001b352 add r1, pc                                            |         r1 = 0x369fc;
    0x0001b354 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b358 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b35a beq.w 0x1bacc                                         |             goto label_42;
                                                                     |         }
    0x0001b35e ldr r1, [pc, 0x348]                                   |         
    0x0001b360 mov r0, r4                                            |         r0 = r4;
    0x0001b362 add r1, pc                                            |         r1 = 0x36a10;
    0x0001b364 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b368 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b36a beq.w 0x1bab8                                         |             goto label_43;
                                                                     |         }
    0x0001b36e ldr r1, [pc, 0x33c]                                   |         
    0x0001b370 mov r0, r4                                            |         r0 = r4;
    0x0001b372 add r1, pc                                            |         r1 = 0x36a24;
    0x0001b374 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
    0x0001b378 cmp r0, 0                                             |         
                                                                     |         if (r0 != 0) {
    0x0001b37a bne.w 0x1ba94                                         |             goto label_44;
                                                                     |         }
    0x0001b37e ldr r3, [sp, 4]                                       |         r3 = var_4h;
    0x0001b380 cmp r3, 1                                             |         
                                                                     |         if (r3 == 1) {
    0x0001b382 beq.w 0x1b7d6                                         |             goto label_15;
                                                                     |         }
    0x0001b386 ldr r3, [pc, 0x328]                                   |         
    0x0001b388 add r3, pc                                            |         r3 = 0x36a3e;
    0x0001b38a str r3, [sp, 0xc]                                     |         var_ch = r3;
    0x0001b38c movs r3, 0xd                                          |         r3 = 0xd;
    0x0001b38e str r3, [sp, 4]                                       |         var_4h = r3;
    0x0001b390 b 0x1b3ae                                             |         goto label_9;
                                                                     | label_22:
    0x0001b392 cmp r5, 2                                             |         
    0x0001b394 mov.w sb, 0                                           |         sb = 0;
    0x0001b398 mov.w r3, 0                                           |         r3 = 0;
    0x0001b39c bgt.w 0x1b266                                         |         
                                                                     |     } while (r5 > 2);
                                                                     | label_24:
    0x0001b3a0 ldr r2, [pc, 0x310]                                   |     
    0x0001b3a2 str r3, [sp, 8]                                       |     var_8h = r3;
    0x0001b3a4 str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0001b3a6 movs r3, 2                                            |     r3 = 2;
    0x0001b3a8 add r2, pc                                            |     r2 = 0x36a60;
    0x0001b3aa str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b3ac str r2, [sp, 0xc]                                     |     var_ch = r2;
                                                                     | label_9:
    0x0001b3ae ldr r0, [pc, 0x308]                                   |     
    0x0001b3b0 add r0, pc                                            |     r0 = 0x36a6e;
    0x0001b3b2 blx 0xbfd8                                            |     r0 = getenv (r0);
    0x0001b3b6 mov r8, r0                                            |     r8 = r0;
    0x0001b3b8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b3ba beq.w 0x1b830                                         |         goto label_45;
                                                                     |     }
    0x0001b3be vldr d10, [pc, 0x2a8]                                 |     __asm ("vldr d10, case.0x3207a.11");
    0x0001b3c2 movs r3, 0                                            |     r3 = 0;
    0x0001b3c4 vmov.i64 d9, 0                                        |     __asm ("vmov.i64 d9, 0");
    0x0001b3c8 mov r4, r3                                            |     r4 = r3;
    0x0001b3ca mov r5, r3                                            |     r5 = r3;
    0x0001b3cc str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001b3ce str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0001b3d0 strd r3, r3, [sp, 0x20]                               |     __asm ("strd r3, r3, [sp, 0x20]");
                                                                     |     do {
                                                                     | label_0:
    0x0001b3d4 mov r0, r8                                            |         r0 = r8;
    0x0001b3d6 blx 0xc360                                            |         r0 = fcn_0000c360 ();
    0x0001b3da mov r6, r0                                            |         r6 = r0;
    0x0001b3dc cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001b3de beq 0x1b4d4                                           |             goto label_46;
                                                                     |         }
                                                                     |         if (r4 != 0) {
                                                                     | label_1:
    0x0001b3e0 cbz r4, 0x1b3e8                                       |             
    0x0001b3e2 mov r0, r4                                            |             r0 = r4;
    0x0001b3e4 blx 0xc248                                            |             munmap (r0, r1);
                                                                     |         }
                                                                     |         if (r5 != 0) {
    0x0001b3e8 cbz r5, 0x1b3f0                                       |             
    0x0001b3ea mov r0, r5                                            |             r0 = r5;
    0x0001b3ec blx 0xc248                                            |             munmap (r0, r1);
                                                                     |         }
    0x0001b3f0 adds r6, 0x13                                         |         r6 += 0x13;
    0x0001b3f2 movs r2, 0xa                                          |         r2 = 0xa;
    0x0001b3f4 movs r1, 0                                            |         r1 = 0;
    0x0001b3f6 mov r0, r6                                            |         r0 = r6;
    0x0001b3f8 movs r4, 0                                            |         r4 = 0;
    0x0001b3fa mov r5, r4                                            |         r5 = r4;
    0x0001b3fc blx 0xbc70                                            |         r0 = fcn_0000bc70 ();
    0x0001b400 cmp r0, 0                                             |         
    0x0001b402 beq 0x1b3d4                                           |         
                                                                     |     } while (r0 == 0);
    0x0001b404 ldr.w fp, [pc, 0x2b4]                                 |     
    0x0001b408 add r7, sp, 0x44                                      |     r7 += arg_44h;
    0x0001b40a ldr r2, [pc, 0x2b4]                                   |     
    0x0001b40c mov r3, r6                                            |     r3 = r6;
    0x0001b40e mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001b412 mov r0, r7                                            |     r0 = r7;
    0x0001b414 add fp, pc                                            |     fp = 0x36ad4;
    0x0001b416 add r2, pc                                            |     r2 = 0x36adc;
    0x0001b418 bl 0x38ea0                                            |     zbx_snprintf ();
    0x0001b41c mov r1, fp                                            |     r1 = fp;
    0x0001b41e mov r0, r7                                            |     r0 = r7;
    0x0001b420 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001b424 mov r4, r0                                            |     r4 = r0;
    0x0001b426 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b428 beq 0x1b3d4                                           |         goto label_0;
                                                                     |     }
    0x0001b42a ldr r2, [pc, 0x298]                                   |     
    0x0001b42c mov r3, r6                                            |     r3 = r6;
    0x0001b42e mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001b432 mov r0, r7                                            |     r0 = r7;
    0x0001b434 add r2, pc                                            |     r2 = 0x36afe;
    0x0001b436 bl 0x38ea0                                            |     zbx_snprintf ();
    0x0001b43a mov r1, fp                                            |     r1 = fp;
    0x0001b43c mov r0, r7                                            |     r0 = r7;
    0x0001b43e blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001b442 mov r5, r0                                            |     r5 = r0;
    0x0001b444 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b446 beq 0x1b3d4                                           |         goto label_0;
                                                                     |     }
    0x0001b448 mov r1, r0                                            |     r1 = r0;
    0x0001b44a ldr r2, [sp]                                          |     r2 = *(sp);
    0x0001b44c mov r0, r4                                            |     r0 = r4;
    0x0001b44e bl 0x1afb8                                            |     fcn_0001afb8 (r0, r1, r2, r3);
    0x0001b452 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001b454 beq 0x1b3d4                                           |         goto label_0;
                                                                     |     }
    0x0001b456 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0001b45a beq 0x1b468                                           |         goto label_47;
                                                                     |     }
    0x0001b45c mov r1, sb                                            |     r1 = sb;
    0x0001b45e mov r0, r5                                            |     r0 = r5;
    0x0001b460 bl 0x1ab4c                                            |     fcn_0001ab4c (r0, r1, r2);
    0x0001b464 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001b466 beq 0x1b3d4                                           |         goto label_0;
                                                                     |     }
                                                                     | label_47:
    0x0001b468 ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0001b46a mov r0, r4                                            |     r0 = r4;
    0x0001b46c bl 0x1af1c                                            |     fcn_0001af1c (r0, r1);
    0x0001b470 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001b472 beq 0x1b3d4                                           |         goto label_0;
                                                                     |     }
    0x0001b474 mov r0, r5                                            |     r0 = r5;
    0x0001b476 blx 0xbe54                                            |     fcn_0000be54 ();
    0x0001b47a ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b47c cmp r3, 3                                             |     
                                                                     |     if (r3 == 3) {
    0x0001b47e beq.w 0x1b584                                         |         goto label_48;
                                                                     |     }
    0x0001b480 strh r1, [r0, 4]                                      |     *((r0 + 4)) = r1;
                                                                     |     if (r3 <= 3) {
    0x0001b482 ble 0x1b542                                           |         goto label_49;
                                                                     |     }
                                                                     | label_2:
    0x0001b484 mov r3, sl                                            |     r3 = sl;
    0x0001b486 ldr r1, [sp, 0xc]                                     |     r1 = var_ch;
    0x0001b488 movs r2, 0                                            |     r2 = 0;
    0x0001b48a mov r0, r5                                            |     r0 = r5;
    0x0001b48c bl 0x1b050                                            |     r0 = byte_value_from_proc_file ();
    0x0001b490 adds r3, r0, 2                                        |     r3 = r0 + 2;
                                                                     |     if (r3 == r0) {
    0x0001b492 beq 0x1b57e                                           |         goto label_4;
                                                                     |     }
    0x0001b494 adds r0, 1                                            |     r0++;
                                                                     |     if (r0 == 1) {
    0x0001b496 beq 0x1b564                                           |         goto label_50;
                                                                     |     }
    0x0001b498 ldrd r3, r2, [sl]                                     |     __asm ("ldrd r3, r2, [sl]");
                                                                     | label_14:
    0x0001b49c ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0001b49e adds r1, r0, 1                                        |     r1 = r0 + 1;
    0x0001b4a0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b4a2 beq.w 0x1b5e4                                         |         goto label_51;
                                                                     |     }
    0x0001b4a6 ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0001b4a8 cmp r0, 1                                             |     
                                                                     |     if (r0 == 1) {
    0x0001b4aa beq 0x1b56e                                           |         goto label_52;
                                                                     |     }
    0x0001b4ac ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0001b4ae cmp r0, 2                                             |     
    0x0001b4b0 ldr r0, [sp, 0x20]                                    |     r0 = var_20h;
                                                                     |     if (r0 == 2) {
    0x0001b4b2 beq.w 0x1b822                                         |         goto label_53;
                                                                     |     }
    0x0001b4b6 adds r3, r0, r3                                       |     r3 = r0 + r3;
    0x0001b4b8 ldr r0, [sp, 0x24]                                    |     r0 = *(arg_24h);
    0x0001b4ba str r1, [sp, 0x10]                                    |     var_10h = r1;
    0x0001b4bc adc.w r2, r0, r2                                      |     __asm ("adc.w r2, r0, r2");
    0x0001b4c0 mov r0, r8                                            |     r0 = r8;
    0x0001b4c2 strd r3, r2, [sp, 0x20]                               |     __asm ("strd r3, r2, [sp, 0x20]");
    0x0001b4c6 movs r3, 1                                            |     r3 = 1;
    0x0001b4c8 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001b4ca blx 0xc360                                            |     r0 = fcn_0000c360 ();
    0x0001b4ce mov r6, r0                                            |     r6 = r0;
    0x0001b4d0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001b4d2 bne 0x1b3e0                                           |         goto label_1;
                                                                     |     }
                                                                     | label_46:
    0x0001b4d4 ldr r6, [sp, 0x1c]                                    |     r6 = var_1ch;
    0x0001b4d6 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0001b4d8 cmp r3, 0                                             |     
    0x0001b4da ite ne                                                |     
                                                                     |     if (r3 == 0) {
    0x0001b4dc movne r6, 0                                           |         r6 = 0;
                                                                     |     }
                                                                     |     if (r3 != 0) {
    0x0001b4de andeq r6, r6, 1                                       |         r6 &= 1;
                                                                     |     }
    0x0001b4e2 cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x0001b4e4 bne 0x1b566                                           |         goto label_54;
                                                                     |     }
                                                                     |     if (r5 != 0) {
                                                                     | label_3:
    0x0001b4e6 cbz r5, 0x1b4ee                                       |         
    0x0001b4e8 mov r0, r5                                            |         r0 = r5;
    0x0001b4ea blx 0xc248                                            |         munmap (r0, r1);
                                                                     |     }
    0x0001b4ee mov r0, r8                                            |     r0 = r8;
    0x0001b4f0 blx 0xc494                                            |     fcn_0000c494 ();
    0x0001b4f4 cmp r6, 0                                             |     
                                                                     |     if (r6 != 0) {
    0x0001b4f6 bne 0x1b5f0                                           |         goto label_55;
                                                                     |     }
    0x0001b4f8 ldr r2, [sp, 4]                                       |     r2 = var_4h;
    0x0001b4fa ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0001b4fc cmp r2, 3                                             |     
    0x0001b4fe ldr r3, [r3, 0x28]                                    |     r3 = *((r3 + 0x28));
                                                                     |     if (r2 != 3) {
    0x0001b500 bne.w 0x1b752                                         |         goto label_56;
                                                                     |     }
    0x0001b504 ldr r1, [sp, 0x18]                                    |     r1 = var_18h;
    0x0001b506 orr r2, r3, 2                                         |     r2 = r3 | 2;
    0x0001b50a cmp r1, 3                                             |     
                                                                     |     if (r1 == 3) {
    0x0001b50c beq.w 0x1b8e4                                         |         goto label_57;
                                                                     |     }
                                                                     | label_18:
    0x0001b510 ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0001b512 movs r0, 0                                            |     r0 = 0;
    0x0001b514 orr r3, r3, 2                                         |     r3 |= 2;
    0x0001b518 str r3, [r2, 0x28]                                    |     *((r2 + 0x28)) = r3;
    0x0001b51a vstr d9, [r2, 0x10]                                   |     __asm ("vstr d9, [r2, 0x10]");
                                                                     | label_5:
    0x0001b51e ldr r2, [pc, 0x1a8]                                   |     
    0x0001b520 ldr r3, [pc, 0x150]                                   |     r3 = *(0x1b674);
    0x0001b522 add r2, pc                                            |     r2 = 0x36bf0;
    0x0001b524 ldr r3, [r2, r3]                                      |     r3 = *(0x36bf0);
    0x0001b526 ldr r2, [r3]                                          |     r2 = *(0x36bf0);
    0x0001b528 ldr.w r3, [sp, 0x844]                                 |     r3 = *(arg_844h);
    0x0001b52c eors r2, r3                                           |     r2 ^= r3;
    0x0001b52e mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0001b532 bne.w 0x1ba46                                         |         goto label_58;
                                                                     |     }
    0x0001b536 addw sp, sp, 0x84c                                    |     __asm ("addw sp, var_0h");
    0x0001b53a vpop {d8, d9, d10}                                    |     __asm ("vpop {d8, d9, d10}");
    0x0001b53e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_49:
    0x0001b542 subs r3, 1                                            |     r3--;
    0x0001b544 cmp r3, 1                                             |     
                                                                     |     if (r3 < 1) {
    0x0001b546 bls 0x1b484                                           |         goto label_2;
                                                                     |     }
    0x0001b548 ldr r6, [pc, 0x180]                                   |     
    0x0001b54a mov r3, sl                                            |     r3 = sl;
    0x0001b54c movs r2, 0                                            |     r2 = 0;
    0x0001b54e mov r0, r5                                            |     r0 = r5;
    0x0001b550 add r6, pc                                            |     r6 = 0x36c20;
    0x0001b552 mov r1, r6                                            |     r1 = r6;
    0x0001b554 bl 0x1b050                                            |     r0 = byte_value_from_proc_file ();
    0x0001b558 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b55a beq.w 0x1b770                                         |         goto label_59;
                                                                     |     }
    0x0001b55e str r6, [sp, 0xc]                                     |     var_ch = r6;
                                                                     | label_8:
    0x0001b560 adds r0, 2                                            |     r0 += 2;
    0x0001b562 beq 0x1b57e                                           |     
                                                                     |     while (r0 != 2) {
                                                                     | label_50:
    0x0001b564 movs r6, 1                                            |         r6 = 1;
                                                                     | label_54:
    0x0001b566 mov r0, r4                                            |         r0 = r4;
    0x0001b568 blx 0xc248                                            |         munmap (r0, r1);
    0x0001b56c b 0x1b4e6                                             |         goto label_3;
                                                                     | label_52:
    0x0001b56e ldr r0, [sp, 0x20]                                    |         r0 = var_20h;
    0x0001b570 cmp r0, r3                                            |         
    0x0001b572 ldr r0, [sp, 0x24]                                    |         r0 = *(arg_24h);
    0x0001b574 sbcs r0, r2                                           |         __asm ("sbcs r0, r2");
                                                                     |         if (r0 < r3) {
    0x0001b576 bhs 0x1b57c                                           |             
                                                                     | label_13:
    0x0001b578 strd r3, r2, [sp, 0x20]                               |             __asm ("strd r3, r2, [sp, 0x20]");
                                                                     |         }
                                                                     | label_12:
    0x0001b57c str r1, [sp, 0x10]                                    |         var_10h = r1;
                                                                     | label_4:
    0x0001b57e movs r3, 1                                            |         r3 = 1;
    0x0001b580 str r3, [sp, 0x1c]                                    |         var_1ch = r3;
    0x0001b582 b 0x1b3d4                                             |         goto label_0;
                                                                     | label_48:
    0x0001b584 ldr r6, [pc, 0x148]                                   |         
    0x0001b586 mov r3, sl                                            |         r3 = sl;
    0x0001b588 movs r2, 0                                            |         r2 = 0;
    0x0001b58a mov r0, r5                                            |         r0 = r5;
    0x0001b58c add r6, pc                                            |         r6 = 0x36c60;
    0x0001b58e mov r1, r6                                            |         r1 = r6;
    0x0001b590 bl 0x1b050                                            |         r0 = byte_value_from_proc_file ();
                                                                     |         if (r0 == 0) {
    0x0001b594 cbz r0, 0x1b59e                                       |             goto label_60;
                                                                     |         }
    0x0001b596 adds r0, 2                                            |         r0 += 2;
    0x0001b598 str r6, [sp, 0xc]                                     |         var_ch = r6;
    0x0001b59a bne 0x1b564                                           |         
                                                                     |     }
    0x0001b59c b 0x1b57e                                             |     goto label_4;
                                                                     | label_60:
    0x0001b59e ldrd r0, r1, [sl]                                     |     __asm ("ldrd r0, r1, [sl]");
    0x0001b5a2 bl 0x4152c                                            |     r0 = fcn_0004152c (r0, r1, r2);
    0x0001b5a6 vmov d8, r0, r1                                       |     __asm ("vmov d8, r0, r1");
    0x0001b5aa ldrd r0, r1, [sp, 0x30]                               |     __asm ("ldrd r0, r1, [arg_30h]");
    0x0001b5ae bl 0x4152c                                            |     r0 = fcn_0004152c (r0, r1, r2);
    0x0001b5b2 vmov d16, r0, r1                                      |     __asm ("vmov d16, r0, r1");
    0x0001b5b6 ldr r2, [sp, 0x10]                                    |     r2 = var_10h;
    0x0001b5b8 vdiv.f64 d16, d8, d16                                 |     __asm ("vdiv.f64 d16, d8, d16");
    0x0001b5bc adds r3, r2, 1                                        |     r3 = r2 + 1;
    0x0001b5be vmul.f64 d16, d16, d10                                |     __asm ("vmul.f64 d16, d16, d10");
    0x0001b5c2 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0001b5c4 beq 0x1b658                                           |         goto label_61;
                                                                     |     }
    0x0001b5c6 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001b5c8 cmp r2, 1                                             |     
                                                                     |     if (r2 == 1) {
    0x0001b5ca beq.w 0x1b900                                         |         goto label_62;
                                                                     |     }
    0x0001b5ce ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001b5d0 cmp r2, 2                                             |     
                                                                     |     if (r2 == 2) {
    0x0001b5d2 beq.w 0x1b916                                         |         goto label_63;
                                                                     |     }
    0x0001b5d6 strd r6, r3, [sp, 0xc]                                |     __asm ("strd r6, r3, [sp, 0xc]");
    0x0001b5da movs r3, 1                                            |     r3 = 1;
    0x0001b5dc vadd.f64 d9, d9, d16                                  |     __asm ("vadd.f64 d9, d9, d16");
    0x0001b5e0 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001b5e2 b 0x1b3d4                                             |     goto label_0;
                                                                     | label_51:
    0x0001b5e4 strd r3, r2, [sp, 0x20]                               |     __asm ("strd r3, r2, [sp, 0x20]");
    0x0001b5e8 movs r3, 1                                            |     r3 = 1;
    0x0001b5ea str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0001b5ec str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001b5ee b 0x1b3d4                                             |     goto label_0;
                                                                     | label_55:
    0x0001b5f0 ldr r0, [pc, 0xe0]                                    |     
    0x0001b5f2 movs r2, 0                                            |     r2 = 0;
    0x0001b5f4 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0001b5f6 movw r1, 0x2ad                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001b5fa add r0, pc                                            |     r0 = 0x36cd2;
    0x0001b5fc bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001b600 ldr r1, [pc, 0xd4]                                    |     
    0x0001b602 mov r4, r0                                            |     r4 = r0;
    0x0001b604 add r1, pc                                            |     r1 = 0x36ce0;
    0x0001b606 bl 0x3936c                                            |     zbx_rtrim ();
    0x0001b60a ldr r5, [sp, 0x14]                                    |     r5 = var_14h;
    0x0001b60c mov r2, r4                                            |     r2 = r4;
    0x0001b60e ldr r1, [pc, 0xcc]                                    |     
    0x0001b610 movs r0, 0                                            |     r0 = 0;
    0x0001b612 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0001b614 add r1, pc                                            |     r1 = 0x36cf6;
    0x0001b616 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001b61a str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0001b61c bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001b620 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0001b622 movs r0, 1                                            |     r0 = 1;
    0x0001b624 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0001b626 beq.w 0x1b51e                                         |         goto label_5;
                                                                     |     }
    0x0001b62a mov r0, r4                                            |     r0 = r4;
    0x0001b62c blx 0xbd14                                            |     gai_strerror ();
    0x0001b630 movs r0, 1                                            |     r0 = 1;
    0x0001b632 b 0x1b51e                                             |     goto label_5;
                                                                     | label_21:
    0x0001b634 ldr r0, [r1, 0x28]                                    |     r0 = *((r1 + 0x28));
    0x0001b636 mov r4, r1                                            |     r4 = r1;
    0x0001b638 ldr r3, [pc, 0xa4]                                    |     
    0x0001b63a movs r2, 0                                            |     r2 = 0;
    0x0001b63c movw r1, 0x179                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001b640 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0001b644 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0001b646 add r3, pc                                            |     r3 = 0x36d2a;
    0x0001b648 ldr r0, [pc, 0x98]                                    |     
    0x0001b64a add r0, pc                                            |     r0 = 0x36d32;
    0x0001b64c bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0001b650 mov r3, r0                                            |     r3 = r0;
    0x0001b652 movs r0, 1                                            |     r0 = 1;
    0x0001b654 str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001b656 b 0x1b51e                                             |     goto label_5;
                                                                     | label_61:
    0x0001b658 movs r3, 1                                            |     r3 = 1;
    0x0001b65a vmov.f64 d9, d16                                      |     __asm ("vmov.f64 d9, d16");
    0x0001b65e str r6, [sp, 0xc]                                     |     var_ch = r6;
    0x0001b660 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001b662 str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0001b664 b 0x1b3d4                                             |     goto label_0;
                                                                     | label_26:
    0x0001b6e8 ldr.w r1, [pc, 0x408]                                 |     r1 = *(0x0001baf4);
    0x0001b6ec mov r0, r6                                            |     r0 = r6;
    0x0001b6ee add r1, pc                                            |     r1 += pc;
    0x0001b6f0 blx 0xbc58                                            |     fcn_0000bc58 ();
    0x0001b6f4 str r0, [sp, 0x18]                                    |     var_18h = r0;
    0x0001b6f6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b6f8 beq.w 0x1b27c                                         |         goto label_6;
                                                                     |     }
    0x0001b6fc ldr r1, [pc, 0x3f8]                                   |     
    0x0001b6fe mov r0, r6                                            |     r0 = r6;
    0x0001b700 add r1, pc                                            |     r1 = 0x371fc;
    0x0001b702 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001b706 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b708 beq.w 0x1b8a6                                         |         goto label_64;
                                                                     |     }
    0x0001b70c ldr r1, [pc, 0x3ec]                                   |     
    0x0001b70e mov r0, r6                                            |     r0 = r6;
    0x0001b710 add r1, pc                                            |     r1 = 0x37210;
    0x0001b712 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001b716 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b718 beq.w 0x1b93c                                         |         goto label_65;
                                                                     |     }
    0x0001b71c ldr r1, [pc, 0x3e0]                                   |     
    0x0001b71e mov r0, r6                                            |     r0 = r6;
    0x0001b720 add r1, pc                                            |     r1 = 0x37224;
    0x0001b722 blx 0xbc58                                            |     fcn_0000bc58 ();
    0x0001b726 movs r3, 2                                            |     r3 = 2;
    0x0001b728 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b72a beq.w 0x1b27a                                         |         goto label_7;
                                                                     |     }
    0x0001b72e ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001b730 movs r2, 0                                            |     r2 = 0;
    0x0001b732 ldr r3, [pc, 0x3d0]                                   |     
    0x0001b734 movw r1, 0x19f                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001b738 ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0001b73a add r3, pc                                            |     r3 = 0x37244;
    0x0001b73c orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0001b740 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0001b742 ldr r0, [pc, 0x3c4]                                   |     
    0x0001b744 add r0, pc                                            |     r0 = 0x37252;
    0x0001b746 bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0001b74a mov r3, r0                                            |     r3 = r0;
    0x0001b74c movs r0, 1                                            |     r0 = 1;
    0x0001b74e str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001b750 b 0x1b51e                                             |     goto label_5;
                                                                     | label_56:
    0x0001b752 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001b754 cmp r2, 3                                             |     
                                                                     |     if (r2 == 3) {
    0x0001b756 beq.w 0x1b8be                                         |         goto label_66;
                                                                     |     }
                                                                     | label_11:
    0x0001b75a ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x0001b75c orr r3, r3, 1                                         |     r3 |= 1;
    0x0001b760 movs r0, 0                                            |     r0 = 0;
    0x0001b762 str r3, [r2, 0x28]                                    |     *((r2 + 0x28)) = r3;
    0x0001b764 mov r3, r2                                            |     r3 = r2;
    0x0001b766 ldr r2, [sp, 0x20]                                    |     r2 = var_20h;
    0x0001b768 str r2, [r3, 8]                                       |     *((r3 + 8)) = r2;
    0x0001b76a ldr r2, [sp, 0x24]                                    |     r2 = *(arg_24h);
    0x0001b76c str r2, [r3, 0xc]                                     |     *((r3 + 0xc)) = r2;
    0x0001b76e b 0x1b51e                                             |     goto label_5;
                                                                     | label_59:
    0x0001b770 ldr r7, [pc, 0x398]                                   |     
    0x0001b772 add r6, sp, 0x38                                      |     r6 += arg_38h;
    0x0001b774 mov r2, r0                                            |     r2 = r0;
    0x0001b776 mov r3, r6                                            |     r3 = r6;
    0x0001b778 mov r0, r5                                            |     r0 = r5;
    0x0001b77a add r7, pc                                            |     r7 = 0x3728a;
    0x0001b77c mov r1, r7                                            |     r1 = r7;
    0x0001b77e bl 0x1b050                                            |     r0 = byte_value_from_proc_file ();
    0x0001b782 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001b784 beq 0x1b858                                           |         goto label_67;
                                                                     |     }
    0x0001b786 str r7, [sp, 0xc]                                     |     var_ch = r7;
    0x0001b788 b 0x1b560                                             |     goto label_8;
                                                                     | label_30:
    0x0001b78a ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b78c cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001b78e beq 0x1b7d6                                           |         goto label_15;
                                                                     |     }
    0x0001b790 ldr r3, [pc, 0x37c]                                   |     
    0x0001b792 add r3, pc                                            |     r3 = 0x372a6;
    0x0001b794 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001b796 movs r3, 2                                            |     r3 = 2;
    0x0001b798 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b79a b 0x1b3ae                                             |     goto label_9;
                                                                     | label_25:
    0x0001b79c str r6, [sp, 0x18]                                    |     var_18h = r6;
    0x0001b79e b 0x1b27c                                             |     goto label_6;
                                                                     | label_29:
    0x0001b7a0 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b7a2 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001b7a4 beq 0x1b7d6                                           |         goto label_15;
                                                                     |     }
    0x0001b7a6 ldr r3, [pc, 0x36c]                                   |     
    0x0001b7a8 add r3, pc                                            |     r3 = 0x372c2;
    0x0001b7aa str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001b7ac movs r3, 2                                            |     r3 = 2;
    0x0001b7ae str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b7b0 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_23:
    0x0001b7b2 blx 0xc15c                                            |     fcn_0000c15c ();
    0x0001b7b6 movs r3, 0                                            |     r3 = 0;
    0x0001b7b8 mov r5, r0                                            |     r5 = r0;
    0x0001b7ba str r3, [r5]                                          |     *(r5) = r3;
    0x0001b7bc mov r0, sb                                            |     r0 = sb;
    0x0001b7be blx 0xbc18                                            |     r0 = getpwnam ();
    0x0001b7c2 mov sb, r0                                            |     sb = r0;
                                                                     |     if (r0 == 0) {
    0x0001b7c4 cbz r0, 0x1b7f4                                       |         goto label_68;
                                                                     |     }
    0x0001b7c6 ldr r5, [r4, 4]                                       |     r5 = *((r4 + 4));
    0x0001b7c8 b 0x1b25c                                             |     goto label_10;
                                                                     | label_34:
    0x0001b7ca ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b7cc cmp r3, 1                                             |     
    0x0001b7ce it ne                                                 |     
                                                                     |     if (r3 != 1) {
    0x0001b7d0 strne r0, [sp, 0xc]                                   |         var_ch = r0;
                                                                     |         goto label_69;
                                                                     |     }
                                                                     |     if (r3 != 1) {
                                                                     | label_69:
    0x0001b7d2 bne.w 0x1b3ae                                         |         goto label_9;
                                                                     |     }
                                                                     |     do {
                                                                     | label_15:
    0x0001b7d6 ldr r2, [sp, 0x18]                                    |         r2 = var_18h;
    0x0001b7d8 ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0001b7da cmp r2, 3                                             |         
    0x0001b7dc ldr r3, [r3, 0x28]                                    |         r3 = *((r3 + 0x28));
                                                                     |         if (r2 == 3) {
    0x0001b7de bne 0x1b808                                           |             
    0x0001b7e0 vmov.i64 d16, 0                                       |             __asm ("vmov.i64 d16, 0");
    0x0001b7e4 orr r4, r3, 2                                         |             r4 = r3 | 2;
                                                                     | label_16:
    0x0001b7e8 ldr r3, [sp, 0x14]                                    |             r3 = var_14h;
    0x0001b7ea movs r0, 0                                            |             r0 = 0;
    0x0001b7ec str r4, [r3, 0x28]                                    |             *((r3 + 0x28)) = r4;
    0x0001b7ee vstr d16, [r3, 0x10]                                  |             __asm ("vstr d16, [r3, 0x10]");
    0x0001b7f2 b 0x1b51e                                             |             goto label_5;
                                                                     | label_68:
    0x0001b7f4 ldr r3, [r5]                                          |             r3 = *(r5);
    0x0001b7f6 cmp r3, 0                                             |             
                                                                     |             if (r3 != 0) {
    0x0001b7f8 bne.w 0x1b9c4                                         |                 goto label_70;
                                                                     |             }
    0x0001b7fc ldr r5, [r4, 4]                                       |             r5 = *((r4 + 4));
    0x0001b7fe cmp r5, 2                                             |             
                                                                     |             if (r5 > 2) {
    0x0001b800 bgt.w 0x1ba4a                                         |                 goto label_71;
                                                                     |             }
    0x0001b804 ldr r3, [sp, 0x14]                                    |             r3 = var_14h;
    0x0001b806 ldr r3, [r3, 0x28]                                    |             r3 = *((r3 + 0x28));
                                                                     |         }
    0x0001b808 movs r2, 0                                            |         r2 = 0;
    0x0001b80a strd r2, r2, [sp, 0x20]                               |         __asm ("strd r2, r2, [sp, 0x20]");
    0x0001b80e b 0x1b75a                                             |         goto label_11;
                                                                     | label_31:
    0x0001b810 ldr r3, [sp, 4]                                       |         r3 = var_4h;
    0x0001b812 cmp r3, 1                                             |         
    0x0001b814 beq 0x1b7d6                                           |         
                                                                     |     } while (r3 == 1);
    0x0001b816 ldr r3, [pc, 0x300]                                   |     
    0x0001b818 add r3, pc                                            |     r3 = 0x37336;
    0x0001b81a str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001b81c movs r3, 2                                            |     r3 = 2;
    0x0001b81e str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b820 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_53:
    0x0001b822 cmp r3, r0                                            |     
    0x0001b824 ldr r0, [sp, 0x24]                                    |     r0 = *(arg_24h);
    0x0001b826 sbcs.w r0, r2, r0                                     |     __asm ("sbcs.w r0, r2, r0");
                                                                     |     if (r3 >= r0) {
    0x0001b82a bhs.w 0x1b57c                                         |         goto label_12;
                                                                     |     }
    0x0001b82e b 0x1b578                                             |     goto label_13;
                                                                     | label_45:
    0x0001b830 ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001b832 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001b834 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001b838 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001b83a blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001b83e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001b840 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001b844 ldr r1, [pc, 0x2d4]                                   |     
    0x0001b846 mov r2, r0                                            |     r2 = r0;
    0x0001b848 add r1, pc                                            |     r1 = 0x37368;
                                                                     | label_17:
    0x0001b84a movs r0, 0                                            |     r0 = 0;
    0x0001b84c bl 0x396b0                                            |     r0 = zbx_dsprintf ()
    0x0001b850 mov r3, r0                                            |     r3 = r0;
    0x0001b852 movs r0, 1                                            |     r0 = 1;
    0x0001b854 str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001b856 b 0x1b51e                                             |     goto label_5;
                                                                     | label_67:
    0x0001b858 ldr.w r3, [sl]                                        |     r3 = *(sl);
    0x0001b85c mov r2, r0                                            |     r2 = r0;
    0x0001b85e ldr r1, [sp, 0x38]                                    |     r1 = *(arg_38h);
    0x0001b860 mov r0, r5                                            |     r0 = r5;
    0x0001b862 ldr r7, [pc, 0x2bc]                                   |     
    0x0001b864 adds r3, r3, r1                                       |     r3 += r1;
    0x0001b866 ldr r1, [sp, 0x3c]                                    |     r1 = *(arg_3ch);
    0x0001b868 str.w r3, [sl]                                        |     __asm ("str.w r3, [sl]");
    0x0001b86c add r7, pc                                            |     r7 = 0x37392;
    0x0001b86e ldr.w r3, [sl, 4]                                     |     r3 = *((sl + 4));
    0x0001b872 adc.w r3, r3, r1                                      |     __asm ("adc.w r3, r3, r1");
    0x0001b876 mov r1, r7                                            |     r1 = r7;
    0x0001b878 str.w r3, [sl, 4]                                     |     __asm ("str.w r3, [sl, 4]");
    0x0001b87c mov r3, r6                                            |     r3 = r6;
    0x0001b87e bl 0x1b050                                            |     byte_value_from_proc_file ();
    0x0001b882 str r7, [sp, 0xc]                                     |     var_ch = r7;
    0x0001b884 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001b886 bne.w 0x1b560                                         |         goto label_8;
                                                                     |     }
    0x0001b88a ldr.w r3, [sl]                                        |     r3 = *(sl);
    0x0001b88e ldr r2, [sp, 0x38]                                    |     r2 = *(arg_38h);
    0x0001b890 ldr r1, [sp, 0x3c]                                    |     r1 = *(arg_3ch);
    0x0001b892 adds r3, r3, r2                                       |     r3 += r2;
    0x0001b894 ldr.w r2, [sl, 4]                                     |     r2 = *((sl + 4));
    0x0001b898 str.w r3, [sl]                                        |     __asm ("str.w r3, [sl]");
    0x0001b89c adc.w r2, r2, r1                                      |     __asm ("adc.w r2, r2, r1");
    0x0001b8a0 str.w r2, [sl, 4]                                     |     __asm ("str.w r2, [sl, 4]");
    0x0001b8a4 b 0x1b49c                                             |     goto label_14;
                                                                     | label_64:
    0x0001b8a6 movs r3, 3                                            |     r3 = 3;
    0x0001b8a8 str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0001b8aa b 0x1b27c                                             |     goto label_6;
                                                                     | label_32:
    0x0001b8ac ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b8ae cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001b8b0 beq 0x1b7d6                                           |         goto label_15;
                                                                     |     }
    0x0001b8b2 ldr r3, [pc, 0x270]                                   |     
    0x0001b8b4 add r3, pc                                            |     r3 = 0x373de;
    0x0001b8b6 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001b8b8 movs r3, 1                                            |     r3 = 1;
    0x0001b8ba str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b8bc b 0x1b3ae                                             |     goto label_9;
                                                                     | label_66:
    0x0001b8be ldr r5, [sp, 0x10]                                    |     r5 = var_10h;
    0x0001b8c0 orr r4, r3, 2                                         |     r4 = r3 | 2;
    0x0001b8c4 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0001b8c6 beq.w 0x1ba4e                                         |         goto label_72;
                                                                     |     }
    0x0001b8ca ldrd r0, r1, [sp, 0x20]                               |     __asm ("ldrd r0, r1, [var_20h]");
    0x0001b8ce bl 0x4152c                                            |     fcn_0004152c (r0, r1, r2);
    0x0001b8d2 vmov s15, r5                                          |     __asm ("vmov s15, r5");
    0x0001b8d6 vcvt.f64.s32 d17, s15                                 |     __asm ("vcvt.f64.s32 d17, s15");
    0x0001b8da vmov d16, r0, r1                                      |     __asm ("vmov d16, r0, r1");
    0x0001b8dc lsrs r0, r6, 0xc                                      |     r0 = r6 >> 0xc;
    0x0001b8de vdiv.f64 d16, d16, d17                                |     __asm ("vdiv.f64 d16, d16, d17");
    0x0001b8e0 lsrs r1, r4, 0xe                                      |     r1 = r4 >> 0xe;
    0x0001b8e2 b 0x1b7e8                                             |     goto label_16;
                                                                     | label_57:
    0x0001b8e4 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
                                                                     |     if (r3 == 0) {
    0x0001b8e6 cbz r3, 0x1b936                                       |         goto label_73;
                                                                     |     }
    0x0001b8e8 vmov s15, r3                                          |     __asm ("vmov s15, r3");
    0x0001b8ec vcvt.f64.s32 d16, s15                                 |     __asm ("vcvt.f64.s32 d16, s15");
    0x0001b8f0 vdiv.f64 d17, d9, d16                                 |     __asm ("vdiv.f64 d17, d9, d16");
                                                                     |     do {
                                                                     | label_19:
    0x0001b8f4 ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0001b8f6 movs r0, 0                                            |         r0 = 0;
    0x0001b8f8 str r2, [r3, 0x28]                                    |         *((r3 + 0x28)) = r2;
    0x0001b8fa vstr d17, [r3, 0x10]                                  |         __asm ("vstr d17, [r3, 0x10]");
    0x0001b8fe b 0x1b51e                                             |         goto label_5;
                                                                     | label_62:
    0x0001b900 vcmpe.f64 d9, d16                                     |         __asm ("vcmpe.f64 d9, d16");
    0x0001b904 vmrs apsr_nzcv, fpscr                                 |         __asm ("vmrs apsr_nzcv, fpscr");
    0x0001b908 str r3, [sp, 0x10]                                    |         var_10h = r3;
                                                                     |         if (r0 <= 0) {
    0x0001b90a bgt 0x1b92e                                           |             
    0x0001b90c vmov.f64 d9, d16                                      |             __asm ("vmov.f64 d9, d16");
    0x0001b910 str r6, [sp, 0xc]                                     |             var_ch = r6;
    0x0001b912 str r2, [sp, 0x1c]                                    |             var_1ch = r2;
    0x0001b914 b 0x1b3d4                                             |             goto label_0;
                                                                     | label_63:
    0x0001b916 vcmpe.f64 d9, d16                                     |             __asm ("vcmpe.f64 d9, d16");
    0x0001b91a vmrs apsr_nzcv, fpscr                                 |             __asm ("vmrs apsr_nzcv, fpscr");
    0x0001b91e str r3, [sp, 0x10]                                    |             var_10h = r3;
                                                                     |             if (r0 < 0) {
    0x0001b920 bmi 0x1b9c0                                           |                 goto label_74;
                                                                     |             }
    0x0001b922 movs r3, 1                                            |             r3 = 1;
    0x0001b924 vmov.f64 d9, d16                                      |             __asm ("vmov.f64 d9, d16");
    0x0001b928 str r6, [sp, 0xc]                                     |             var_ch = r6;
    0x0001b92a str r3, [sp, 0x1c]                                    |             var_1ch = r3;
    0x0001b92c b 0x1b3d4                                             |             goto label_0;
                                                                     |         }
    0x0001b92e ldr r3, [sp, 0x18]                                    |         r3 = var_18h;
    0x0001b930 str r6, [sp, 0xc]                                     |         var_ch = r6;
    0x0001b932 str r3, [sp, 0x1c]                                    |         var_1ch = r3;
    0x0001b934 b 0x1b3d4                                             |         goto label_0;
                                                                     | label_73:
    0x0001b936 vmov.i64 d17, 0                                       |         __asm ("vmov.i64 d17, 0");
    0x0001b93a b 0x1b8f4                                             |         
                                                                     |     } while (1);
                                                                     | label_65:
    0x0001b93c movs r3, 1                                            |     r3 = 1;
    0x0001b93e str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0001b940 b 0x1b27c                                             |     goto label_6;
                                                                     | label_33:
    0x0001b942 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b944 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001b946 beq 0x1b9f0                                           |         goto label_75;
                                                                     |     }
    0x0001b948 ldr r1, [pc, 0x1dc]                                   |     
    0x0001b94a ldr r0, [pc, 0x1e0]                                   |     
    0x0001b94c add r1, pc                                            |     r1 = 0x37478;
    0x0001b94e add r0, pc                                            |     r0 = 0x37480;
    0x0001b950 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001b954 mov r4, r0                                            |     r4 = r0;
                                                                     |     if (r0 != 0) {
    0x0001b956 cbz r0, 0x1b980                                       |         
    0x0001b958 ldr r1, [pc, 0x1d4]                                   |         
    0x0001b95a mov r2, r5                                            |         r2 = r5;
    0x0001b95c add r3, sp, 0x30                                      |         r3 += arg_30h;
    0x0001b95e add r1, pc                                            |         r1 = 0x37492;
    0x0001b960 bl 0x1b050                                            |         r0 = byte_value_from_proc_file ();
    0x0001b964 mov r5, r0                                            |         r5 = r0;
    0x0001b966 mov r0, r4                                            |         r0 = r4;
    0x0001b968 blx 0xc248                                            |         munmap (r0, r1);
                                                                     |         if (r5 != 0) {
    0x0001b96c cbnz r5, 0x1b980                                      |             goto label_76;
                                                                     |         }
    0x0001b96e ldrd r3, r2, [sp, 0x30]                               |         __asm ("ldrd r3, r2, [arg_30h]");
    0x0001b972 orrs r3, r2                                           |         r3 |= r2;
                                                                     |         if (r3 == r2) {
    0x0001b974 beq 0x1b99c                                           |             goto label_77;
                                                                     |         }
    0x0001b976 movs r3, 0                                            |         r3 = 0;
    0x0001b978 str r3, [sp, 0xc]                                     |         var_ch = r3;
    0x0001b97a movs r3, 3                                            |         r3 = 3;
    0x0001b97c str r3, [sp, 4]                                       |         var_4h = r3;
    0x0001b97e b 0x1b3ae                                             |         goto label_9;
                                                                     |     }
                                                                     | label_76:
    0x0001b980 ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001b982 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001b984 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001b988 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001b98a blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001b98e ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001b990 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001b994 ldr r1, [pc, 0x19c]                                   |     
    0x0001b996 mov r2, r0                                            |     r2 = r0;
    0x0001b998 add r1, pc                                            |     r1 = 0x374d0;
    0x0001b99a b 0x1b84a                                             |     goto label_17;
                                                                     | label_77:
    0x0001b99c ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001b99e movs r2, 0                                            |     r2 = 0;
    0x0001b9a0 ldr r3, [pc, 0x194]                                   |     
    0x0001b9a2 movw r1, 0x203                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001b9a6 ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0001b9a8 add r3, pc                                            |     r3 = 0x374e4;
    0x0001b9aa orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0001b9ae str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0001b9b0 ldr r0, [pc, 0x188]                                   |     
    0x0001b9b2 add r0, pc                                            |     r0 = 0x374f2;
    0x0001b9b4 bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0001b9b8 mov r3, r0                                            |     r3 = r0;
    0x0001b9ba movs r0, 1                                            |     r0 = 1;
    0x0001b9bc str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001b9be b 0x1b51e                                             |     goto label_5;
                                                                     | label_74:
    0x0001b9c0 str r6, [sp, 0xc]                                     |     var_ch = r6;
    0x0001b9c2 b 0x1b57e                                             |     goto label_4;
                                                                     | label_70:
    0x0001b9c4 ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001b9c6 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001b9c8 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001b9cc str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001b9ce ldr r0, [r5]                                          |     r0 = *(r5);
    0x0001b9d0 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001b9d4 ldr r1, [pc, 0x168]                                   |     
    0x0001b9d6 mov r2, r0                                            |     r2 = r0;
    0x0001b9d8 add r1, pc                                            |     r1 = 0x3751c;
    0x0001b9da b 0x1b84a                                             |     goto label_17;
                                                                     | label_35:
    0x0001b9dc ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001b9de cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001b9e0 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001b9e4 ldr r3, [pc, 0x15c]                                   |     
    0x0001b9e6 add r3, pc                                            |     r3 = 0x3752e;
    0x0001b9e8 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001b9ea movs r3, 4                                            |     r3 = 4;
    0x0001b9ec str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001b9ee b 0x1b3ae                                             |     goto label_9;
                                                                     | label_75:
    0x0001b9f0 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001b9f2 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0001b9f4 cmp r2, 3                                             |     
    0x0001b9f6 ldr r3, [r3, 0x28]                                    |     r3 = *((r3 + 0x28));
                                                                     |     if (r2 == 3) {
    0x0001b9f8 beq 0x1ba28                                           |         goto label_78;
                                                                     |     }
    0x0001b9fa vmov.i64 d9, 0                                        |     __asm ("vmov.i64 d9, 0");
    0x0001b9fe b 0x1b510                                             |     goto label_18;
                                                                     | label_36:
    0x0001ba00 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba02 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba04 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba08 ldr r3, [pc, 0x13c]                                   |     
    0x0001ba0a add r3, pc                                            |     r3 = 0x37556;
    0x0001ba0c str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba0e movs r3, 5                                            |     r3 = 5;
    0x0001ba10 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba12 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_37:
    0x0001ba14 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba16 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba18 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba1c ldr r3, [pc, 0x12c]                                   |     
    0x0001ba1e add r3, pc                                            |     r3 = 0x3756e;
    0x0001ba20 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba22 movs r3, 6                                            |     r3 = 6;
    0x0001ba24 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba26 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_78:
    0x0001ba28 vmov.i64 d17, 0                                       |     __asm ("vmov.i64 d17, 0");
    0x0001ba2c orr r2, r3, 2                                         |     r2 = r3 | 2;
    0x0001ba30 b 0x1b8f4                                             |     goto label_19;
                                                                     | label_38:
    0x0001ba32 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba34 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba36 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba3a ldr r3, [pc, 0x114]                                   |     
    0x0001ba3c add r3, pc                                            |     r3 = 0x37592;
    0x0001ba3e str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba40 movs r3, 7                                            |     r3 = 7;
    0x0001ba42 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba44 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_58:
    0x0001ba46 blx 0xbe48                                            |     fcn_0000be48 ();
                                                                     | label_71:
    0x0001ba4a movs r3, 1                                            |     r3 = 1;
    0x0001ba4c b 0x1b266                                             |     goto label_20;
                                                                     | label_72:
    0x0001ba4e vmov.i64 d16, 0                                       |     __asm ("vmov.i64 d16, 0");
    0x0001ba52 b 0x1b7e8                                             |     goto label_16;
                                                                     | label_27:
    0x0001ba54 movs r3, 0                                            |     r3 = 0;
    0x0001ba56 str r3, [sp, 8]                                       |     var_8h = r3;
                                                                     | label_28:
    0x0001ba58 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba5a cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba5c beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba60 ldr r3, [pc, 0xf0]                                    |     
    0x0001ba62 add r3, pc                                            |     r3 = 0x375ba;
    0x0001ba64 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba66 movs r3, 2                                            |     r3 = 2;
    0x0001ba68 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba6a b 0x1b3ae                                             |     goto label_9;
                                                                     | label_40:
    0x0001ba6c ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba6e cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba70 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba74 ldr r3, [pc, 0xe0]                                    |     
    0x0001ba76 add r3, pc                                            |     r3 = 0x375d2;
    0x0001ba78 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba7a movs r3, 9                                            |     r3 = 9;
    0x0001ba7c str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba7e b 0x1b3ae                                             |     goto label_9;
                                                                     | label_39:
    0x0001ba80 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001ba82 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001ba84 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001ba88 ldr r3, [pc, 0xd0]                                    |     
    0x0001ba8a add r3, pc                                            |     r3 = 0x375ea;
    0x0001ba8c str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001ba8e movs r3, 8                                            |     r3 = 8;
    0x0001ba90 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001ba92 b 0x1b3ae                                             |     goto label_9;
                                                                     | label_44:
    0x0001ba94 ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0001ba96 movs r2, 0                                            |     r2 = 0;
    0x0001ba98 ldr r3, [pc, 0xc4]                                    |     
    0x0001ba9a movw r1, 0x1f1                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001ba9e ldr r0, [r4, 0x28]                                    |     r0 = *((r4 + 0x28));
    0x0001baa0 add r3, pc                                            |     r3 = 0x37604;
    0x0001baa2 orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0001baa6 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0001baa8 ldr r0, [pc, 0xb8]                                    |     
    0x0001baaa add r0, pc                                            |     r0 = 0x37612;
    0x0001baac bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0001bab0 mov r3, r0                                            |     r3 = r0;
    0x0001bab2 movs r0, 1                                            |     r0 = 1;
    0x0001bab4 str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001bab6 b 0x1b51e                                             |     goto label_5;
                                                                     | label_43:
    0x0001bab8 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001baba cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001babc beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001bac0 ldr r3, [pc, 0xa4]                                    |     
    0x0001bac2 add r3, pc                                            |     r3 = 0x3762e;
    0x0001bac4 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001bac6 movs r3, 0xc                                          |     r3 = 0xc;
    0x0001bac8 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001baca b 0x1b3ae                                             |     goto label_9;
                                                                     | label_42:
    0x0001bacc ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001bace cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001bad0 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001bad4 ldr r3, [pc, 0x94]                                    |     
    0x0001bad6 add r3, pc                                            |     r3 = 0x37646;
    0x0001bad8 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001bada movs r3, 0xb                                          |     r3 = 0xb;
    0x0001badc str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001bade b 0x1b3ae                                             |     goto label_9;
                                                                     | label_41:
    0x0001bae0 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x0001bae2 cmp r3, 1                                             |     
                                                                     |     if (r3 == 1) {
    0x0001bae4 beq.w 0x1b7d6                                         |         goto label_15;
                                                                     |     }
    0x0001bae8 ldr r3, [pc, 0x84]                                    |     
    0x0001baea add r3, pc                                            |     r3 = 0x3765e;
    0x0001baec str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0001baee movs r3, 0xa                                          |     r3 = 0xa;
    0x0001baf0 str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001baf2 b 0x1b3ae                                             |     goto label_9;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1bb74 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.PROC_NUM ()                                      | void PROC_NUM (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_bp_0h;
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_3;
                                                                 |     int16_t var_ch_3;
                                                                 |     int16_t var_10h_2;
                                                                 |     int32_t var_14h_2;
                                                                 |     int32_t var_14h_3;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_24h_2;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h_2;
                                                                 |     int32_t var_40h_3;
                                                                 |     int16_t var_4ch_2;
                                                                 |     int16_t var_50h_2;
                                                                 |     int16_t var_54h_2;
                                                                 |     int16_t var_58h_2;
                                                                 |     int16_t var_5ch_2;
                                                                 |     int16_t var_60h_2;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     int32_t var_68h_2;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_bch;
                                                                 |     int16_t var_d8h;
                                                                 |     int16_t var_f4h;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_2;
                                                                 |     int32_t var_10h_3;
                                                                 |     int32_t var_10h_4;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch_2;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_34h_2;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h_2;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_7ch;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_a0h;
                                                                 |     int16_t var_a4h;
                                                                 |     int16_t var_c0h;
                                                                 |     int16_t var_c4h;
                                                                 |     int16_t var_d0h;
                                                                 |     int16_t var_d4h;
                                                                 |     int16_t var_fch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_368h;
                                                                 |     int16_t var_3f8h;
                                                                 |     FILE * stream;
                                                                 |     int16_t var_822h;
                                                                 |     int8_t var_7h;
                                                                 |     int16_t var_1000h;
                                                                 |     int32_t var_0h_4;
                                                                 |     int16_t var_1020h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001bb74 ldr r2, [pc, 0x388]                               |     
    0x0001bb76 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0001bb7a mov r4, r0                                        |     r4 = r0;
    0x0001bb7c ldr r3, [pc, 0x384]                               |     r3 = *(0x1bf04);
    0x0001bb7e sub.w sp, sp, 0x1020                              |     
    0x0001bb82 add r2, pc                                        |     r2 = 0x37a86;
    0x0001bb84 sub sp, 4                                         |     
    0x0001bb86 ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x0001bb88 add.w r0, sp, 0x1000                              |     r0 += var_1000h;
    0x0001bb8c ldr r3, [r2, r3]                                  |     
    0x0001bb8e adds r0, 0x1c                                     |     r0 += 0x1c;
    0x0001bb90 mov r8, r1                                        |     r8 = r1;
    0x0001bb92 cmp r5, 4                                         |     
    0x0001bb94 ldr r3, [r3]                                      |     r3 = *(0x37a86);
    0x0001bb96 str r3, [r0]                                      |     *(r0) = r3;
    0x0001bb98 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r5 > 4) {
    0x0001bb9c bgt.w 0x1bd98                                     |         goto label_49;
                                                                 |     }
    0x0001bba0 cmp r5, 0                                         |     
    0x0001bba2 itet gt                                           |     
                                                                 |     if (r5 <= 0) {
    0x0001bba4 ldrgt r3, [r4, 8]                                 |         r3 = *((r4 + 8));
                                                                 |     }
                                                                 |     if (r5 > 0) {
    0x0001bba6 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r5 <= 0) {
    0x0001bba8 ldrgt r3, [r3]                                    |         r3 = *(r3);
                                                                 |     }
    0x0001bbaa cmp r5, 1                                         |     
    0x0001bbac str r3, [sp]                                      |     *(sp) = r3;
                                                                 |     if (r5 <= 1) {
    0x0001bbae ble.w 0x1bcf8                                     |         goto label_50;
                                                                 |     }
    0x0001bbb2 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x0001bbb4 ldr.w sb, [r3, 4]                                 |     sb = *((r3 + 4));
    0x0001bbb8 cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x0001bbbc beq 0x1bbca                                       |         
    0x0001bbbe ldrb.w r3, [sb]                                   |         r3 = *(sb);
    0x0001bbc2 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0001bbc4 bne.w 0x1be46                                     |             goto label_51;
                                                                 |         }
    0x0001bbc8 mov sb, r3                                        |         sb = r3;
                                                                 |     }
                                                                 | label_8:
    0x0001bbca cmp r5, 2                                         |     
                                                                 |     if (r5 > 2) {
    0x0001bbcc bgt.w 0x1bd02                                     |         goto label_52;
                                                                 |     }
                                                                 | label_2:
    0x0001bbd0 movs r3, 0                                        |     r3 = 0;
    0x0001bbd2 strd r3, r3, [sp, 0xc]                            |     __asm ("strd r3, r3, [var_ch]");
                                                                 | label_3:
    0x0001bbd6 ldr r0, [pc, 0x330]                               |     
    0x0001bbd8 add r0, pc                                        |     r0 = 0x37ae6;
    0x0001bbda blx 0xbfd8                                        |     r0 = getenv (r0);
    0x0001bbde mov r7, r0                                        |     r7 = r0;
    0x0001bbe0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bbe2 beq.w 0x1be5e                                     |         goto label_53;
                                                                 |     }
    0x0001bbe6 ldr r3, [pc, 0x324]                               |     
    0x0001bbe8 movw r2, 0x7453                                   |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001bbec ldr.w sl, [pc, 0x320]                             |     
    0x0001bbf0 movt r2, 0x7461                                   |     r2 = (r2 & 0xFFFF) | 0xNaN0000;
    0x0001bbf4 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x0001bbf6 add r3, pc                                        |     r3 = 0x37b08;
    0x0001bbf8 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001bbfa movs r3, 0                                        |     r3 = 0;
    0x0001bbfc add sl, pc                                        |     sl = 0x37b10;
    0x0001bbfe mov r4, r3                                        |     r4 = r3;
    0x0001bc00 mov r5, r3                                        |     r5 = r3;
    0x0001bc02 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x0001bc04 mov r0, r7                                        |         r0 = r7;
    0x0001bc06 blx 0xc360                                        |         r0 = fcn_0000c360 ();
    0x0001bc0a mov r6, r0                                        |         r6 = r0;
    0x0001bc0c cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001bc0e beq.w 0x1bd46                                     |             goto label_54;
                                                                 |         }
                                                                 |         if (r4 != 0) {
                                                                 | label_4:
    0x0001bc12 cbz r4, 0x1bc1a                                   |             
    0x0001bc14 mov r0, r4                                        |             r0 = r4;
    0x0001bc16 blx 0xc248                                        |             munmap (r0, r1);
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x0001bc1a cbz r5, 0x1bc22                                   |             
    0x0001bc1c mov r0, r5                                        |             r0 = r5;
    0x0001bc1e blx 0xc248                                        |             munmap (r0, r1);
                                                                 |         }
    0x0001bc22 adds r6, 0x13                                     |         r6 += 0x13;
    0x0001bc24 movs r2, 0xa                                      |         r2 = 0xa;
    0x0001bc26 movs r1, 0                                        |         r1 = 0;
    0x0001bc28 mov r0, r6                                        |         r0 = r6;
    0x0001bc2a movs r4, 0                                        |         r4 = 0;
    0x0001bc2c mov r5, r4                                        |         r5 = r4;
    0x0001bc2e blx 0xbc70                                        |         r0 = fcn_0000bc70 ();
    0x0001bc32 cmp r0, 0                                         |         
    0x0001bc34 beq 0x1bc04                                       |         
                                                                 |     } while (r0 == 0);
    0x0001bc36 add.w fp, sp, 0x1c                                |     
    0x0001bc3a ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x0001bc3c mov r3, r6                                        |     r3 = r6;
    0x0001bc3e mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x0001bc42 mov r0, fp                                        |     r0 = fp;
    0x0001bc44 bl 0x38ea0                                        |     zbx_snprintf ();
    0x0001bc48 mov r1, sl                                        |     r1 = sl;
    0x0001bc4a mov r0, fp                                        |     r0 = fp;
    0x0001bc4c blx 0xc39c                                        |     r0 = fcn_0000c39c ();
    0x0001bc50 mov r4, r0                                        |     r4 = r0;
    0x0001bc52 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bc54 beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
    0x0001bc56 ldr r2, [pc, 0x2bc]                               |     
    0x0001bc58 mov r3, r6                                        |     r3 = r6;
    0x0001bc5a mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x0001bc5e mov r0, fp                                        |     r0 = fp;
    0x0001bc60 add r2, pc                                        |     r2 = 0x37b7a;
    0x0001bc62 bl 0x38ea0                                        |     zbx_snprintf ();
    0x0001bc66 mov r1, sl                                        |     r1 = sl;
    0x0001bc68 mov r0, fp                                        |     r0 = fp;
    0x0001bc6a blx 0xc39c                                        |     r0 = fcn_0000c39c ();
    0x0001bc6e mov r5, r0                                        |     r5 = r0;
    0x0001bc70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bc72 beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
    0x0001bc74 mov r1, r0                                        |     r1 = r0;
    0x0001bc76 ldr r2, [sp]                                      |     r2 = *(sp);
    0x0001bc78 mov r0, r4                                        |     r0 = r4;
    0x0001bc7a bl 0x1afb8                                        |     fcn_0001afb8 (r0, r1, r2, r3);
    0x0001bc7e adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0001bc80 beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
    0x0001bc82 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x0001bc86 beq 0x1bc94                                       |         goto label_55;
                                                                 |     }
    0x0001bc88 mov r1, sb                                        |     r1 = sb;
    0x0001bc8a mov r0, r5                                        |     r0 = r5;
    0x0001bc8c bl 0x1ab4c                                        |     fcn_0001ab4c (r0, r1, r2);
    0x0001bc90 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0001bc92 beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
                                                                 | label_55:
    0x0001bc94 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x0001bc96 mov r0, r4                                        |     r0 = r4;
    0x0001bc98 bl 0x1af1c                                        |     fcn_0001af1c (r0, r1);
    0x0001bc9c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0001bc9e beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
    0x0001bca0 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0001bca2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0001bca4 beq 0x1bd32                                       |         goto label_9;
                                                                 |     }
    0x0001bca6 addw r6, sp, 0x81c                                |     __asm ("addw r6, stream");
    0x0001bcaa add.w fp, sp, 0x820                               |     
    0x0001bcae mov r0, r5                                        |     r0 = r5;
    0x0001bcb0 blx 0xbe54                                        |     fcn_0000be54 ();
                                                                 | label_1:
    0x0001bcb4 mov r2, r5                                        |     r2 = r5;
    0x0001bcb6 mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x0001bcba mov r0, r6                                        |     r0 = r6;
    0x0001bcbc blx 0xbd2c                                        |     r0 = ferror (r0);
    0x0001bcc0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bcc2 beq 0x1bc04                                       |         goto label_0;
                                                                 |     }
    0x0001bcc4 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001bcc6 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0001bcc8 cmp r3, r2                                        |     
                                                                 |     if (r3 != r2) {
    0x0001bcca bne 0x1bcb4                                       |         goto label_1;
                                                                 |     }
    0x0001bccc ldrh.w r2, [fp]                                   |     r2 = *(fp);
    0x0001bcd0 movw r3, 0x3a65                                   |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001bcd4 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0001bcd6 bne 0x1bcb4                                       |         goto label_1;
                                                                 |     }
    0x0001bcd8 ldrb.w r3, [sp, 0x822]                            |     r3 = var_822h;
    0x0001bcdc cmp r3, 9                                         |     
                                                                 |     if (r3 != 9) {
    0x0001bcde bne 0x1bcb4                                       |         goto label_1;
                                                                 |     }
    0x0001bce0 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0001bce2 ldrb r3, [r6, 7]                                  |     r3 = var_7h;
    0x0001bce4 subs r2, 2                                        |     r2 -= 2;
    0x0001bce6 cmp r2, 3                                         |     
                                                                 |     if (r2 > 3) {
    0x0001bce8 bhi.w 0x1bef6                                     |         goto label_56;
                                                                 |     }
                                                                 |     /* switch table (5 cases) at 0x1bcf0 */
    0x0001bcec tbh [pc, r2, lsl 1]                               |     __asm ("tbh [pc, r2, lsl 1]");
                                                                 | label_50:
    0x0001bcf8 cmp r5, 2                                         |     
    0x0001bcfa mov.w sb, 0                                       |     sb = 0;
                                                                 |     if (r5 <= 2) {
    0x0001bcfe ble.w 0x1bbd0                                     |         goto label_2;
                                                                 |     }
                                                                 | label_52:
    0x0001bd02 movs r7, 0                                        |     r7 = 0;
                                                                 | label_11:
    0x0001bd04 ldr r6, [r4, 8]                                   |     r6 = *((r4 + 8));
    0x0001bd06 ldr r4, [r6, 8]                                   |     r4 = *((r6 + 8));
    0x0001bd08 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0001bd0a beq.w 0x1be42                                     |         goto label_57;
                                                                 |     }
    0x0001bd0e ldrb r3, [r4]                                     |     r3 = *(r4);
    0x0001bd10 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001bd12 bne 0x1bdbe                                       |         goto label_58;
                                                                 |     }
                                                                 | label_6:
    0x0001bd14 str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 | label_5:
    0x0001bd16 cmp r5, 3                                         |     
    0x0001bd18 ite ne                                            |     
                                                                 |     if (r5 == 3) {
    0x0001bd1a ldrne r3, [r6, 0xc]                               |         r3 = *((r6 + 0xc));
                                                                 |     }
                                                                 |     if (r5 != 3) {
    0x0001bd1c moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x0001bd1e str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001bd20 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0001bd22 beq.w 0x1bbd6                                     |         goto label_3;
                                                                 |     }
                                                                 | label_10:
    0x0001bd26 movs r3, 0                                        |     r3 = 0;
    0x0001bd28 mov r1, r3                                        |     r1 = r3;
    0x0001bd2a b 0x1bd60                                         |     goto label_59;
    0x0001bd2c cmp r3, 0x53                                      |     
                                                                 |     if (r3 != 0x53) {
    0x0001bd2e bne.w 0x1bc04                                     |         goto label_0;
                                                                 |     }
                                                                 | label_9:
    0x0001bd32 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0001bd34 mov r0, r7                                        |     r0 = r7;
    0x0001bd36 adds r3, 1                                        |     r3++;
    0x0001bd38 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0001bd3a blx 0xc360                                        |     r0 = fcn_0000c360 ();
    0x0001bd3e mov r6, r0                                        |     r6 = r0;
    0x0001bd40 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001bd42 bne.w 0x1bc12                                     |         goto label_4;
                                                                 |     }
                                                                 |     if (r4 != 0) {
                                                                 | label_54:
    0x0001bd46 cbz r4, 0x1bd4e                                   |         
    0x0001bd48 mov r0, r4                                        |         r0 = r4;
    0x0001bd4a blx 0xc248                                        |         munmap (r0, r1);
                                                                 |     }
                                                                 |     if (r5 != 0) {
    0x0001bd4e cbz r5, 0x1bd56                                   |         
    0x0001bd50 mov r0, r5                                        |         r0 = r5;
    0x0001bd52 blx 0xc248                                        |         munmap (r0, r1);
                                                                 |     }
    0x0001bd56 mov r0, r7                                        |     r0 = r7;
    0x0001bd58 blx 0xc494                                        |     fcn_0000c494 ();
    0x0001bd5c ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0001bd5e asrs r1, r3, 0x1f                                 |     r1 = r3 >> 0x1f;
                                                                 | label_59:
    0x0001bd60 ldr.w r2, [r8, 0x28]                              |     r2 = *((r8 + 0x28));
    0x0001bd64 movs r0, 0                                        |     r0 = 0;
    0x0001bd66 strd r3, r1, [r8, 8]                              |     __asm ("strd r3, r1, [r8, 8]");
    0x0001bd6a orr r2, r2, 1                                     |     r2 |= 1;
    0x0001bd6e str.w r2, [r8, 0x28]                              |     __asm ("str.w r2, [r8, 0x28]");
                                                                 |     do {
                                                                 | label_7:
    0x0001bd72 ldr r2, [pc, 0x1a4]                               |         
    0x0001bd74 add.w r1, sp, 0x1000                              |         r1 += var_1000h;
    0x0001bd78 ldr r3, [pc, 0x188]                               |         r3 = *(0x1bf04);
    0x0001bd7a adds r1, 0x1c                                     |         r1 += 0x1c;
    0x0001bd7c add r2, pc                                        |         r2 = 0x37c9a;
    0x0001bd7e ldr r3, [r2, r3]                                  |         r3 = *(0x37c9a);
    0x0001bd80 ldr r2, [r3]                                      |         r2 = *(0x37c9a);
    0x0001bd82 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0001bd84 eors r2, r3                                       |         r2 ^= r3;
    0x0001bd86 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001bd8a bne.w 0x1bef2                                     |             goto label_60;
                                                                 |         }
    0x0001bd8e add.w sp, sp, 0x1020                              |         
    0x0001bd92 add sp, 4                                         |         
    0x0001bd94 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_49:
    0x0001bd98 ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x0001bd9a movs r2, 0                                        |         r2 = 0;
    0x0001bd9c ldr r3, [pc, 0x17c]                               |         
    0x0001bd9e mov.w r1, 0x2e0                                   |         r1 = case.0x3207a.11;
    0x0001bda2 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0001bda6 str.w r0, [r8, 0x28]                              |         __asm ("str.w r0, [r8, 0x28]");
    0x0001bdaa add r3, pc                                        |         r3 = 0x37cca;
    0x0001bdac ldr r0, [pc, 0x170]                               |         
    0x0001bdae add r0, pc                                        |         r0 = 0x37cd2;
    0x0001bdb0 bl 0x35d28                                        |         r0 = zbx_strdup2 ();
    0x0001bdb4 mov r3, r0                                        |         r3 = r0;
    0x0001bdb6 movs r0, 1                                        |         r0 = 1;
    0x0001bdb8 str.w r3, [r8, 0x20]                              |         __asm ("str.w r3, [r8, 0x20]");
    0x0001bdbc b 0x1bd72                                         |         
                                                                 |     } while (1);
                                                                 | label_58:
    0x0001bdbe ldr r1, [pc, 0x164]                               |     
    0x0001bdc0 mov r0, r4                                        |     r0 = r4;
    0x0001bdc2 add r1, pc                                        |     r1 = 0x37cec;
    0x0001bdc4 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001bdc8 mov r3, r0                                        |     r3 = r0;
    0x0001bdca str r0, [sp, 0x10]                                |     var_10h = r0;
    0x0001bdcc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bdce beq 0x1bd16                                       |         goto label_5;
                                                                 |     }
    0x0001bdd0 ldr r1, [pc, 0x154]                               |     
    0x0001bdd2 mov r0, r4                                        |     r0 = r4;
    0x0001bdd4 add r1, pc                                        |     r1 = 0x37d00;
    0x0001bdd6 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001bdda cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bddc beq 0x1be8a                                       |         goto label_61;
                                                                 |     }
    0x0001bdde ldr r1, [pc, 0x14c]                               |     
    0x0001bde0 mov r0, r4                                        |     r0 = r4;
    0x0001bde2 add r1, pc                                        |     r1 = 0x37d14;
    0x0001bde4 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001bde8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bdea beq 0x1beb8                                       |         goto label_62;
                                                                 |     }
    0x0001bdec ldr r1, [pc, 0x140]                               |     
    0x0001bdee mov r0, r4                                        |     r0 = r4;
    0x0001bdf0 add r1, pc                                        |     r1 = 0x37d24;
    0x0001bdf2 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001bdf6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001bdf8 beq 0x1bebe                                       |         goto label_63;
                                                                 |     }
    0x0001bdfa ldr r1, [pc, 0x138]                               |     
    0x0001bdfc mov r0, r4                                        |     r0 = r4;
    0x0001bdfe add r1, pc                                        |     r1 = 0x37d38;
    0x0001be00 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001be04 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001be06 beq 0x1beec                                       |         goto label_64;
                                                                 |     }
    0x0001be08 ldr r1, [pc, 0x12c]                               |     
    0x0001be0a mov r0, r4                                        |     r0 = r4;
    0x0001be0c add r1, pc                                        |     r1 = 0x37d48;
    0x0001be0e blx 0xbc58                                        |     fcn_0000bc58 ();
    0x0001be12 movs r3, 5                                        |     r3 = 5;
    0x0001be14 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001be16 beq.w 0x1bd14                                     |         goto label_6;
                                                                 |     }
    0x0001be1a ldr.w r0, [r8, 0x28]                              |     r0 = *((r8 + 0x28));
    0x0001be1e movs r2, 0                                        |     r2 = 0;
    0x0001be20 ldr r3, [pc, 0x118]                               |     
    0x0001be22 movw r1, 0x30a                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001be26 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0001be2a str.w r0, [r8, 0x28]                              |     __asm ("str.w r0, [r8, 0x28]");
    0x0001be2e add r3, pc                                        |     r3 = 0x37d6e;
    0x0001be30 ldr r0, [pc, 0x10c]                               |     
    0x0001be32 add r0, pc                                        |     r0 = 0x37d76;
    0x0001be34 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x0001be38 mov r3, r0                                        |     r3 = r0;
    0x0001be3a movs r0, 1                                        |     r0 = 1;
    0x0001be3c str.w r3, [r8, 0x20]                              |     __asm ("str.w r3, [r8, 0x20]");
    0x0001be40 b 0x1bd72                                         |     goto label_7;
                                                                 | label_57:
    0x0001be42 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x0001be44 b 0x1bd16                                         |     goto label_5;
                                                                 | label_51:
    0x0001be46 blx 0xc15c                                        |     fcn_0000c15c ();
    0x0001be4a movs r3, 0                                        |     r3 = 0;
    0x0001be4c mov r5, r0                                        |     r5 = r0;
    0x0001be4e str r3, [r5]                                      |     *(r5) = r3;
    0x0001be50 mov r0, sb                                        |     r0 = sb;
    0x0001be52 blx 0xbc18                                        |     r0 = getpwnam ();
    0x0001be56 mov sb, r0                                        |     sb = r0;
                                                                 |     if (r0 == 0) {
    0x0001be58 cbz r0, 0x1bea8                                   |         goto label_65;
                                                                 |     }
    0x0001be5a ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x0001be5c b 0x1bbca                                         |     goto label_8;
                                                                 | label_53:
    0x0001be5e ldr.w r3, [r8, 0x28]                              |     r3 = *((r8 + 0x28));
    0x0001be62 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001be66 str.w r3, [r8, 0x28]                              |     __asm ("str.w r3, [r8, 0x28]");
    0x0001be6a blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0001be6e ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001be70 bl 0x26fdc                                        |     zbx_strerror ();
    0x0001be74 ldr r1, [pc, 0xcc]                                |     
    0x0001be76 mov r2, r0                                        |     r2 = r0;
    0x0001be78 mov r0, r7                                        |     r0 = r7;
    0x0001be7a add r1, pc                                        |     r1 = 0x37dc2;
    0x0001be7c bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x0001be80 mov r3, r0                                        |     r3 = r0;
    0x0001be82 movs r0, 1                                        |     r0 = 1;
    0x0001be84 str.w r3, [r8, 0x20]                              |     __asm ("str.w r3, [r8, 0x20]");
    0x0001be88 b 0x1bd72                                         |     goto label_7;
                                                                 | label_61:
    0x0001be8a movs r3, 1                                        |     r3 = 1;
    0x0001be8c str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001be8e b 0x1bd16                                         |     goto label_5;
    0x0001be90 cmp r3, 0x54                                      |     
                                                                 |     if (r3 == 0x54) {
    0x0001be92 beq.w 0x1bd32                                     |         goto label_9;
                                                                 |     }
    0x0001be96 b 0x1bc04                                         |     goto label_0;
    0x0001be98 cmp r3, 0x44                                      |     
                                                                 |     if (r3 == 0x44) {
    0x0001be9a beq.w 0x1bd32                                     |         goto label_9;
                                                                 |     }
    0x0001be9e b 0x1bc04                                         |     goto label_0;
    0x0001bea0 cmp r3, 0x5a                                      |     
                                                                 |     if (r3 == 0x5a) {
    0x0001bea2 beq.w 0x1bd32                                     |         goto label_9;
                                                                 |     }
    0x0001bea6 b 0x1bc04                                         |     goto label_0;
                                                                 | label_65:
    0x0001bea8 ldr r3, [r5]                                      |     r3 = *(r5);
                                                                 |     if (r3 != 0) {
    0x0001beaa cbnz r3, 0x1bec4                                  |         goto label_66;
                                                                 |     }
    0x0001beac ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x0001beae cmp r5, 2                                         |     
                                                                 |     if (r5 <= 2) {
    0x0001beb0 ble.w 0x1bd26                                     |         goto label_10;
                                                                 |     }
    0x0001beb4 movs r7, 1                                        |     r7 = 1;
    0x0001beb6 b 0x1bd04                                         |     goto label_11;
                                                                 | label_62:
    0x0001beb8 movs r3, 2                                        |     r3 = 2;
    0x0001beba str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001bebc b 0x1bd16                                         |     goto label_5;
                                                                 | label_63:
    0x0001bebe movs r3, 3                                        |     r3 = 3;
    0x0001bec0 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001bec2 b 0x1bd16                                         |     goto label_5;
                                                                 | label_66:
    0x0001bec4 ldr.w r3, [r8, 0x28]                              |     r3 = *((r8 + 0x28));
    0x0001bec8 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001becc str.w r3, [r8, 0x28]                              |     __asm ("str.w r3, [r8, 0x28]");
    0x0001bed0 ldr r0, [r5]                                      |     r0 = *(r5);
    0x0001bed2 bl 0x26fdc                                        |     zbx_strerror ();
    0x0001bed6 ldr r1, [pc, 0x70]                                |     
    0x0001bed8 mov r2, r0                                        |     r2 = r0;
    0x0001beda mov r0, sb                                        |     r0 = sb;
    0x0001bedc add r1, pc                                        |     r1 = 0x37e2a;
    0x0001bede bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x0001bee2 mov r3, r0                                        |     r3 = r0;
    0x0001bee4 movs r0, 1                                        |     r0 = 1;
    0x0001bee6 str.w r3, [r8, 0x20]                              |     __asm ("str.w r3, [r8, 0x20]");
    0x0001beea b 0x1bd72                                         |     goto label_7;
                                                                 | label_64:
    0x0001beec movs r3, 4                                        |     r3 = 4;
    0x0001beee str r3, [sp, 0x10]                                |     var_10h = r3;
    0x0001bef0 b 0x1bd16                                         |     goto label_5;
                                                                 | label_60:
    0x0001bef2 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_56:
    0x0001bef6 cmp r3, 0x52                                      |     
                                                                 |     if (r3 == 0x52) {
    0x0001bef8 beq.w 0x1bd32                                     |         goto label_9;
                                                                 |     }
    0x0001befc b 0x1bc04                                         |     goto label_0;
    0x000216f4 muls r0, r6, r0                                   |     r0 = r6 * r0;
    0x000216f6 cmp.w r3, 0x4000                                  |     
    0x000216fa bne.w 0x21826                                     |     
                                                                 |     while (1) {
    0x000216fe ldr r2, [pc, 0x1cc]                               |         
    0x00021700 ldr r3, [pc, 0x1bc]                               |         r3 = *(0x218c0);
    0x00021702 add r2, pc                                        |         r2 = 0x42fd4;
    0x00021704 ldr r3, [r2, r3]                                  |         r3 = *(0x42fd4);
    0x00021706 ldr r2, [r3]                                      |         r2 = *(0x42fd4);
    0x00021708 ldr r3, [sp, 0x1c]                                |         r3 = var_1ch;
    0x0002170a eors r2, r3                                       |         r2 ^= r3;
    0x0002170c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00021710 bne.w 0x218b8                                     |             goto label_67;
                                                                 |         }
    0x00021714 mov r0, r4                                        |         r0 = r4;
    0x00021716 add sp, 0x24                                      |         
    0x00021718 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00021826 ldr r5, [sp, 0x14]                                |         r5 = var_14h;
    0x00021828 movs r1, 0xc8                                     |         r1 = 0xc8;
    0x0002182a ldr r3, [pc, 0xc4]                                |         
    0x0002182c ldr r0, [pc, 0xc4]                                |         
    0x0002182e ldr r2, [r5, 0x28]                                |         r2 = *((r5 + 0x28));
    0x00021830 add r3, pc                                        |         r3 = 0x43126;
    0x00021832 add r0, pc                                        |         r0 = 0x4312a;
    0x00021834 orr r2, r2, 0x20                                  |         r2 |= 0x20;
    0x00021838 str r2, [r5, 0x28]                                |         *((r5 + 0x28)) = r2;
    0x0002183a mov r2, r4                                        |         r2 = r4;
    0x0002183c bl 0x35d28                                        |         zbx_strdup2 ();
    0x00021840 str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00021842 ldr r0, [r7]                                      |         r0 = *(r7);
                                                                 |         if (r0 != 0) {
    0x00021844 cbz r0, 0x2184c                                   |             
    0x00021846 blx 0xbd14                                        |             gai_strerror ();
    0x0002184a str r4, [r7]                                      |             *(r7) = r4;
                                                                 |         }
    0x0002184c mov.w r4, -1                                      |         r4 = -1;
    0x00021850 b 0x216fe                                         |         
                                                                 |     }
                                                                 | label_67:
    0x000218b8 blx 0xbe48                                        |     fcn_0000be48 ();
    0x000218bc push {r2, r3, r4, r5, r6, r7, lr}                 |     
    0x000218be movs r3, r0                                       |     r3 = r0;
    0x000218c0 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000218c2 movs r0, r0                                       |     
    0x000218c4 ldr r6, [r3, r3]                                  |     r6 = *((r3 + r3));
    0x000218c6 movs r2, r0                                       |     r2 = r0;
    0x000218c8 ldr r6, [r3, r5]                                  |     r6 = *((r3 + r5));
    0x000218ca movs r2, r0                                       |     r2 = r0;
    0x000218cc push {r1, r3, r5, r6, r7}                         |     
    0x000218ce movs r3, r0                                       |     r3 = r0;
    0x000218d0 ldr r6, [r2, r1]                                  |     r6 = *((r2 + r1));
    0x000218d2 movs r2, r0                                       |     r2 = r0;
    0x000218d4 ldr r4, [r3, r1]                                  |     r4 = *((r3 + r1));
    0x000218d6 movs r2, r0                                       |     r2 = r0;
    0x000218d8 ldrsb r4, [r4, r7]                                |     r4 = *((r4 + r7));
    0x000218da movs r2, r0                                       |     r2 = r0;
    0x000218dc ldr r4, [r3, r1]                                  |     r4 = *((r3 + r1));
    0x000218de movs r2, r0                                       |     r2 = r0;
    0x000218e0 adds r1, 0x82                                     |     r1 += 0x82;
    0x000218e2 movs r2, r0                                       |     r2 = r0;
    0x000218e4 adds r2, 0x70                                     |     r2 += 0x70;
    0x000218e6 movs r2, r0                                       |     r2 = r0;
    0x000218e8 adds r1, 0xd2                                     |     r1 += 0xd2;
    0x000218ea movs r2, r0                                       |     r2 = r0;
    0x000218ec ldrsb r0, [r7, r5]                                |     r0 = *((r7 + r5));
    0x000218ee movs r2, r0                                       |     r2 = r0;
    0x000218f0 ldr r0, [r1, r0]                                  |     r0 = *((r1 + r0));
    0x000218f2 movs r2, r0                                       |     r2 = r0;
    0x000218f4 ldrsb r2, [r4, r5]                                |     r2 = *((r4 + r5));
    0x000218f6 movs r2, r0                                       |     r2 = r0;
    0x000218f8 adds r1, 0x68                                     |     r1 += 0x68;
    0x000218fa movs r2, r0                                       |     r2 = r0;
    0x000218fc ldrsb r0, [r5, r4]                                |     r0 = *((r5 + r4));
    0x000218fe movs r2, r0                                       |     r2 = r0;
    0x00021900 cmp r0, 0x84                                      |     
    0x00021902 movs r2, r0                                       |     r2 = r0;
    0x00021904 adds r0, 0xc2                                     |     r0 += 0xc2;
    0x00021906 movs r2, r0                                       |     r2 = r0;
    0x00021908 ldrsb r0, [r3, r3]                                |     r0 = *((r3 + r3));
    0x0002190a movs r2, r0                                       |     r2 = r0;
    0x0002190c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00021910 mov r5, r0                                        |     r5 = r0;
    0x00021912 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00021914 sub sp, 0x104                                     |     
    0x00021916 movs r4, 0                                        |     r4 = 0;
    0x00021918 ldr.w r0, [pc, 0x45c]                             |     r0 = *(0x00021d78);
    0x0002191c ldr.w r2, [pc, 0x45c]                             |     
    0x00021920 cmp r3, 3                                         |     
    0x00021922 ldr.w r7, [pc, 0x45c]                             |     r7 = *(0x00021d80);
    0x00021926 add r0, pc                                        |     r0 += pc;
    0x00021928 ldr r2, [r0, r2]                                  |     r2 = *((r0 + r2));
    0x0002192a add r7, pc                                        |     r7 += pc;
    0x0002192c ldr r2, [r2]                                      |     r2 = *(0x21d7c);
    0x0002192e str r2, [sp, 0xfc]                                |     var_fch = r2;
    0x00021930 mov.w r2, 0                                       |     r2 = 0;
    0x00021934 str r4, [sp, 0x4c]                                |     var_4ch = r4;
    0x00021936 strd r4, r4, [sp, 0x54]                           |     __asm ("strd r4, r4, [var_58h]");
    0x0002193a str r4, [sp, 0x5c]                                |     var_5ch = r4;
    0x0002193c str r1, [sp, 0x20]                                |     var_20h = r1;
                                                                 |     if (r3 > 3) {
    0x0002193e ble 0x21976                                       |         
    0x00021940 ldr r3, [r5, 8]                                   |         r3 = *((r5 + 8));
    0x00021942 ldr r6, [r3, 0xc]                                 |         r6 = *((r3 + 0xc));
    0x00021944 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00021946 beq.w 0x21b76                                     |             goto label_68;
                                                                 |         }
    0x0002194a ldrb r3, [r6]                                     |         r3 = *(r6);
                                                                 |         if (r3 != 0) {
    0x0002194c cbz r3, 0x21972                                   |             
    0x0002194e ldr.w r1, [pc, 0x434]                             |             
    0x00021952 mov r0, r6                                        |             r0 = r6;
    0x00021954 add r1, pc                                        |             r1 = 0x436de;
    0x00021956 blx 0xbc58                                        |             fcn_0000bc58 ();
    0x0002195a str r0, [sp, 0x24]                                |             var_24h = r0;
                                                                 |             if (r0 == 0) {
    0x0002195c cbz r0, 0x21978                                   |                 goto label_15;
                                                                 |             }
    0x0002195e ldr.w r1, [pc, 0x428]                             |             
    0x00021962 mov r0, r6                                        |             r0 = r6;
    0x00021964 add r1, pc                                        |             r1 = 0x436f2;
    0x00021966 blx 0xbc58                                        |             fcn_0000bc58 ();
    0x0002196a movs r3, 1                                        |             r3 = 1;
    0x0002196c cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x0002196e bne.w 0x21d02                                     |                 goto label_69;
                                                                 |             }
                                                                 |         }
    0x00021972 str r3, [sp, 0x24]                                |         var_24h = r3;
    0x00021974 b 0x21978                                         |         
                                                                 |     } else {
    0x00021976 str r4, [sp, 0x24]                                |         var_24h = r4;
                                                                 |     }
                                                                 | label_15:
    0x00021978 movs r3, 6                                        |     r3 = 6;
    0x0002197a movs r2, 5                                        |     r2 = 5;
    0x0002197c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0002197e movs r3, 4                                        |     r3 = 4;
    0x00021980 strd r3, r2, [sp, 0x10]                           |     __asm ("strd r3, r2, [var_10h_3]");
    0x00021984 add r3, sp, 0x4c                                  |     r3 += var_4ch;
    0x00021986 str r3, [sp, 8]                                   |     var_8h_2 = r3;
    0x00021988 add r3, sp, 0x50                                  |     r3 += var_50h;
    0x0002198a str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x0002198c add.w sb, sp, 0x90                                |     sb += var_90h;
    0x00021990 add r3, sp, 0x5c                                  |     r3 += var_5ch;
    0x00021992 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x00021994 str r3, [sp]                                      |     *(sp) = r3;
    0x00021996 mov r0, r5                                        |     r0 = r5;
    0x00021998 add r3, sp, 0x58                                  |     r3 += var_58h;
    0x0002199a add r2, sp, 0x54                                  |     r2 += var_54h;
    0x0002199c str.w sb, [sp, 0xc]                               |     __asm ("str.w sb, [var_ch_2]");
    0x000219a0 bl 0x215e0                                        |     r0 = fcn_000215e0 (r0, r1, r2, r3, r4, r5, r6);
    0x000219a4 mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r0 != 0) {
    0x000219a6 cbz r0, 0x219e6                                   |         
    0x000219a8 mov.w r8, 1                                       |         r8 = 1;
                                                                 | label_22:
    0x000219ac ldrd r0, r5, [sp, 0x54]                           |         __asm ("ldrd r0, r5, [var_58h]");
    0x000219b0 ldr r4, [sp, 0x5c]                                |         r4 = var_5ch;
                                                                 |         if (r0 != 0) {
    0x000219b2 cbz r0, 0x219b8                                   |             
    0x000219b4 bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x000219b8 cbz r5, 0x219c0                                   |             
    0x000219ba mov r0, r5                                        |             r0 = r5;
    0x000219bc bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x000219c0 cbz r4, 0x219c8                                   |             
    0x000219c2 mov r0, r4                                        |             r0 = r4;
    0x000219c4 bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 | label_25:
    0x000219c8 ldr r2, [pc, 0x3c0]                               |         
    0x000219ca ldr r3, [pc, 0x3b0]                               |         r3 = *(0x21d7e);
    0x000219cc add r2, pc                                        |         r2 = 0x4375c;
    0x000219ce ldr r3, [r2, r3]                                  |         r3 = *(0x4375c);
    0x000219d0 ldr r2, [r3]                                      |         r2 = *(0x4375c);
    0x000219d2 ldr r3, [sp, 0xfc]                                |         r3 = var_fch;
    0x000219d4 eors r2, r3                                       |         r2 ^= r3;
    0x000219d6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000219da bne.w 0x21d74                                     |             goto label_70;
                                                                 |         }
    0x000219de mov r0, r8                                        |         r0 = r8;
    0x000219e0 add sp, 0x104                                     |         
    0x000219e2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x000219e6 add r3, sp, 0x60                                  |     r3 += var_60h;
    0x000219e8 add r0, sp, 0x78                                  |     r0 += var_78h;
    0x000219ea mov r5, r3                                        |     r5 = r3;
    0x000219ec str r3, [sp, 0x28]                                |     var_28h = r3;
    0x000219ee str r0, [sp, 0x38]                                |     var_38h = r0;
    0x000219f0 bl 0x29410                                        |     zbx_vector_ptr_create ();
    0x000219f4 mov r0, r5                                        |     r0 = r5;
    0x000219f6 bl 0x29410                                        |     zbx_vector_ptr_create ();
    0x000219fa ldr r4, [sp, 0x4c]                                |     r4 = var_4ch;
    0x000219fc mov r0, r4                                        |     r0 = r4;
    0x000219fe blx 0xc114                                        |     fcn_0000c114 ();
    0x00021a02 ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x00021a04 str r0, [sp, 0x40]                                |     var_40h = r0;
    0x00021a06 adds r3, 1                                        |     r3++;
                                                                 |     if (r3 < 1) {
    0x00021a08 blt.w 0x21ca2                                     |         goto label_71;
                                                                 |     }
    0x00021a0c ldr r0, [pc, 0x380]                               |     
    0x00021a0e movs r3, 8                                        |     r3 = 8;
    0x00021a10 mov r2, r8                                        |     r2 = r8;
    0x00021a12 movs r1, 0x4d                                     |     r1 = 0x4d;
    0x00021a14 add r0, pc                                        |     r0 = "diskstat_shm_extend";
    0x00021a16 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x00021a1a mov r1, r0                                        |     r1 = r0;
    0x00021a1c strd r8, r4, [r0]                                 |     __asm ("strd r8, r4, [r0]");
    0x00021a20 mov r0, r5                                        |     r0 = r5;
    0x00021a22 bl 0x29480                                        |     zbx_vector_ptr_append ();
    0x00021a26 ldrd r1, r5, [sp, 0x54]                           |     __asm ("ldrd r1, r5, [var_58h]");
    0x00021a2a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00021a2c beq.w 0x21b7a                                     |         goto label_72;
                                                                 |     }
    0x00021a30 mov r0, r4                                        |     r0 = r4;
    0x00021a32 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00021a36 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021a38 beq.w 0x21b7a                                     |         goto label_72;
                                                                 |     }
                                                                 | label_16:
    0x00021a3c movs r3, 0                                        |     r3 = 0;
    0x00021a3e strd r3, r3, [sp, 0x2c]                           |     __asm ("strd r3, r3, [var_30h_2]");
                                                                 | label_17:
    0x00021a42 ldr r3, [sp, 0x64]                                |     r3 = var_64h_2;
    0x00021a44 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00021a46 ble.w 0x21c5c                                     |         goto label_73;
                                                                 |     }
    0x00021a4a ldr r2, [pc, 0x348]                               |     
    0x00021a4c ldr r1, [pc, 0x348]                               |     
    0x00021a4e ldr.w sl, [pc, 0x34c]                             |     
    0x00021a52 add r2, pc                                        |     r2 = 0x437ec;
    0x00021a54 str.w r8, [sp, 0x44]                              |     __asm ("str.w r8, [var_44h]");
    0x00021a58 adds r2, 0x2c                                     |     r2 += 0x2c;
    0x00021a5a add r1, pc                                        |     r1 = 0x437f6;
    0x00021a5c add sl, pc                                        |     sl = 0x437fe;
    0x00021a5e mov r8, r2                                        |     r8 = r2;
    0x00021a60 str r1, [sp, 0x3c]                                |     var_3ch_2 = r1;
    0x00021a62 b 0x21a8e                                         |     
                                                                 |     while (r0 == 0) {
    0x00021a64 ldr r3, [r5]                                      |         r3 = *(r5);
    0x00021a66 cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x00021a68 ble.w 0x21cae                                     |             goto label_74;
                                                                 |         }
    0x00021a6c ldr r3, [pc, 0x330]                               |         
    0x00021a6e ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x00021a70 ldr r3, [r3]                                      |         r3 = *(0x21da0);
    0x00021a72 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00021a74 bgt.w 0x21bf8                                     |             goto label_75;
                                                                 |         }
                                                                 | label_14:
    0x00021a78 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
                                                                 |         if (r0 != 0) {
    0x00021a7a cbz r0, 0x21a80                                   |             
    0x00021a7c blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
    0x00021a80 mov r0, r5                                        |         r0 = r5;
    0x00021a82 blx 0xbd14                                        |         gai_strerror ();
    0x00021a86 ldr r3, [sp, 0x64]                                |         r3 = var_64h_2;
    0x00021a88 cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x00021a8a ble.w 0x21c58                                     |             goto label_76;
                                                                 |         }
    0x00021a8e ldr r2, [sp, 0x60]                                |         r2 = var_60h;
    0x00021a90 subs r3, 1                                        |         r3--;
    0x00021a92 str r3, [sp, 0x64]                                |         var_64h_2 = r3;
    0x00021a94 ldr.w r5, [r2, r3, lsl 2]                         |         offset_0 = r3 << 2;
                                                                 |         r5 = *((r2 + offset_0));
    0x00021a98 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x00021a9a blx 0xbfd8                                        |         r0 = getenv (r0);
    0x00021a9e mov r4, r0                                        |         r4 = r0;
    0x00021aa0 cmp r0, 0                                         |         
    0x00021aa2 beq 0x21a64                                       |         
                                                                 |     }
                                                                 |     do {
                                                                 | label_12:
    0x00021aa4 mov r0, r4                                        |         r0 = r4;
    0x00021aa6 blx 0xc360                                        |         r0 = fcn_0000c360 ();
    0x00021aaa cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021aac beq 0x21b6e                                       |             goto label_77;
                                                                 |         }
                                                                 | label_13:
    0x00021aae ldrb r3, [r0, 0x13]                               |         r3 = *((r0 + 0x13));
    0x00021ab0 add.w r6, r0, 0x13                                |         r6 = r0 + 0x13;
    0x00021ab4 cmp r3, 0x2e                                      |         
                                                                 |         if (r3 != 0x2e) {
    0x00021ab6 bne 0x21abe                                       |             goto label_78;
                                                                 |         }
    0x00021ab8 ldrb r3, [r6, 1]                                  |         r3 = *((r6 + 1));
    0x00021aba cmp r3, 0                                         |         
    0x00021abc beq 0x21aa4                                       |         
                                                                 |     } while (r3 == 0);
                                                                 | label_78:
    0x00021abe ldrb r3, [r0, 0x13]                               |     r3 = *((r0 + 0x13));
    0x00021ac0 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x00021ac2 bne 0x21ad0                                       |         goto label_79;
                                                                 |     }
    0x00021ac4 ldrb r3, [r6, 1]                                  |     r3 = *((r6 + 1));
    0x00021ac6 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x00021ac8 bne 0x21ad0                                       |         goto label_79;
                                                                 |     }
    0x00021aca ldrb r3, [r6, 2]                                  |     r3 = *((r6 + 2));
    0x00021acc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00021ace beq 0x21aa4                                       |         goto label_12;
                                                                 |     }
                                                                 | label_79:
    0x00021ad0 mov r1, sl                                        |     r1 = sl;
    0x00021ad2 ldr r2, [r5, 4]                                   |     r2 = *((r5 + 4));
    0x00021ad4 mov r3, r6                                        |     r3 = r6;
    0x00021ad6 movs r0, 0                                        |     r0 = 0;
    0x00021ad8 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00021adc mov r1, sb                                        |     r1 = sb;
    0x00021ade mov fp, r0                                        |     
    0x00021ae0 blx 0xbd9c                                        |     r0 = fcn_0000bd9c ();
    0x00021ae4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021ae6 bne 0x21b9c                                       |         goto label_80;
                                                                 |     }
    0x00021ae8 ldr r1, [sp, 0x5c]                                |     r1 = var_5ch;
    0x00021aea ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00021aec and r2, r3, 0xf000                                |     r2 = r3 & case.0x3207a.11;
                                                                 |     if (r1 != 0) {
    0x00021af0 cbz r1, 0x21afa                                   |         
    0x00021af2 cmp.w r2, 0x4000                                  |         
                                                                 |         if (r2 == 0x4000) {
    0x00021af6 beq.w 0x21c1a                                     |             goto label_81;
                                                                 |         }
                                                                 |     }
                                                                 | label_21:
    0x00021afa and r3, r3, 0xd000                                |     r3 &= case.0x3207a.11;
    0x00021afe cmp.w r2, 0x4000                                  |     
    0x00021b02 it ne                                             |     
                                                                 |     if (r2 != 0x4000) {
    0x00021b04 cmpne r3, 0x8000                                  |         __asm ("cmpne r3, aav.0x00000074");
                                                                 |     }
                                                                 |     if (r2 != 0x4000) {
    0x00021b08 bne 0x21bbe                                       |         goto label_20;
                                                                 |     }
    0x00021b0a ldrd r1, r3, [sp, 0x54]                           |     __asm ("ldrd r1, r3, [var_58h]");
    0x00021b0e cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00021b10 beq 0x21bc6                                       |         goto label_82;
                                                                 |     }
    0x00021b12 mov r0, r6                                        |     r0 = r6;
    0x00021b14 str r3, [sp, 0x34]                                |     var_34h_2 = r3;
    0x00021b16 bl 0x27e80                                        |     zbx_regexp_match_precompiled ();
    0x00021b1a ldr r3, [sp, 0x34]                                |     r3 = var_34h_2;
    0x00021b1c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021b1e beq 0x21bc6                                       |         goto label_82;
                                                                 |     }
                                                                 | label_18:
    0x00021b20 ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00021b22 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
                                                                 | label_19:
    0x00021b26 cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 != 0x4000) {
    0x00021b2a bne 0x21bbe                                       |         goto label_20;
                                                                 |     }
    0x00021b2c ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x00021b2e ldr r6, [r5]                                      |     r6 = *(r5);
    0x00021b30 cmp r6, r2                                        |     
    0x00021b32 ite ge                                            |     
                                                                 |     if (r6 < r2) {
    0x00021b34 movge r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r6 >= r2) {
    0x00021b36 movlt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00021b38 cmp.w r2, -1                                      |     
    0x00021b3c it eq                                             |     
                                                                 |     if (r2 != -1) {
    0x00021b3e orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x00021b42 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00021b44 beq 0x21bbe                                       |         goto label_20;
                                                                 |     }
    0x00021b46 ldr r0, [pc, 0x25c]                               |     
    0x00021b48 movs r3, 8                                        |     r3 = 8;
    0x00021b4a movs r2, 0                                        |     r2 = 0;
    0x00021b4c movs r1, 0x4d                                     |     r1 = 0x4d;
    0x00021b4e adds r6, 1                                        |     r6++;
    0x00021b50 add r0, pc                                        |     r0 = 0x438fa;
    0x00021b52 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x00021b56 mov r1, r0                                        |     r1 = r0;
    0x00021b58 str.w fp, [r0, 4]                                 |     __asm ("str.w fp, [r0, 4]");
    0x00021b5c str r6, [r0]                                      |     *(r0) = r6;
    0x00021b5e ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00021b60 bl 0x29480                                        |     zbx_vector_ptr_append ();
    0x00021b64 mov r0, r4                                        |     r0 = r4;
    0x00021b66 blx 0xc360                                        |     r0 = fcn_0000c360 ();
    0x00021b6a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00021b6c bne 0x21aae                                       |         goto label_13;
                                                                 |     }
                                                                 | label_77:
    0x00021b6e mov r0, r4                                        |     r0 = r4;
    0x00021b70 blx 0xc494                                        |     fcn_0000c494 ();
    0x00021b74 b 0x21a78                                         |     goto label_14;
                                                                 | label_68:
    0x00021b76 str r6, [sp, 0x24]                                |     var_24h = r6;
    0x00021b78 b 0x21978                                         |     goto label_15;
                                                                 |     if (r5 == 0) {
                                                                 | label_72:
    0x00021b7a cbz r5, 0x21b8a                                   |         goto label_83;
                                                                 |     }
    0x00021b7c mov r1, r5                                        |     r1 = r5;
    0x00021b7e mov r0, r4                                        |     r0 = r4;
    0x00021b80 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00021b84 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021b86 beq.w 0x21a3c                                     |         goto label_16;
                                                                 |     }
                                                                 | label_83:
    0x00021b8a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00021b8c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00021b8e bne.w 0x21cda                                     |         goto label_84;
                                                                 |     }
    0x00021b92 ldr r3, [sp, 0xc0]                                |     r3 = var_c0h;
    0x00021b94 str r3, [sp, 0x2c]                                |     var_2ch_2 = r3;
    0x00021b96 ldr r3, [sp, 0xc4]                                |     r3 = var_c4h;
    0x00021b98 str r3, [sp, 0x30]                                |     var_30h_2 = r3;
    0x00021b9a b 0x21a42                                         |     goto label_17;
                                                                 | label_80:
    0x00021b9c ldr r3, [pc, 0x200]                               |     
    0x00021b9e ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00021ba0 ldr r3, [r3]                                      |     r3 = *(0x21da0);
    0x00021ba2 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00021ba4 ble 0x21bbe                                       |         
    0x00021ba6 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00021baa ldr r0, [r0]                                      |         r0 = *(r0);
    0x00021bac bl 0x26fdc                                        |         zbx_strerror ();
    0x00021bb0 ldr r1, [sp, 0x3c]                                |         r1 = var_3ch_2;
    0x00021bb2 mov r3, fp                                        |         r3 = fp;
    0x00021bb4 str r0, [sp]                                      |         *(sp) = r0;
    0x00021bb6 mov r2, r8                                        |         r2 = r8;
    0x00021bb8 movs r0, 4                                        |         r0 = 4;
    0x00021bba bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_20:
    0x00021bbe mov r0, fp                                        |     r0 = fp;
    0x00021bc0 blx 0xbd14                                        |     gai_strerror ();
    0x00021bc4 b 0x21aa4                                         |     goto label_12;
                                                                 |     if (r3 == 0) {
                                                                 | label_82:
    0x00021bc6 cbz r3, 0x21bd4                                   |         goto label_85;
                                                                 |     }
    0x00021bc8 mov r1, r3                                        |     r1 = r3;
    0x00021bca mov r0, r6                                        |     r0 = r6;
    0x00021bcc bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00021bd0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021bd2 beq 0x21b20                                       |         goto label_18;
                                                                 |     }
                                                                 | label_85:
    0x00021bd4 ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00021bd6 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00021bda cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 == 0x8000) {
    0x00021bde beq 0x21c30                                       |         goto label_86;
                                                                 |     }
                                                                 | label_26:
    0x00021be0 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
                                                                 |     if (r2 != 0) {
    0x00021be2 cbnz r2, 0x21c3c                                  |         goto label_87;
                                                                 |     }
    0x00021be4 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch_2;
    0x00021be6 ldr r2, [sp, 0xc0]                                |     r2 = var_c0h;
    0x00021be8 adds r2, r1, r2                                   |     r2 = r1 + r2;
    0x00021bea ldr r1, [sp, 0x30]                                |     r1 = var_30h_2;
    0x00021bec str r2, [sp, 0x2c]                                |     var_2ch_2 = r2;
    0x00021bee ldr r2, [sp, 0xc4]                                |     r2 = var_c4h;
    0x00021bf0 adc.w r2, r1, r2                                  |     __asm ("adc.w r2, r1, r2");
    0x00021bf4 str r2, [sp, 0x30]                                |     var_30h_2 = r2;
    0x00021bf6 b 0x21b26                                         |     goto label_19;
                                                                 | label_75:
    0x00021bf8 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00021bfc ldr r0, [r0]                                      |     r0 = *(r0);
    0x00021bfe ldr r4, [r5, 4]                                   |     r4 = *((r5 + 4));
    0x00021c00 bl 0x26fdc                                        |     zbx_strerror ();
    0x00021c04 ldr r2, [pc, 0x1a0]                               |     
    0x00021c06 ldr r1, [pc, 0x1a4]                               |     
    0x00021c08 mov r3, r4                                        |     r3 = r4;
    0x00021c0a str r0, [sp]                                      |     *(sp) = r0;
    0x00021c0c movs r0, 4                                        |     r0 = 4;
    0x00021c0e add r2, pc                                        |     r2 = 0x439ba;
    0x00021c10 adds r2, 0x2c                                     |     r2 += 0x2c;
    0x00021c12 add r1, pc                                        |     r1 = "End of %s():%p";
    0x00021c14 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00021c18 b 0x21a78                                         |     goto label_14;
                                                                 | label_81:
    0x00021c1a ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00021c1c adds r0, r3, 1                                    |     r0 = r3 + 1;
    0x00021c1e add r0, fp                                        |     r0 += fp;
    0x00021c20 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00021c24 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00021c26 beq 0x21bbe                                       |         goto label_20;
                                                                 |     }
    0x00021c28 ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00021c2a and r2, r3, 0xf000                                |     r2 = r3 & case.0x3207a.11;
    0x00021c2e b 0x21afa                                         |     goto label_21;
                                                                 | label_86:
    0x00021c30 ldr r2, [sp, 0xa4]                                |     r2 = var_a4h;
    0x00021c32 cmp r2, 1                                         |     
                                                                 |     if (r2 > 1) {
    0x00021c34 bhi 0x21d24                                       |         goto label_88;
                                                                 |     }
    0x00021c36 ldr r2, [sp, 0x24]                                |     r2 = var_24h;
    0x00021c38 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00021c3a beq 0x21cee                                       |         goto label_89;
                                                                 |     }
                                                                 | label_87:
    0x00021c3c ldr r1, [sp, 0xd4]                                |     r1 = var_d4h;
    0x00021c3e ldr r2, [sp, 0xd0]                                |     r2 = var_d0h;
    0x00021c40 ldr r0, [sp, 0x2c]                                |     r0 = var_2ch_2;
    0x00021c42 lsls r1, r1, 9                                    |     r1 <<= 9;
    0x00021c44 orr.w r1, r1, r2, lsr 23                          |     r1 |= (r2 >> 23);
    0x00021c48 lsls r2, r2, 9                                    |     r2 <<= 9;
    0x00021c4a adds r2, r2, r0                                   |     r2 += r0;
    0x00021c4c ldr r0, [sp, 0x30]                                |     r0 = var_30h_2;
    0x00021c4e adc.w r1, r0, r1                                  |     __asm ("adc.w r1, r0, r1");
    0x00021c52 strd r2, r1, [sp, 0x2c]                           |     __asm ("strd r2, r1, [var_30h_2]");
    0x00021c56 b 0x21b26                                         |     goto label_19;
                                                                 | label_76:
    0x00021c58 ldr.w r8, [sp, 0x44]                              |     r8 = var_44h;
                                                                 | label_73:
    0x00021c5c ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00021c5e ldr r3, [sp, 0x2c]                                |     r3 = var_2ch_2;
    0x00021c60 str r3, [r2, 8]                                   |     *((r2 + 8)) = r3;
    0x00021c62 ldr r3, [sp, 0x30]                                |     r3 = var_30h_2;
    0x00021c64 str r3, [r2, 0xc]                                 |     *((r2 + 0xc)) = r3;
    0x00021c66 ldr r3, [r2, 0x28]                                |     r3 = *((r2 + 0x28));
    0x00021c68 orr r3, r3, 1                                     |     r3 |= 1;
    0x00021c6c str r3, [r2, 0x28]                                |     *((r2 + 0x28)) = r3;
                                                                 | label_24:
    0x00021c6e ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00021c70 bl 0x214f8                                        |     fcn_000214f8 (r0);
                                                                 | label_23:
    0x00021c74 ldrd r2, r3, [sp, 0x78]                           |     __asm ("ldrd r2, r3, [var_78h]");
    0x00021c78 movs r1, 0                                        |     r1 = 0;
    0x00021c7a add.w r2, r2, r3, lsl 2                           |     r2 += (r3 << 2);
    0x00021c7c lsls r3, r0, 0xa                                  |     r3 = r0 << 0xa;
    0x00021c7e b 0x21c8a                                         |     
                                                                 |     while (r3 > 0) {
    0x00021c80 ldr r0, [r2, -0x4]!                               |         r0 = *((r2 -= 0x4));
    0x00021c84 subs r3, 1                                        |         r3--;
    0x00021c86 movs r1, 1                                        |         r1 = 1;
                                                                 |         if (r0 != 0) {
    0x00021c88 cbnz r0, 0x21c9a                                  |             goto label_90;
                                                                 |         }
    0x00021c8a cmp r3, 0                                         |         
    0x00021c8c bgt 0x21c80                                       |         
                                                                 |     }
                                                                 |     if (r1 != 0) {
    0x00021c8e cbz r1, 0x21c92                                   |         
    0x00021c90 str r3, [sp, 0x7c]                                |         var_7ch = r3;
                                                                 |     }
    0x00021c92 ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00021c94 bl 0x29460                                        |     zbx_vector_ptr_destroy ();
    0x00021c98 b 0x219ac                                         |     goto label_22;
                                                                 | label_90:
    0x00021c9a str r3, [sp, 0x7c]                                |     var_7ch = r3;
    0x00021c9c blx 0xbd14                                        |     gai_strerror ();
    0x00021ca0 b 0x21c74                                         |     goto label_23;
                                                                 | label_71:
    0x00021ca2 mov r0, r4                                        |     r0 = r4;
    0x00021ca4 mov.w r8, 1                                       |     r8 = 1;
    0x00021ca8 blx 0xbd14                                        |     gai_strerror ();
    0x00021cac b 0x21c6e                                         |     goto label_24;
                                                                 | label_74:
    0x00021cae ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x00021cb0 mov r2, r0                                        |     r2 = r0;
    0x00021cb2 ldr r0, [pc, 0xfc]                                |     
    0x00021cb4 mov.w r8, 1                                       |     r8 = 1;
    0x00021cb8 ldr r3, [r1, 0x28]                                |     r3 = *((r1 + 0x28));
    0x00021cba mov r4, r1                                        |     r4 = r1;
    0x00021cbc add r0, pc                                        |     r0 = 0x43a72;
    0x00021cbe orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00021cc2 str r3, [r1, 0x28]                                |     *((r1 + 0x28)) = r3;
    0x00021cc4 mov.w r1, 0x2f0                                   |     r1 = case.0x3207a.11;
    0x00021cc8 ldr r3, [pc, 0xe8]                                |     
    0x00021cca add r3, pc                                        |     r3 = 0x43a82;
    0x00021ccc bl 0x35d28                                        |     zbx_strdup2 ();
    0x00021cd0 ldr r3, [sp, 0x64]                                |     r3 = var_64h_2;
    0x00021cd2 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00021cd4 add r3, r8                                        |     r3 += r8;
    0x00021cd6 str r3, [sp, 0x64]                                |     var_64h_2 = r3;
    0x00021cd8 b 0x21c6e                                         |     goto label_24;
                                                                 | label_84:
    0x00021cda ldr r3, [sp, 0xd4]                                |     r3 = var_d4h;
    0x00021cdc lsls r3, r3, 9                                    |     r3 <<= 9;
    0x00021cde mov r2, r3                                        |     r2 = r3;
    0x00021ce0 ldr r3, [sp, 0xd0]                                |     r3 = var_d0h;
    0x00021ce2 orr.w r2, r2, r3, lsr 23                          |     r2 |= (r3 >> 23);
    0x00021ce6 lsls r3, r3, 9                                    |     r3 <<= 9;
    0x00021ce8 str r2, [sp, 0x30]                                |     var_30h_2 = r2;
    0x00021cea str r3, [sp, 0x2c]                                |     var_2ch_2 = r3;
    0x00021cec b 0x21a42                                         |     goto label_17;
                                                                 | label_89:
    0x00021cee ldr r2, [sp, 0x2c]                                |     r2 = var_2ch_2;
    0x00021cf0 ldr r3, [sp, 0xc0]                                |     r3 = var_c0h;
    0x00021cf2 adds r3, r2, r3                                   |     r3 = r2 + r3;
    0x00021cf4 ldr r2, [sp, 0x30]                                |     r2 = var_30h_2;
    0x00021cf6 str r3, [sp, 0x2c]                                |     var_2ch_2 = r3;
    0x00021cf8 ldr r3, [sp, 0xc4]                                |     r3 = var_c4h;
    0x00021cfa adc.w r3, r2, r3                                  |     __asm ("adc.w r3, r2, r3");
    0x00021cfe str r3, [sp, 0x30]                                |     var_30h_2 = r3;
    0x00021d00 b 0x21bbe                                         |     goto label_20;
                                                                 | label_69:
    0x00021d02 ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x00021d04 mov r2, r4                                        |     r2 = r4;
    0x00021d06 ldr r3, [pc, 0xb0]                                |     
    0x00021d08 movs r1, 0xe0                                     |     r1 = 0xe0;
    0x00021d0a mov.w r8, 1                                       |     r8 = 1;
    0x00021d0e ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00021d10 add r3, pc                                        |     r3 = 0x43ace;
    0x00021d12 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00021d16 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00021d18 ldr r0, [pc, 0xa0]                                |     
    0x00021d1a add r0, pc                                        |     r0 = 0x43ada;
    0x00021d1c bl 0x35d28                                        |     zbx_strdup2 ();
    0x00021d20 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00021d22 b 0x219c8                                         |     goto label_25;
                                                                 | label_88:
    0x00021d24 ldr r0, [pc, 0x98]                                |     
    0x00021d26 movs r3, 0x10                                     |     r3 = 0x10;
    0x00021d28 movs r2, 0                                        |     r2 = 0;
    0x00021d2a movw r1, 0x313                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00021d2e add r0, pc                                        |     r0 = 0x43af2;
    0x00021d30 bl 0x35c28                                        |     zbx_malloc2 ();
    0x00021d34 vldr d16, [sp, 0x90]                              |     __asm ("vldr d16, [sp, 0x90]");
    0x00021d38 mov r6, r0                                        |     r6 = r0;
    0x00021d3a ldr r2, [pc, 0x88]                                |     
    0x00021d3c mov r1, r0                                        |     r1 = r0;
    0x00021d3e ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00021d40 vstr d16, [r6]                                    |     __asm ("vstr d16, [r6]");
    0x00021d44 vldr d16, [sp, 0xf0]                              |     __asm ("vldr d16, [sp, 0xf0]");
    0x00021d48 add r2, pc                                        |     r2 = 0x43b12;
    0x00021d4a vstr d16, [r6, 8]                                 |     __asm ("vstr d16, [r6, 8]");
    0x00021d4e bl 0x29734                                        |     zbx_vector_ptr_search ();
    0x00021d52 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00021d54 beq 0x21d64                                       |         
    0x00021d56 mov r0, r6                                        |         r0 = r6;
    0x00021d58 blx 0xbd14                                        |         gai_strerror ();
    0x00021d5c mov r0, fp                                        |         r0 = fp;
    0x00021d5e blx 0xbd14                                        |         gai_strerror ();
    0x00021d60 invalid                                           |         
                                                                 |     }
    0x00021d64 ldr r0, [sp, 0x38]                                |     r0 = var_38h;
    0x00021d66 mov r1, r6                                        |     r1 = r6;
    0x00021d68 bl 0x29480                                        |     zbx_vector_ptr_append ();
    0x00021d6c ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00021d6e and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00021d70 muls r0, r6, r0                                   |     r0 = r6 * r0;
    0x00021d72 b 0x21be0                                         |     goto label_26;
                                                                 | label_70:
    0x00021d74 blx 0xbe48                                        |     r0 = fcn_0000be48 ();
    0x00021d78 uxtb r6, r0                                       |     r6 = (int8_t) r0;
    0x00021d7a movs r3, r0                                       |     r3 = r0;
    0x00021d7c lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00021d7e movs r0, r0                                       |     
    0x00021d80 uxtb r2, r0                                       |     r2 = (int8_t) r0;
    0x00021d82 movs r3, r0                                       |     r3 = r0;
    0x00021d84 ldrsb r0, [r1, r4]                                |     r0 = *((r1 + r4));
    0x00021d86 movs r2, r0                                       |     r2 = r0;
    0x00021d88 add r0, fp                                        |     r0 += fp;
    0x00021d8a movs r2, r0                                       |     r2 = r0;
    0x00021d8c sxth r0, r4                                       |     __asm ("sxth r0, r4");
    0x00021d8e movs r3, r0                                       |     r3 = r0;
    0x00021d90 strb r0, [r0, r6]                                 |     *((r0 + r6)) = r0;
    0x00021d92 movs r2, r0                                       |     r2 = r0;
    0x00021d94 ldrsb r6, [r1, r4]                                |     r6 = *((r1 + r4));
    0x00021d96 movs r2, r0                                       |     r2 = r0;
    0x00021d98 ldrsb r6, [r3, r1]                                |     r6 = *((r3 + r1));
    0x00021d9a movs r2, r0                                       |     r2 = r0;
    0x00021d9c add ip, r6                                        |     
    0x00021d9e movs r2, r0                                       |     r2 = r0;
    0x00021da0 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x00021da2 movs r0, r0                                       |     
    0x00021da4 strb r4, [r0, r1]                                 |     *((r0 + r1)) = r4;
    0x00021da6 movs r2, r0                                       |     r2 = r0;
    0x00021da8 strb r2, [r2, r5]                                 |     *((r2 + r5)) = r2;
    0x00021daa movs r2, r0                                       |     r2 = r0;
    0x00021dac strb r6, [r2, r1]                                 |     *((r2 + r1)) = r6;
    0x00021dae movs r2, r0                                       |     r2 = r0;
    0x00021db0 strh r0, [r3, r3]                                 |     *((r3 + r3)) = r0;
    0x00021db2 movs r2, r0                                       |     r2 = r0;
    0x00021db4 strh r2, [r1, r7]                                 |     *((r1 + r7)) = r2;
    0x00021db6 movs r2, r0                                       |     r2 = r0;
    0x00021db8 cmp r5, 0x20                                      |     
    0x00021dba movs r2, r0                                       |     r2 = r0;
    0x00021dbc strh r2, [r7, r1]                                 |     *((r7 + r1)) = r2;
    0x00021dbe movs r2, r0                                       |     r2 = r0;
    0x00021dc0 strh r6, [r4, r1]                                 |     *((r4 + r1)) = r6;
    0x00021dc2 movs r2, r0                                       |     r2 = r0;
    0x00021dc4 bl 0xfff9bdc6                                     |     case_0x3207a_11 (r0, r2, r3);
    0x00021dc8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00021dcc mov r4, r0                                        |     r4 = r0;
    0x00021dce ldr.w r0, [pc, 0x578]                             |     r0 = *(0x00022348);
    0x00021dd2 sub sp, 0xfc                                      |     
    0x00021dd4 movs r3, 0                                        |     r3 = 0;
    0x00021dd6 mov.w r6, -1                                      |     r6 = -1;
    0x00021dda ldr.w r2, [pc, 0x570]                             |     
    0x00021dde mvn r7, 0x80000000                                |     r7 = ~case.0x3207a.11;
    0x00021de2 add r0, pc                                        |     r0 += pc;
    0x00021de4 ldr.w sb, [pc, 0x568]                             |     sb = *(0x00022350);
    0x00021de8 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00021dec ldr r2, [r0, r2]                                  |     r2 = *((r0 + r2));
    0x00021dee add sb, pc                                        |     sb += pc;
    0x00021df0 ldr r2, [r2]                                      |     r2 = *(0x2234e);
    0x00021df2 str r2, [sp, 0xf4]                                |     var_f4h = r2;
    0x00021df4 mov.w r2, 0                                       |     r2 = 0;
    0x00021df8 str r3, [sp, 0x4c]                                |     var_4ch_2 = r3;
    0x00021dfa strd r3, r3, [sp, 0x54]                           |     __asm ("strd r3, r3, [var_54h_2]");
    0x00021dfe str r3, [sp, 0x5c]                                |     var_5ch_2 = r3;
    0x00021e00 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00021e02 vstr d16, [sp, 0x60]                              |     __asm ("vstr d16, [sp, 0x60]");
    0x00021e06 str r1, [sp, 0x20]                                |     var_20h_2 = r1;
    0x00021e08 cmp r3, 3                                         |     
    0x00021e0a strd r6, r7, [sp, 0x68]                           |     __asm ("strd r6, r7, [var_68h]");
                                                                 |     if (r3 > 3) {
    0x00021e0e ble 0x21e9e                                       |         
    0x00021e10 ldr r6, [r4, 8]                                   |         r6 = *((r4 + 8));
    0x00021e12 ldr r0, [r6, 0xc]                                 |         r0 = *((r6 + 0xc));
                                                                 |         if (r0 != 0) {
    0x00021e14 cbz r0, 0x21e1e                                   |             
    0x00021e16 ldrb r2, [r0]                                     |             r2 = *(r0);
    0x00021e18 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x00021e1a bne.w 0x220d4                                     |                 goto label_91;
                                                                 |             }
    0x00021e1c strh r3, [r3, 0xa]                                |             *((r3 + 0xa)) = r3;
                                                                 |         }
    0x00021e1e cmp r3, 4                                         |         
    0x00021e20 it gt                                             |         
                                                                 |         if (r3 <= 4) {
    0x00021e22 movgt r5, 0                                       |             r5 = 0;
                                                                 |         }
                                                                 |         if (r3 <= 4) {
    0x00021e24 ble 0x21e9e                                       |             goto label_92;
                                                                 |         }
                                                                 | label_30:
    0x00021e26 ldr r0, [r6, 0x10]                                |         r0 = *((r6 + 0x10));
    0x00021e28 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021e2a beq.w 0x221d4                                     |             goto label_93;
                                                                 |         }
    0x00021e2e ldrb r2, [r0]                                     |         r2 = *(r0);
    0x00021e30 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00021e32 beq.w 0x221d4                                     |             goto label_93;
                                                                 |         }
    0x00021e36 ldr r1, [sp, 0x20]                                |         r1 = var_20h_2;
    0x00021e38 bl 0x2152c                                        |         r0 = fcn_0002152c (r0, r1);
    0x00021e3c adds r6, r0, 1                                    |         r6 = r0 + 1;
                                                                 |         if (r6 == r0) {
    0x00021e3e beq.w 0x222ba                                     |             goto label_94;
                                                                 |         }
    0x00021e42 ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x00021e44 mvns r3, r0                                       |         r3 = ~r0;
                                                                 | label_29:
    0x00021e46 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x00021e48 beq.w 0x22312                                     |             goto label_95;
                                                                 |         }
    0x00021e4c ands r3, r5                                       |         r3 &= r5;
    0x00021e4e str r3, [sp, 0x24]                                |         var_24h_2 = r3;
                                                                 | label_48:
    0x00021e50 cmp r2, 6                                         |         
                                                                 |         if (r2 <= 6) {
    0x00021e52 ble 0x21ea2                                       |             goto label_35;
                                                                 |         }
    0x00021e54 ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x00021e56 cmp r2, 7                                         |         
    0x00021e58 ldr r5, [r3, 0x18]                                |         r5 = *((r3 + 0x18));
                                                                 |         if (r2 == 7) {
    0x00021e5a beq.w 0x221dc                                     |             goto label_96;
                                                                 |         }
    0x00021e5e ldr r6, [r3, 0x1c]                                |         r6 = *((r3 + 0x1c));
                                                                 |         if (r5 != 0) {
    0x00021e60 cbz r5, 0x21e6a                                   |             
    0x00021e62 ldrb r3, [r5]                                     |             r3 = *(r5);
    0x00021e64 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00021e66 bne.w 0x22258                                     |                 goto label_97;
                                                                 |             }
                                                                 |         }
                                                                 |         if (r6 == 0) {
                                                                 | label_41:
    0x00021e6a cbz r6, 0x21ea2                                   |             goto label_35;
                                                                 |         }
    0x00021e6c ldrb r3, [r6]                                     |         r3 = *(r6);
                                                                 |         if (r3 == 0) {
    0x00021e6e cbz r3, 0x21ea2                                   |             goto label_35;
                                                                 |         }
    0x00021e70 ldr.w r1, [pc, 0x4e0]                             |         
    0x00021e74 add r2, sp, 0x68                                  |         r2 += var_68h;
    0x00021e76 mov r0, r6                                        |         r0 = r6;
    0x00021e78 add r1, pc                                        |         r1 = 0x441d0;
    0x00021e7a bl 0x37a10                                        |         r0 = str2uint64 ();
                                                                 |         if (r0 == 0) {
    0x00021e7e cbz r0, 0x21ea2                                   |             goto label_35;
                                                                 |         }
    0x00021e80 ldr r4, [sp, 0x20]                                |         r4 = var_20h_2;
    0x00021e82 mov r2, r6                                        |         r2 = r6;
    0x00021e84 ldr.w r1, [pc, 0x4d0]                             |         r1 = *(0x00022358);
    0x00021e88 ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00021e8a add r1, pc                                        |         r1 += pc;
                                                                 | label_36:
    0x00021e8c orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00021e90 movs r0, 0                                        |         r0 = 0;
    0x00021e92 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00021e94 movs r7, 1                                        |         r7 = 1;
    0x00021e96 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00021e9a str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00021e9c b 0x21f0a                                         |         goto label_46;
                                                                 |     }
                                                                 | label_92:
    0x00021e9e movs r3, 0x7f                                     |     r3 = 0x7f;
    0x00021ea0 str r3, [sp, 0x24]                                |     var_24h_2 = r3;
                                                                 | label_35:
    0x00021ea2 movs r0, 0                                        |     r0 = 0;
    0x00021ea4 blx 0xbdb4                                        |     fcn_0000bdb4 ();
    0x00021ea8 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00021eaa mov r5, r0                                        |     r5 = r0;
    0x00021eac cmp r3, 8                                         |     
                                                                 |     if (r3 > 8) {
    0x00021eae bgt 0x21f2c                                       |         goto label_98;
                                                                 |     }
    0x00021eb0 add.w r8, sp, 0x88                                |     r8 += var_88h;
    0x00021eb4 mvn r5, 0x80000000                                |     r5 = ~case.0x3207a.11;
    0x00021eb8 movs r3, 0                                        |     r3 = 0;
    0x00021eba strd r5, r3, [sp, 0x28]                           |     __asm ("strd r5, r3, [var_2ch]");
                                                                 |     do {
                                                                 | label_37:
    0x00021ebe mov r0, r4                                        |         r0 = r4;
    0x00021ec0 movs r3, 0xa                                      |         r3 = 0xa;
    0x00021ec2 movs r4, 0xb                                      |         r4 = 0xb;
    0x00021ec4 ldr r1, [sp, 0x20]                                |         r1 = var_20h_2;
    0x00021ec6 strd r3, r4, [sp, 0x14]                           |         __asm ("strd r3, r4, [var_14h_2]");
    0x00021eca movs r3, 5                                        |         r3 = 5;
    0x00021ecc str r3, [sp, 0x10]                                |         var_10h_2 = r3;
    0x00021ece add r3, sp, 0x4c                                  |         r3 += var_4ch_2;
    0x00021ed0 str r3, [sp, 8]                                   |         var_8h_3 = r3;
    0x00021ed2 add r3, sp, 0x50                                  |         r3 += var_50h_2;
    0x00021ed4 str r3, [sp, 4]                                   |         var_4h_3 = r3;
    0x00021ed6 add r3, sp, 0x5c                                  |         r3 += var_5ch_2;
    0x00021ed8 str r3, [sp]                                      |         *(sp) = r3;
    0x00021eda add r2, sp, 0x54                                  |         r2 += var_54h_2;
    0x00021edc add r3, sp, 0x58                                  |         r3 += var_58h_2;
    0x00021ede str.w r8, [sp, 0xc]                               |         __asm ("str.w r8, [var_ch_3]");
    0x00021ee2 bl 0x215e0                                        |         fcn_000215e0 (r0, r1, r2, r3, r4, r5, r6);
    0x00021ee4 usada8 r6, sp, r7, r4                             |         __asm ("usada8 r6, sp, r7, r4");
    0x00021ee8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00021eea beq 0x21f76                                       |             goto label_99;
                                                                 |         }
    0x00021eec movs r7, 1                                        |         r7 = 1;
                                                                 | label_45:
    0x00021eee ldrd r0, r5, [sp, 0x54]                           |         __asm ("ldrd r0, r5, [var_54h_2]");
    0x00021ef2 ldr r4, [sp, 0x5c]                                |         r4 = var_5ch_2;
                                                                 |         if (r0 != 0) {
    0x00021ef4 cbz r0, 0x21efa                                   |             
    0x00021ef6 bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 |         if (r5 != 0) {
    0x00021efa cbz r5, 0x21f02                                   |             
    0x00021efc mov r0, r5                                        |             r0 = r5;
    0x00021efe bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 |         if (r4 != 0) {
    0x00021f02 cbz r4, 0x21f0a                                   |             
    0x00021f04 mov r0, r4                                        |             r0 = r4;
    0x00021f06 bl 0x27e54                                        |             zbx_regexp_free ();
                                                                 |         }
                                                                 | label_46:
    0x00021f0a ldr.w r2, [pc, 0x450]                             |         r2 = *(0x0002235c);
    0x00021f0e ldr.w r3, [pc, 0x43c]                             |         r3 = *(0x2234e);
    0x00021f12 add r2, pc                                        |         r2 += pc;
    0x00021f14 ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x00021f16 ldr r2, [r3]                                      |         r2 = *(0x2234e);
    0x00021f18 ldr r3, [sp, 0xf4]                                |         r3 = var_f4h;
    0x00021f1a eors r2, r3                                       |         r2 ^= r3;
    0x00021f1c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00021f20 bne.w 0x22344                                     |             goto label_100;
                                                                 |         }
    0x00021f24 mov r0, r7                                        |         r0 = r7;
    0x00021f26 add sp, 0xfc                                      |         
    0x00021f28 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_98:
    0x00021f2c ldr r2, [r4, 8]                                   |         r2 = *((r4 + 8));
    0x00021f2e cmp r3, 9                                         |         
    0x00021f30 ldr r6, [r2, 0x20]                                |         r6 = *((r2 + 0x20));
                                                                 |         if (r3 == 9) {
    0x00021f32 beq.w 0x220f4                                     |             goto label_101;
                                                                 |         }
    0x00021f36 ldr r7, [r2, 0x24]                                |         r7 = *((r2 + 0x24));
                                                                 |         if (r6 != 0) {
    0x00021f38 cbz r6, 0x21f42                                   |             
    0x00021f3a ldrb r3, [r6]                                     |             r3 = *(r6);
    0x00021f3c cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00021f3e bne.w 0x22104                                     |                 goto label_102;
                                                                 |             }
                                                                 |         }
    0x00021f42 add.w r8, sp, 0x88                                |         r8 += var_88h;
    0x00021f46 mvn r3, 0x80000000                                |         r3 = ~case.0x3207a.11;
    0x00021f4a str r3, [sp, 0x28]                                |         var_28h_2 = r3;
                                                                 | label_31:
    0x00021f4c cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00021f4e beq.w 0x22340                                     |             goto label_103;
                                                                 |         }
    0x00021f52 ldrb r3, [r7]                                     |         r3 = *(r7);
    0x00021f54 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00021f56 beq.w 0x22208                                     |             goto label_104;
                                                                 |         }
    0x00021f5a ldr.w r1, [pc, 0x404]                             |         r1 = *(0x00022360);
    0x00021f5e mov r2, r8                                        |         r2 = r8;
    0x00021f60 mov r0, r7                                        |         r0 = r7;
    0x00021f62 add r1, pc                                        |         r1 += pc;
    0x00021f64 bl 0x37a10                                        |         r0 = str2uint64 ();
    0x00021f68 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00021f6a bne.w 0x22326                                     |             goto label_105;
                                                                 |         }
    0x00021f6e ldr r3, [sp, 0x88]                                |         r3 = var_88h;
    0x00021f70 subs r3, r5, r3                                   |         r3 = r5 - r3;
    0x00021f72 str r3, [sp, 0x2c]                                |         var_2ch = r3;
    0x00021f74 b 0x21ebe                                         |         
                                                                 |     } while (1);
                                                                 | label_99:
    0x00021f76 add r3, sp, 0x70                                  |     r3 += var_70h;
    0x00021f78 mov r0, r3                                        |     r0 = r3;
    0x00021f7a mov r5, r3                                        |     r5 = r3;
    0x00021f7c str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00021f7e bl 0x29410                                        |     zbx_vector_ptr_create ();
    0x00021f82 ldr r4, [sp, 0x4c]                                |     r4 = var_4ch_2;
    0x00021f84 mov r0, r4                                        |     r0 = r4;
    0x00021f86 blx 0xc114                                        |     fcn_0000c114 ();
    0x00021f8a ldr r3, [sp, 0x50]                                |     r3 = var_50h_2;
    0x00021f8c str r0, [sp, 0x3c]                                |     var_3ch = r0;
    0x00021f8e adds r3, 1                                        |     r3++;
                                                                 |     if (r3 < 1) {
    0x00021f90 blt.w 0x22308                                     |         goto label_106;
                                                                 |     }
    0x00021f94 ldr r0, [pc, 0x3cc]                               |     
    0x00021f96 movs r3, 8                                        |     r3 = 8;
    0x00021f98 mov r2, r7                                        |     r2 = r7;
    0x00021f9a movs r1, 0x4d                                     |     r1 = 0x4d;
    0x00021f9c add r0, pc                                        |     r0 = "the modification time of log file \"%s\" has been updated without changing its size, try checking again later";
    0x00021f9e bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x00021fa2 mov r1, r0                                        |     r1 = r0;
    0x00021fa4 strd r7, r4, [r0]                                 |     __asm ("strd r7, r4, [r0]");
    0x00021fa8 mov r0, r5                                        |     r0 = r5;
    0x00021faa bl 0x29480                                        |     zbx_vector_ptr_append ();
    0x00021fae ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00021fb0 cmp r3, 0                                         |     
    0x00021fb2 itt le                                            |     
                                                                 |     if (r3 > 0) {
    0x00021fb4 movle r3, r7                                      |         r3 = r7;
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x00021fb6 movle r2, r7                                      |         r2 = r7;
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00021fb8 ble.w 0x222a4                                     |         goto label_107;
                                                                 |     }
    0x00021fbc ldr r2, [pc, 0x3a8]                               |     
    0x00021fbe ldr.w sl, [pc, 0x3ac]                             |     sl = *(0x0002236c);
    0x00021fc2 strd r7, r7, [sp, 0x40]                           |     __asm ("strd r7, r7, [var_40h_2]");
    0x00021fc6 add r2, pc                                        |     r2 = 0x44332;
    0x00021fc8 adds r2, 0x3c                                     |     r2 += 0x3c;
    0x00021fca add sl, pc                                        |     sl += pc;
    0x00021fcc str r2, [sp, 0x34]                                |     var_34h = r2;
    0x00021fce ldr r2, [pc, 0x3a0]                               |     
    0x00021fd0 add r2, pc                                        |     r2 = 0x44346;
    0x00021fd2 str r2, [sp, 0x38]                                |     var_38h_2 = r2;
    0x00021fd4 b 0x22002                                         |     
                                                                 |     while (r0 == 0) {
    0x00021fd6 ldr r3, [r5]                                      |         r3 = *(r5);
    0x00021fd8 cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x00021fda ble.w 0x222de                                     |             goto label_108;
                                                                 |         }
    0x00021fde ldr r3, [pc, 0x394]                               |         
    0x00021fe0 ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00021fe4 ldr r3, [r3]                                      |         r3 = *(0x22376);
    0x00021fe6 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00021fe8 bgt.w 0x2220c                                     |             goto label_109;
                                                                 |         }
                                                                 | label_38:
    0x00021fec ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
                                                                 |         if (r0 != 0) {
    0x00021fee cbz r0, 0x21ff4                                   |             
    0x00021ff0 blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
    0x00021ff4 mov r0, r5                                        |         r0 = r5;
    0x00021ff6 blx 0xbd14                                        |         gai_strerror ();
    0x00021ffa ldr r3, [sp, 0x74]                                |         r3 = var_74h;
    0x00021ffc cmp r3, 0                                         |         
                                                                 |         if (r3 <= 0) {
    0x00021ffe ble.w 0x2229e                                     |             goto label_110;
                                                                 |         }
    0x00022002 ldr r2, [sp, 0x70]                                |         r2 = var_70h;
    0x00022004 subs r3, 1                                        |         r3--;
    0x00022006 str r3, [sp, 0x74]                                |         var_74h = r3;
    0x00022008 ldr.w r5, [r2, r3, lsl 2]                         |         offset_1 = r3 << 2;
                                                                 |         r5 = *((r2 + offset_1));
    0x0002200c ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x0002200e blx 0xbfd8                                        |         r0 = getenv (r0);
    0x00022012 mov r4, r0                                        |         r4 = r0;
    0x00022014 cmp r0, 0                                         |         
    0x00022016 beq 0x21fd6                                       |         
                                                                 |     }
                                                                 |     do {
                                                                 | label_27:
    0x00022018 mov r0, r4                                        |         r0 = r4;
    0x0002201a blx 0xc360                                        |         r0 = fcn_0000c360 ();
    0x0002201e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00022020 beq 0x220cc                                       |             goto label_111;
                                                                 |         }
                                                                 | label_28:
    0x00022022 ldrb r3, [r0, 0x13]                               |         r3 = *((r0 + 0x13));
    0x00022024 add.w r6, r0, 0x13                                |         r6 = r0 + 0x13;
    0x00022028 cmp r3, 0x2e                                      |         
                                                                 |         if (r3 != 0x2e) {
    0x0002202a bne 0x22032                                       |             goto label_112;
                                                                 |         }
    0x0002202c ldrb r3, [r6, 1]                                  |         r3 = *((r6 + 1));
    0x0002202e cmp r3, 0                                         |         
    0x00022030 beq 0x22018                                       |         
                                                                 |     } while (r3 == 0);
                                                                 | label_112:
    0x00022032 ldrb r3, [r0, 0x13]                               |     r3 = *((r0 + 0x13));
    0x00022034 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x00022036 bne 0x22044                                       |         goto label_113;
                                                                 |     }
    0x00022038 ldrb r3, [r6, 1]                                  |     r3 = *((r6 + 1));
    0x0002203a cmp r3, 0x2e                                      |     
                                                                 |     if (r3 != 0x2e) {
    0x0002203c bne 0x22044                                       |         goto label_113;
                                                                 |     }
    0x0002203e ldrb r3, [r6, 2]                                  |     r3 = *((r6 + 2));
    0x00022040 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00022042 beq 0x22018                                       |         goto label_27;
                                                                 |     }
                                                                 | label_113:
    0x00022044 mov r1, sl                                        |     r1 = sl;
    0x00022046 ldr r2, [r5, 4]                                   |     r2 = *((r5 + 4));
    0x00022048 mov r3, r6                                        |     r3 = r6;
    0x0002204a movs r0, 0                                        |     r0 = 0;
    0x0002204c bl 0x396b0                                        |     zbx_dsprintf ()
    0x00022050 mov r1, r8                                        |     r1 = r8;
    0x00022052 mov r7, r0                                        |     r7 = r0;
    0x00022054 blx 0xbd9c                                        |     r0 = fcn_0000bd9c ();
    0x00022058 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002205a bne 0x22122                                       |         goto label_114;
                                                                 |     }
    0x0002205c ldr r1, [sp, 0x5c]                                |     r1 = var_5ch_2;
                                                                 |     if (r1 != 0) {
    0x0002205e cbz r1, 0x2206e                                   |         
    0x00022060 ldr r3, [sp, 0x98]                                |         r3 = var_98h;
    0x00022062 and r3, r3, 0xf000                                |         r3 &= case.0x3207a.11;
    0x00022066 cmp.w r3, 0x4000                                  |         
                                                                 |         if (r3 == 0x4000) {
    0x0002206a beq.w 0x2222e                                     |             goto label_115;
                                                                 |         }
                                                                 |     }
                                                                 | label_39:
    0x0002206e ldrd r1, fp, [sp, 0x54]                           |     __asm ("ldrd r1, fp, [var_54h_2]");
    0x00022072 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00022074 beq 0x2214e                                       |         goto label_116;
                                                                 |     }
    0x00022076 mov r0, r6                                        |     r0 = r6;
    0x00022078 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x0002207c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002207e beq 0x2214e                                       |         goto label_116;
                                                                 |     }
                                                                 | label_32:
    0x00022080 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00022082 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
                                                                 | label_34:
    0x00022086 cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 != 0x4000) {
    0x0002208a bne 0x22146                                       |         goto label_33;
                                                                 |     }
                                                                 | label_43:
    0x0002208c ldr r2, [sp, 0x50]                                |     r2 = var_50h_2;
    0x0002208e ldr r6, [r5]                                      |     r6 = *(r5);
    0x00022090 cmp r6, r2                                        |     
    0x00022092 ite ge                                            |     
                                                                 |     if (r6 < r2) {
    0x00022094 movge r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r6 >= r2) {
    0x00022096 movlt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00022098 cmp.w r2, -1                                      |     
    0x0002209c it eq                                             |     
                                                                 |     if (r2 != -1) {
    0x0002209e orreq r3, r3, 1                                   |         r3 |= 1;
                                                                 |     }
    0x000220a2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000220a4 beq 0x22146                                       |         goto label_33;
                                                                 |     }
    0x000220a6 ldr r0, [pc, 0x2d0]                               |     
    0x000220a8 movs r3, 8                                        |     r3 = 8;
    0x000220aa movs r2, 0                                        |     r2 = 0;
    0x000220ac movs r1, 0x4d                                     |     r1 = 0x4d;
    0x000220ae adds r6, 1                                        |     r6++;
    0x000220b0 add r0, pc                                        |     r0 = 0x4442e;
    0x000220b2 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x000220b6 mov r1, r0                                        |     r1 = r0;
    0x000220b8 str r7, [r0, 4]                                   |     *((r0 + 4)) = r7;
    0x000220ba str r6, [r0]                                      |     *(r0) = r6;
    0x000220bc ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x000220be bl 0x29480                                        |     zbx_vector_ptr_append ();
    0x000220c2 mov r0, r4                                        |     r0 = r4;
    0x000220c4 blx 0xc360                                        |     r0 = fcn_0000c360 ();
    0x000220c8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000220ca bne 0x22022                                       |         goto label_28;
                                                                 |     }
                                                                 | label_111:
    0x000220cc mov r0, r4                                        |     r0 = r4;
    0x000220ce blx 0xc494                                        |     fcn_0000c494 ();
    0x000220d0 strd lr, r7, [r2, 0x22c]!                         |     __asm ("strd lr, r7, case.0x3207a.11!");
                                                                 | label_91:
    0x000220d4 bl 0x2152c                                        |     r0 = fcn_0002152c (r0, r1);
    0x000220d8 adds r7, r0, 1                                    |     r7 = r0 + 1;
    0x000220da mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r7 == r0) {
    0x000220dc beq.w 0x222ba                                     |         goto label_94;
                                                                 |     }
    0x000220e0 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x000220e2 cmp r3, 4                                         |     
    0x000220e4 mov r2, r3                                        |     r2 = r3;
    0x000220e6 it le                                             |     
                                                                 |     if (r3 <= 4) {
    0x000220e8 movle r3, -1                                      |         r3 = -1;
                                                                 |         goto label_117;
                                                                 |     }
                                                                 |     if (r3 <= 4) {
                                                                 | label_117:
    0x000220ec ble.w 0x21e46                                     |         goto label_29;
                                                                 |     }
    0x000220f0 ldr r6, [r4, 8]                                   |     r6 = *((r4 + 8));
    0x000220f2 b 0x21e26                                         |     goto label_30;
                                                                 | label_101:
    0x000220f4 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000220f6 beq.w 0x22332                                     |         goto label_118;
                                                                 |     }
    0x000220fa ldrb r3, [r6]                                     |     r3 = *(r6);
    0x000220fc movs r7, 0                                        |     r7 = 0;
    0x000220fe cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00022100 beq.w 0x222be                                     |         goto label_119;
                                                                 |     }
                                                                 | label_102:
    0x00022104 ldr r1, [pc, 0x274]                               |     
    0x00022106 add.w r8, sp, 0x88                                |     r8 += var_88h;
    0x0002210a mov r2, r8                                        |     r2 = r8;
    0x0002210c mov r0, r6                                        |     r0 = r6;
    0x0002210e add r1, pc                                        |     r1 = 0x4448e;
    0x00022110 bl 0x37a10                                        |     r0 = str2uint64 ();
    0x00022114 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00022116 bne.w 0x2231a                                     |         goto label_120;
                                                                 |     }
    0x0002211a ldr r3, [sp, 0x88]                                |     r3 = var_88h;
    0x0002211c subs r3, r5, r3                                   |     r3 = r5 - r3;
    0x0002211e str r3, [sp, 0x28]                                |     var_28h_2 = r3;
    0x00022120 b 0x21f4c                                         |     goto label_31;
                                                                 | label_114:
    0x00022122 ldr r3, [pc, 0x250]                               |     
    0x00022124 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00022128 ldr r3, [r3]                                      |     r3 = *(0x22376);
    0x0002212a cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002212c ble 0x22146                                       |         
    0x0002212e blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00022132 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00022134 bl 0x26fdc                                        |         zbx_strerror ();
    0x00022138 ldrd r2, r1, [sp, 0x34]                           |         __asm ("ldrd r2, r1, [var_34h]");
    0x0002213c mov r3, r7                                        |         r3 = r7;
    0x0002213e str r0, [sp]                                      |         *(sp) = r0;
    0x00022140 movs r0, 4                                        |         r0 = 4;
    0x00022142 bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_33:
    0x00022146 mov r0, r7                                        |     r0 = r7;
    0x00022148 blx 0xbd14                                        |     gai_strerror ();
    0x0002214c b 0x22018                                         |     goto label_27;
                                                                 | label_116:
    0x0002214e cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x00022152 beq 0x22160                                       |         goto label_121;
                                                                 |     }
    0x00022154 mov r1, fp                                        |     r1 = fp;
    0x00022156 mov r0, r6                                        |     r0 = r6;
    0x00022158 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x0002215c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002215e beq 0x22080                                       |         goto label_32;
                                                                 |     }
                                                                 | label_121:
    0x00022160 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00022162 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00022166 cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 == 0x8000) {
    0x0002216a beq 0x22240                                       |         goto label_122;
                                                                 |     }
    0x0002216c cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 == 0x4000) {
    0x00022170 beq 0x2226c                                       |         goto label_123;
                                                                 |     }
    0x00022172 cmp.w r3, 0xa000                                  |     
                                                                 |     if (r3 == 0xa000) {
    0x00022176 beq.w 0x22294                                     |         goto label_124;
                                                                 |     }
    0x0002217a cmp.w r3, 0xc000                                  |     
                                                                 |     if (r3 == fcn.0000c000) {
    0x0002217e beq 0x22248                                       |         goto label_125;
                                                                 |     }
    0x00022180 cmp.w r3, 0x6000                                  |     
                                                                 |     if (r3 == 0x6000) {
    0x00022184 beq 0x22250                                       |         goto label_126;
                                                                 |     }
    0x00022186 cmp.w r3, 0x2000                                  |     
                                                                 |     if (r3 != segment.PHDR) {
    0x0002218a bne.w 0x222cc                                     |         goto label_127;
                                                                 |     }
    0x0002218e ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x00022190 lsls r1, r2, 0x1a                                 |     r1 = r2 << 0x1a;
                                                                 |     if (r1 >= r2) {
    0x00022192 bpl 0x22146                                       |         goto label_33;
                                                                 |     }
                                                                 | label_40:
    0x00022194 ldr r6, [sp, 0xb8]                                |     r6 = var_b8h;
    0x00022196 ldr r0, [sp, 0x60]                                |     r0 = var_60h_2;
    0x00022198 ldr r1, [sp, 0xbc]                                |     r1 = var_bch;
    0x0002219a ldr r2, [sp, 0x64]                                |     r2 = var_64h;
    0x0002219c cmp r6, r0                                        |     
    0x0002219e sbcs.w r2, r1, r2                                 |     __asm ("sbcs.w r2, r1, r2");
                                                                 |     if (r6 <= r0) {
    0x000221a2 blo 0x22146                                       |         goto label_33;
                                                                 |     }
    0x000221a4 ldrd r0, r2, [sp, 0x68]                           |     __asm ("ldrd r0, r2, [var_68h]");
    0x000221a8 cmp r0, r6                                        |     
    0x000221aa sbcs.w r1, r2, r1                                 |     __asm ("sbcs.w r1, r2, r1");
                                                                 |     if (r0 <= r6) {
    0x000221ae blo.w 0x22086                                     |         goto label_34;
                                                                 |     }
                                                                 | label_44:
    0x000221b2 ldrd r0, r1, [sp, 0x28]                           |     __asm ("ldrd r0, r1, [var_2ch]");
    0x000221b6 ldr r2, [sp, 0xd8]                                |     r2 = var_d8h;
    0x000221b8 cmp r2, r1                                        |     
    0x000221ba ite gt                                            |     
                                                                 |     if (r2 <= r1) {
    0x000221bc movgt r1, 1                                       |         r1 = 1;
                                                                 |     }
                                                                 |     if (r2 > r1) {
    0x000221be movle r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x000221c0 cmp r2, r0                                        |     
    0x000221c2 it gt                                             |     
                                                                 |     if (r2 <= r0) {
    0x000221c4 movgt r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x000221c6 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000221c8 beq.w 0x22086                                     |         goto label_34;
                                                                 |     }
    0x000221cc ldr r2, [sp, 0x40]                                |     r2 = var_40h_2;
    0x000221ce adds r2, 1                                        |     r2++;
    0x000221d0 str r2, [sp, 0x40]                                |     var_40h_2 = r2;
    0x000221d2 b 0x22086                                         |     goto label_34;
                                                                 | label_93:
    0x000221d4 mov r2, r3                                        |     r2 = r3;
    0x000221d6 mov.w r3, -1                                      |     r3 = -1;
    0x000221d8 adds r3, 0xff                                     |     r3 += 0xff;
    0x000221da b 0x21e46                                         |     goto label_29;
                                                                 | label_96:
    0x000221dc cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000221de beq.w 0x21ea2                                     |         goto label_35;
                                                                 |     }
    0x000221e2 ldrb r3, [r5]                                     |     r3 = *(r5);
    0x000221e4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000221e6 beq.w 0x21ea2                                     |         goto label_35;
                                                                 |     }
    0x000221ea ldr r1, [pc, 0x194]                               |     
    0x000221ec add r2, sp, 0x60                                  |     r2 += var_60h_2;
    0x000221ee mov r0, r5                                        |     r0 = r5;
    0x000221f0 add r1, pc                                        |     r1 = 0x44576;
    0x000221f2 bl 0x37a10                                        |     r0 = str2uint64 ();
    0x000221f6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000221f8 beq.w 0x21ea2                                     |         goto label_35;
                                                                 |     }
                                                                 | label_42:
    0x000221fc ldr r4, [sp, 0x20]                                |     r4 = var_20h_2;
    0x000221fe mov r2, r5                                        |     r2 = r5;
    0x00022200 ldr r1, [pc, 0x180]                               |     
    0x00022202 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00022204 add r1, pc                                        |     r1 = 0x4458c;
    0x00022206 b 0x21e8c                                         |     goto label_36;
                                                                 | label_104:
    0x00022208 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0002220a b 0x21ebe                                         |     goto label_37;
                                                                 | label_109:
    0x0002220c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00022210 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00022212 ldr r4, [r5, 4]                                   |     r4 = *((r5 + 4));
    0x00022214 bl 0x26fdc                                        |     zbx_strerror ();
    0x00022218 ldr r2, [pc, 0x16c]                               |     
    0x0002221a ldr r1, [pc, 0x170]                               |     
    0x0002221c mov r3, r4                                        |     r3 = r4;
    0x0002221e str r0, [sp]                                      |     *(sp) = r0;
    0x00022220 movs r0, 4                                        |     r0 = 4;
    0x00022222 add r2, pc                                        |     r2 = 0x445ae;
    0x00022224 adds r2, 0x3c                                     |     r2 += 0x3c;
    0x00022226 add r1, pc                                        |     r1 = "calculate_delay(): processed bytes:%llu remaining bytes:%llu t_proc:%e s speed:%e B/s remaining full checks:%llu delay:%e s";
    0x00022228 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0002222c b 0x21fec                                         |     goto label_38;
                                                                 | label_115:
    0x0002222e ldr r3, [sp, 0x3c]                                |     r3 = var_3ch;
    0x00022230 adds r0, r3, 1                                    |     r0 = r3 + 1;
    0x00022232 add r0, r7                                        |     r0 += r7;
    0x00022234 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00022238 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002223a bne.w 0x2206e                                     |         goto label_39;
                                                                 |     }
    0x0002223e b 0x22146                                         |     goto label_33;
                                                                 | label_122:
    0x00022240 ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x00022242 lsls r0, r2, 0x1f                                 |     r0 = r2 << 0x1f;
                                                                 |     if (r0 < r2) {
    0x00022244 bmi 0x22194                                       |         goto label_40;
                                                                 |     }
    0x00022246 b 0x22146                                         |     goto label_33;
                                                                 | label_125:
    0x00022248 ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x0002224a lsls r6, r2, 0x1c                                 |     r6 = r2 << 0x1c;
                                                                 |     if (r6 < r2) {
    0x0002224c bmi 0x22194                                       |         goto label_40;
                                                                 |     }
    0x0002224e b 0x22146                                         |     goto label_33;
                                                                 | label_126:
    0x00022250 ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x00022252 lsls r0, r2, 0x1b                                 |     r0 = r2 << 0x1b;
                                                                 |     if (r0 < r2) {
    0x00022254 bmi 0x22194                                       |         goto label_40;
                                                                 |     }
    0x00022256 b 0x22146                                         |     goto label_33;
                                                                 | label_97:
    0x00022258 ldr r1, [pc, 0x134]                               |     
    0x0002225a add r2, sp, 0x60                                  |     r2 += var_60h_2;
    0x0002225c mov r0, r5                                        |     r0 = r5;
    0x0002225e add r1, pc                                        |     r1 = 0x445f2;
    0x00022260 bl 0x37a10                                        |     r0 = str2uint64 ();
    0x00022264 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00022266 beq.w 0x21e6a                                     |         goto label_41;
                                                                 |     }
    0x0002226a b 0x221fc                                         |     goto label_42;
                                                                 | label_123:
    0x0002226c ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x0002226e lsls r1, r2, 0x1e                                 |     r1 = r2 << 0x1e;
                                                                 |     if (r1 >= r2) {
    0x00022270 bpl.w 0x2208c                                     |         goto label_43;
                                                                 |     }
    0x00022274 ldr r6, [sp, 0xb8]                                |     r6 = var_b8h;
    0x00022276 ldr r0, [sp, 0x60]                                |     r0 = var_60h_2;
    0x00022278 ldr r2, [sp, 0xbc]                                |     r2 = var_bch;
    0x0002227a ldr r1, [sp, 0x64]                                |     r1 = var_64h;
    0x0002227c cmp r6, r0                                        |     
    0x0002227e sbcs.w r1, r2, r1                                 |     __asm ("sbcs.w r1, r2, r1");
                                                                 |     if (r6 <= r0) {
    0x00022282 blo.w 0x2208c                                     |         goto label_43;
                                                                 |     }
    0x00022286 ldrd r0, r1, [sp, 0x68]                           |     __asm ("ldrd r0, r1, [var_68h]");
    0x0002228a cmp r0, r6                                        |     
    0x0002228c sbcs.w r2, r1, r2                                 |     __asm ("sbcs.w r2, r1, r2");
                                                                 |     if (r0 >= r6) {
    0x00022290 bhs 0x221b2                                       |         goto label_44;
                                                                 |     }
    0x00022292 b 0x2208c                                         |     goto label_43;
                                                                 | label_124:
    0x00022294 ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x00022296 lsls r2, r2, 0x1d                                 |     r2 <<= 0x1d;
                                                                 |     if (r2 < r2) {
    0x00022298 bmi.w 0x22194                                     |         goto label_40;
                                                                 |     }
    0x0002229c b 0x22146                                         |     goto label_33;
                                                                 | label_110:
    0x0002229e ldrd r3, r7, [sp, 0x40]                           |     __asm ("ldrd r3, r7, [var_40h_2]");
    0x000222a2 asrs r2, r3, 0x1f                                 |     r2 = r3 >> 0x1f;
                                                                 | label_107:
    0x000222a4 ldr r1, [sp, 0x20]                                |     r1 = var_20h_2;
    0x000222a6 strd r3, r2, [r1, 8]                              |     __asm ("strd r3, r2, [r1, 8]");
    0x000222aa ldr r3, [r1, 0x28]                                |     r3 = *((r1 + 0x28));
    0x000222ac orr r3, r3, 1                                     |     r3 |= 1;
    0x000222b0 str r3, [r1, 0x28]                                |     *((r1 + 0x28)) = r3;
                                                                 | label_47:
    0x000222b2 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x000222b4 bl 0x214f8                                        |     fcn_000214f8 (r0);
    0x000222b8 b 0x21eee                                         |     goto label_45;
                                                                 | label_94:
    0x000222ba movs r7, 1                                        |     r7 = 1;
    0x000222bc b 0x21f0a                                         |     goto label_46;
                                                                 | label_119:
    0x000222be str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x000222c0 mvn r3, 0x80000000                                |     r3 = ~case.0x3207a.11;
    0x000222c4 add.w r8, sp, 0x88                                |     r8 += var_88h;
    0x000222c8 str r3, [sp, 0x28]                                |     var_28h_2 = r3;
    0x000222ca b 0x21ebe                                         |     goto label_37;
                                                                 | label_127:
    0x000222cc cmp.w r3, 0x1000                                  |     
                                                                 |     if (r3 != 0x1000) {
    0x000222d0 bne.w 0x22146                                     |         goto label_33;
                                                                 |     }
    0x000222d4 ldr r2, [sp, 0x24]                                |     r2 = var_24h_2;
    0x000222d6 lsls r2, r2, 0x19                                 |     r2 <<= 0x19;
                                                                 |     if (r2 < r2) {
    0x000222d8 bmi.w 0x22194                                     |         goto label_40;
                                                                 |     }
                                                                 | label_108:
    0x000222de ldr r0, [sp, 0x20]                                |     r0 = var_20h_2;
    0x000222e0 mov r2, r4                                        |     r2 = r4;
    0x000222e2 ldr r3, [pc, 0xb0]                                |     
    0x000222e4 movs r7, 1                                        |     r7 = 1;
    0x000222e6 ldr r1, [r0, 0x28]                                |     r1 = *((r0 + 0x28));
    0x000222e8 mov r4, r0                                        |     r4 = r0;
    0x000222ea add r3, pc                                        |     r3 = 0x44684;
    0x000222ec orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000222f0 str r1, [r0, 0x28]                                |     *((r0 + 0x28)) = r1;
    0x000222f2 mov.w r1, 0x440                                   |     r1 = case.0x3207a.11;
    0x000222f6 ldr r0, [pc, 0xa0]                                |     
    0x000222f8 add r0, pc                                        |     r0 = 0x44696;
    0x000222fa bl 0x35d28                                        |     zbx_strdup2 ();
    0x000222fe ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00022300 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00022302 add r3, r7                                        |     r3 += r7;
    0x00022304 str r3, [sp, 0x74]                                |     var_74h = r3;
    0x00022306 b 0x222b2                                         |     goto label_47;
                                                                 | label_106:
    0x00022308 mov r0, r4                                        |     r0 = r4;
    0x0002230a movs r7, 1                                        |     r7 = 1;
    0x0002230c blx 0xbd14                                        |     gai_strerror ();
    0x00022310 b 0x222b2                                         |     goto label_47;
                                                                 | label_95:
    0x00022312 and r3, r3, 0x7f                                  |     r3 &= 0x7f;
    0x00022316 str r3, [sp, 0x24]                                |     var_24h_2 = r3;
    0x00022318 b 0x21e50                                         |     goto label_48;
                                                                 | label_120:
    0x0002231a ldr r4, [sp, 0x20]                                |     r4 = var_20h_2;
    0x0002231c mov r2, r6                                        |     r2 = r6;
    0x0002231e ldr r1, [pc, 0x7c]                                |     
    0x00022320 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00022322 add r1, pc                                        |     r1 = 0x446c4;
    0x00022324 b 0x21e8c                                         |     goto label_36;
                                                                 | label_105:
    0x00022326 ldr r4, [sp, 0x20]                                |     r4 = var_20h_2;
    0x00022328 mov r2, r7                                        |     r2 = r7;
    0x0002232a ldr r1, [pc, 0x74]                                |     
    0x0002232c ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002232e add r1, pc                                        |     r1 = 0x446d4;
    0x00022330 b 0x21e8c                                         |     goto label_36;
                                                                 | label_118:
    0x00022332 mvn r3, 0x80000000                                |     r3 = ~case.0x3207a.11;
    0x00022336 add.w r8, sp, 0x88                                |     r8 += var_88h;
    0x0002233a str r6, [sp, 0x2c]                                |     var_2ch = r6;
    0x0002233c str r3, [sp, 0x28]                                |     var_28h_2 = r3;
    0x0002233e b 0x21ebe                                         |     goto label_37;
                                                                 | label_103:
    0x00022340 str r7, [sp, 0x2c]                                |     var_2ch = r7;
    0x00022342 b 0x21ebe                                         |     goto label_37;
                                                                 | label_100:
    0x00022344 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00022348 add r6, sp, 0x28                                  |     r6 += var_28h_2;
    0x0002234a movs r3, r0                                       |     r3 = r0;
    0x0002234c lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0002234e movs r0, r0                                       |     
    0x00022350 add r5, sp, 0x3f8                                 |     r5 += var_3f8h;
    0x00022352 movs r3, r0                                       |     r3 = r0;
    0x00022354 strh r0, [r6, r1]                                 |     *((r6 + r1)) = r0;
    0x00022356 movs r2, r0                                       |     r2 = r0;
    0x00022358 strh r2, [r0, r2]                                 |     *((r0 + r2)) = r2;
    0x0002235a movs r2, r0                                       |     r2 = r0;
    0x0002235c add r4, sp, 0x368                                 |     r4 += var_368h;
    0x0002235e movs r3, r0                                       |     r3 = r0;
    0x00022360 ldrh r2, [r7, 0x2c]                               |     r2 = *((r7 + 0x2c));
    0x00022362 movs r2, r0                                       |     r2 = r0;
    0x00022364 ldr r7, [pc, 0x3e0]                               |     r7 = *(0x22748);
    0x00022366 movs r2, r0                                       |     r2 = r0;
    0x00022368 str r2, [r3, r6]                                  |     *((r3 + r6)) = r2;
    0x0002236a movs r2, r0                                       |     r2 = r0;
    0x0002236c subs r7, 0x46                                     |     r7 -= 0x46;
    0x0002236e movs r2, r0                                       |     r2 = r0;
    0x00022370 str r0, [r5, r3]                                  |     *((r5 + r3)) = r0;
    0x00022372 movs r2, r0                                       |     r2 = r0;
    0x00022374 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x00022376 movs r0, r0                                       |     
    0x00022378 ldr r6, [pc, 0x390]                               |     r6 = *(0x2270c);
    0x0002237a movs r2, r0                                       |     r2 = r0;
    0x0002237c ldrh r6, [r1, 0x20]                               |     r6 = *((r1 + 0x20));
    0x0002237e movs r2, r0                                       |     r2 = r0;
    0x00022380 ldr r6, [pc, 0x3e0]                               |     r6 = *(0x22764);
    0x00022382 movs r2, r0                                       |     r2 = r0;
    0x00022384 ldr r6, [pc, 0x3b0]                               |     r6 = *(0x22738);
    0x00022386 movs r2, r0                                       |     r2 = r0;
    0x00022388 ldr r7, [pc, 0xf8]                                |     r7 = *(0x22484);
    0x0002238a movs r2, r0                                       |     r2 = r0;
    0x0002238c ldr r6, [pc, 0x108]                               |     r6 = *(0x22498);
    0x0002238e movs r2, r0                                       |     r2 = r0;
    0x00022390 ldr r6, [pc, 0x228]                               |     r6 = *(0x225bc);
    0x00022392 movs r2, r0                                       |     r2 = r0;
    0x00022394 ldr r5, [pc, 0x2a8]                               |     r5 = *(0x22640);
    0x00022396 movs r2, r0                                       |     r2 = r0;
    0x00022398 ldr r4, [pc, 0x270]                               |     r4 = *(0x2260c);
    0x0002239a movs r2, r0                                       |     r2 = r0;
    0x0002239c ldr r6, [pc, 0x18]                                |     r6 = *(0x223b8);
    0x0002239e movs r2, r0                                       |     r2 = r0;
    0x000223a0 ldr r6, [pc, 0x58]                                |     r6 = *(0x223fc);
    0x000223a2 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e3c4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.SYSTEM_BOOTTIME ()                       | void SYSTEM_BOOTTIME (int16_t arg_804h, int16_t arg2) {
                                                         |     int16_t var_80ch;
                                                         |     int16_t var_4h;
                                                         |     r1 = arg2;
    0x0001e3c4 blmi 0xf70cbc                             |     __asm ("blmi 0xf70cbc");
    0x0001e3c8 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x0001e3cc mov sb, r1                                |     sb = r1;
    0x0001e3ce add r2, pc                                |     r2 += pc;
    0x0001e3d0 ldr r0, [pc, 0xec]                        |     
    0x0001e3d2 subw sp, sp, 0x80c                        |     __asm ("subw sp, sp, case.0x3207a.11");
    0x0001e3d6 ldr r1, [pc, 0xec]                        |     
    0x0001e3d8 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0001e3da add r0, pc                                |     r0 = 0x3c89e;
    0x0001e3dc add r1, pc                                |     r1 = 0x3c8a6;
    0x0001e3de ldr r3, [r3]                              |     r3 = *(r3);
    0x0001e3e0 str.w r3, [sp, 0x804]                     |     __asm ("str.w r3, [arg_804h]");
    0x0001e3e4 mov.w r3, 0                               |     r3 = 0;
    0x0001e3e8 blx 0xc39c                                |     r0 = fcn_0000c39c ();
    0x0001e3ec mov r6, r0                                |     r6 = r0;
    0x0001e3ee cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001e3f0 beq 0x1e488                               |         goto label_1;
                                                         |     }
    0x0001e3f2 ldr.w r8, [pc, 0xd4]                      |     r8 = *(0x0001e4c8);
    0x0001e3f6 add r5, sp, 4                             |     r5 += var_4h;
    0x0001e3f8 mov r7, sp                                |     r7 = sp;
    0x0001e3fa add r8, pc                                |     r8 += pc;
    0x0001e3fc b 0x1e40c                                 |     
                                                         |     while (r0 != 0) {
    0x0001e3fe mov r2, r7                                |         r2 = r7;
    0x0001e400 mov r1, r8                                |         r1 = r8;
    0x0001e402 mov r0, r5                                |         r0 = r5;
    0x0001e404 blx 0xc178                                |         r0 = fcn_0000c178 ();
    0x0001e408 cmp r0, 1                                 |         
                                                         |         if (r0 == 1) {
    0x0001e40a beq 0x1e466                               |             goto label_2;
                                                         |         }
    0x0001e40c mov r2, r6                                |         r2 = r6;
    0x0001e40e mov.w r1, 0x800                           |         r1 = case.0x3207a.11;
    0x0001e412 mov r0, r5                                |         r0 = r5;
    0x0001e414 blx 0xbd2c                                |         r0 = ferror (r0);
    0x0001e418 mov r4, r0                                |         r4 = r0;
    0x0001e41a cmp r0, 0                                 |         
    0x0001e41c bne 0x1e3fe                               |         
                                                         |     }
    0x0001e41e mov r0, r6                                |     r0 = r6;
    0x0001e420 blx 0xc248                                |     munmap (r0, r1);
    0x0001e424 ldr.w r0, [sb, 0x28]                      |     r0 = *((sb + 0x28));
    0x0001e428 mov r2, r4                                |     r2 = r4;
    0x0001e42a ldr r3, [pc, 0xa0]                        |     
    0x0001e42c movs r1, 0x36                             |     r1 = 0x36;
    0x0001e42e orr r0, r0, 0x20                          |     r0 |= 0x20;
    0x0001e432 str.w r0, [sb, 0x28]                      |     __asm ("str.w r0, [sb, 0x28]");
    0x0001e436 add r3, pc                                |     r3 = 0x3c908;
    0x0001e438 ldr r0, [pc, 0x94]                        |     
    0x0001e43a add r0, pc                                |     r0 = 0x3c90e;
    0x0001e43c bl 0x35d28                                |     r0 = zbx_strdup2 ();
    0x0001e440 mov r3, r0                                |     r3 = r0;
    0x0001e442 movs r0, 1                                |     r0 = 1;
    0x0001e444 str.w r3, [sb, 0x20]                      |     __asm ("str.w r3, [sb, 0x20]");
                                                         |     do {
                                                         | label_0:
    0x0001e448 ldr r2, [pc, 0x88]                        |         
    0x0001e44a ldr r3, [pc, 0x70]                        |         r3 = *(0x1e4be);
    0x0001e44c add r2, pc                                |         r2 = 0x3c924;
    0x0001e44e ldr r3, [r2, r3]                          |         r3 = *(0x3c924);
    0x0001e450 ldr r2, [r3]                              |         r2 = *(0x3c924);
    0x0001e452 ldr.w r3, [sp, 0x804]                     |         r3 = *(arg_804h);
    0x0001e456 eors r2, r3                               |         r2 ^= r3;
    0x0001e458 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0001e45c bne 0x1e4b4                               |             goto label_3;
                                                         |         }
    0x0001e45e addw sp, sp, 0x80c                        |         __asm ("addw sp, var_80ch");
    0x0001e462 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_2:
    0x0001e466 ldr.w r3, [sb, 0x28]                      |         r3 = *((sb + 0x28));
    0x0001e46a movs r4, 0                                |         r4 = 0;
    0x0001e46c ldr r2, [r7]                              |         r2 = *(r7);
    0x0001e46e mov r0, r6                                |         r0 = r6;
    0x0001e470 str.w r4, [sb, 0xc]                       |         __asm ("str.w r4, [sb, 0xc]");
    0x0001e474 orr r3, r3, 1                             |         r3 |= 1;
    0x0001e478 str.w r2, [sb, 8]                         |         __asm ("str.w r2, [sb, 8]");
    0x0001e47c str.w r3, [sb, 0x28]                      |         __asm ("str.w r3, [sb, 0x28]");
    0x0001e480 blx 0xc248                                |         munmap (r0, r1);
    0x0001e484 mov r0, r4                                |         r0 = r4;
    0x0001e486 b 0x1e448                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x0001e488 ldr.w r3, [sb, 0x28]                      |     r3 = *((sb + 0x28));
    0x0001e48c orr r3, r3, 0x20                          |     r3 |= 0x20;
    0x0001e490 str.w r3, [sb, 0x28]                      |     __asm ("str.w r3, [sb, 0x28]");
    0x0001e494 blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x0001e498 ldr r0, [r0]                              |     r0 = *(r0);
    0x0001e49a bl 0x26fdc                                |     zbx_strerror ();
    0x0001e49e ldr r1, [pc, 0x38]                        |     
    0x0001e4a0 mov r2, r0                                |     r2 = r0;
    0x0001e4a2 mov r0, r6                                |     r0 = r6;
    0x0001e4a4 add r1, pc                                |     r1 = 0x3c982;
    0x0001e4a6 bl 0x396b0                                |     r0 = zbx_dsprintf ()
    0x0001e4aa mov r3, r0                                |     r3 = r0;
    0x0001e4ac movs r0, 1                                |     r0 = 1;
    0x0001e4ae str.w r3, [sb, 0x20]                      |     __asm ("str.w r3, [sb, 0x20]");
    0x0001e4b2 b 0x1e448                                 |     goto label_0;
                                                         | label_3:
    0x0001e4b4 blx 0xbe48                                |     fcn_0000be48 ();
    0x0001e4b8 invalid                                   |     
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1eb3c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.SYSTEM_CPU_INTR ()                               | void SYSTEM_CPU_INTR (int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_0h_2;
                                                                 |     int32_t var_0h_3;
                                                                 |     FILE * stream;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_80ch;
                                                                 |     int16_t var_810h;
                                                                 |     r1 = arg2;
    0x0001eb3c blmi 0xf31430                                     |     __asm ("blmi 0xf31430");
    0x0001eb40 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0001eb44 mov r7, r1                                        |     r7 = r1;
    0x0001eb46 add r2, pc                                        |     r2 += pc;
    0x0001eb48 ldr r0, [pc, 0xe8]                                |     
    0x0001eb4a sub.w sp, sp, 0x810                               |     
    0x0001eb4e ldr r1, [pc, 0xe8]                                |     
    0x0001eb50 mov sb, sp                                        |     sb = sp;
    0x0001eb52 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x0001eb54 add r0, pc                                        |     r0 = 0x3d78c;
    0x0001eb56 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0001eb5a add r1, pc                                        |     r1 = 0x3d798;
    0x0001eb5c ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001eb5e str.w r3, [sp, 0x80c]                             |     __asm ("str.w r3, [var_80ch]");
    0x0001eb62 mov.w r3, 0                                       |     r3 = 0;
    0x0001eb66 vstr d16, [sb]                                    |     __asm ("vstr d16, [sb]");
    0x0001eb6a blx 0xc39c                                        |     r0 = fcn_0000c39c ();
    0x0001eb6e mov r6, r0                                        |     r6 = r0;
    0x0001eb70 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001eb72 beq 0x1ec04                                       |         goto label_2;
                                                                 |     }
    0x0001eb74 ldr.w sl, [pc, 0xc4]                              |     sl = *(0x0001ec3c);
    0x0001eb78 movw r8, 0x6e69                                   |     r8 = (r8 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001eb7c add r5, sp, 0xc                                   |     r5 += stream;
    0x0001eb7e movt r8, 0x7274                                   |     r8 = (r8 & 0xFFFF) | 0xNaN0000;
    0x0001eb82 add sl, pc                                        |     sl += pc;
                                                                 |     do {
                                                                 | label_0:
    0x0001eb84 mov r2, r6                                        |         r2 = r6;
    0x0001eb86 mov.w r1, 0x800                                   |         r1 = case.0x3207a.11;
    0x0001eb8a mov r0, r5                                        |         r0 = r5;
    0x0001eb8c blx 0xbd2c                                        |         r0 = ferror (r0);
    0x0001eb90 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x0001eb92 cbz r0, 0x1ebe0                                   |             goto label_3;
                                                                 |         }
    0x0001eb94 ldr r3, [r5]                                      |         r3 = *(r5);
    0x0001eb96 cmp r3, r8                                        |         
    0x0001eb98 bne 0x1eb84                                       |         
                                                                 |     } while (r3 != r8);
    0x0001eb9a mov r2, sb                                        |     r2 = sb;
    0x0001eb9c mov r1, sl                                        |     r1 = sl;
    0x0001eb9e mov r0, r5                                        |     r0 = r5;
    0x0001eba0 movs r4, 0                                        |     r4 = 0;
    0x0001eba2 blx 0xc178                                        |     r0 = fcn_0000c178 ();
    0x0001eba6 cmp r0, 1                                         |     
                                                                 |     if (r0 != 1) {
    0x0001eba8 bne 0x1eb84                                       |         goto label_0;
                                                                 |     }
    0x0001ebaa ldr r3, [r7, 0x28]                                |     r3 = *((r7 + 0x28));
    0x0001ebac mov r0, r6                                        |     r0 = r6;
    0x0001ebae orr r3, r3, 1                                     |     r3 |= 1;
    0x0001ebb2 str r3, [r7, 0x28]                                |     *((r7 + 0x28)) = r3;
    0x0001ebb4 ldrd r2, r3, [sb]                                 |     __asm ("ldrd r2, r3, [sb]");
    0x0001ebb8 strd r2, r3, [r7, 8]                              |     __asm ("strd r2, r3, [r7, 8]");
    0x0001ebbc blx 0xc248                                        |     munmap (r0, r1);
                                                                 |     do {
                                                                 | label_1:
    0x0001ebc0 ldr r2, [pc, 0x7c]                                |         
    0x0001ebc2 ldr r3, [pc, 0x6c]                                |         r3 = *(0x1ec32);
    0x0001ebc4 add r2, pc                                        |         r2 = 0x3d808;
    0x0001ebc6 ldr r3, [r2, r3]                                  |         r3 = *(0x3d808);
    0x0001ebc8 ldr r2, [r3]                                      |         r2 = *(0x3d808);
    0x0001ebca ldr.w r3, [sp, 0x80c]                             |         r3 = var_80ch;
    0x0001ebce eors r2, r3                                       |         r2 ^= r3;
    0x0001ebd0 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001ebd4 bne 0x1ec28                                       |             goto label_4;
                                                                 |         }
    0x0001ebd6 mov r0, r4                                        |         r0 = r4;
    0x0001ebd8 add.w sp, sp, 0x810                               |         
    0x0001ebdc pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_3:
    0x0001ebe0 mov r0, r6                                        |         r0 = r6;
    0x0001ebe2 blx 0xc248                                        |         munmap (r0, r1);
    0x0001ebe6 ldr r0, [r7, 0x28]                                |         r0 = *((r7 + 0x28));
    0x0001ebe8 mov r2, r4                                        |         r2 = r4;
    0x0001ebea ldr r3, [pc, 0x58]                                |         
    0x0001ebec movs r1, 0xff                                     |         r1 = 0xff;
    0x0001ebee movs r4, 1                                        |         r4 = 1;
    0x0001ebf0 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x0001ebf4 str r0, [r7, 0x28]                                |         *((r7 + 0x28)) = r0;
    0x0001ebf6 add r3, pc                                        |         r3 = 0x3d840;
    0x0001ebf8 ldr r0, [pc, 0x4c]                                |         
    0x0001ebfa add r0, pc                                        |         r0 = 0x3d846;
    0x0001ebfc bl 0x35d28                                        |         zbx_strdup2 ();
    0x0001ec00 str r0, [r7, 0x20]                                |         *((r7 + 0x20)) = r0;
    0x0001ec02 b 0x1ebc0                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0001ec04 ldr r3, [r7, 0x28]                                |     r3 = *((r7 + 0x28));
    0x0001ec06 movs r4, 1                                        |     r4 = 1;
    0x0001ec08 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x0001ec0c str r3, [r7, 0x28]                                |     *((r7 + 0x28)) = r3;
    0x0001ec0e blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0001ec12 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001ec14 bl 0x26fdc                                        |     zbx_strerror ();
    0x0001ec18 ldr r1, [pc, 0x30]                                |     
    0x0001ec1a mov r2, r0                                        |     r2 = r0;
    0x0001ec1c mov r0, r6                                        |     r0 = r6;
    0x0001ec1e add r1, pc                                        |     r1 = 0x3d86e;
    0x0001ec20 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001ec24 str r0, [r7, 0x20]                                |     *((r7 + 0x20)) = r0;
    0x0001ec26 b 0x1ebc0                                         |     goto label_1;
                                                                 | label_4:
    0x0001ec28 blx 0xbe48                                        |     fcn_0000be48 ();
    0x0001ec2c b 0x1ed7c                                         |     
                                                                 |     while (1) {
    0x0001eca4 ldr r2, [pc, 0x140]                               |         
    0x0001eca6 ldr r3, [pc, 0x12c]                               |         r3 = *(0x1edd6);
    0x0001eca8 add r2, pc                                        |         r2 = 0x3da94;
    0x0001ecaa ldr r3, [r2, r3]                                  |         r3 = *(0x3da94);
    0x0001ecac ldr r2, [r3]                                      |         r2 = *(0x3da94);
    0x0001ecae ldr r3, [sp, 0x64]                                |         r3 = var_64h;
    0x0001ecb0 eors r2, r3                                       |         r2 ^= r3;
    0x0001ecb2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001ecb6 bne.w 0x1edbe                                     |             goto label_5;
                                                                 |         }
    0x0001ecba mov r0, r4                                        |         r0 = r4;
    0x0001ecbc add sp, 0x6c                                      |         
    0x0001ecbe vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x0001ecc2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x0001ed7c strd r2, r3, [sl]                                 |         __asm ("strd r2, r3, [sl]");
    0x0001ed80 b 0x1eca4                                         |         
                                                                 |     }
                                                                 | label_5:
    0x0001edbe blx 0xbe48                                        |     fcn_0000be48 ();
    0x0001edc2 nop                                               |     
    0x0001edc4 nop.w                                             |     
    0x0001edc8 movs r0, r0                                       |     
    0x0001edca movs r0, r0                                       |     
    0x0001edcc movs r0, r0                                       |     
    0x0001edce eors r1, r3                                       |     r1 ^= r3;
    0x0001edd0 svc 0x90                                          |     __asm ("svc 0x90");
    0x0001edd2 movs r3, r0                                       |     r3 = r0;
    0x0001edd4 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0001edd6 movs r0, r0                                       |     
    0x0001edd8 svc 0x7e                                          |     __asm ("svc 0x7e");
    0x0001edda movs r3, r0                                       |     r3 = r0;
    0x0001eddc ldrb r6, [r6, 3]                                  |     r6 = *((r6 + 3));
    0x0001edde movs r2, r0                                       |     r2 = r0;
    0x0001ede0 ldrb r0, [r3, 4]                                  |     r0 = *((r3 + 4));
    0x0001ede2 movs r2, r0                                       |     r2 = r0;
    0x0001ede4 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x0001ede6 movs r0, r0                                       |     
    0x0001ede8 svc 0x44                                          |     __asm ("svc 0x44");
    0x0001edea movs r3, r0                                       |     r3 = r0;
    0x0001edec ldrb r6, [r5, 3]                                  |     r6 = *((r5 + 3));
    0x0001edee movs r2, r0                                       |     r2 = r0;
    0x0001edf0 ldrb r4, [r0, 1]                                  |     r4 = *((r0 + 1));
    0x0001edf2 movs r2, r0                                       |     r2 = r0;
    0x0001edf4 ldrb r2, [r7]                                     |     r2 = *(r7);
    0x0001edf6 movs r2, r0                                       |     r2 = r0;
    0x0001edf8 ldrb r4, [r4, 2]                                  |     r4 = *((r4 + 2));
    0x0001edfa movs r2, r0                                       |     r2 = r0;
    0x0001edfc strb r2, [r7, 0x1f]                               |     *((r7 + 0x1f)) = r2;
    0x0001edfe movs r2, r0                                       |     r2 = r0;
    0x0001ee00 mov r3, r0                                        |     r3 = r0;
    0x0001ee02 ldr r0, [pc, 0x16c]                               |     
    0x0001ee04 ldr r2, [pc, 0x16c]                               |     r2 = *(0x1ef74);
    0x0001ee06 push {r4, r5, r6, lr}                             |     
    0x0001ee08 sub sp, 0x48                                      |     
    0x0001ee0a add r0, pc                                        |     r0 = 0x3dd80;
    0x0001ee0c mov r4, r1                                        |     r4 = r1;
    0x0001ee0e ldr r2, [r0, r2]                                  |     
    0x0001ee10 ldr r2, [r2]                                      |     r2 = *(0x3dd80);
    0x0001ee12 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x0001ee14 mov.w r2, 0                                       |     r2 = 0;
    0x0001ee18 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x0001ee1a cmp r2, 2                                         |     
                                                                 |     if (r2 > 2) {
    0x0001ee1c bgt 0x1eea6                                       |         goto label_6;
                                                                 |     }
    0x0001ee1e cmp r2, 0                                         |     
    0x0001ee20 itet gt                                           |     
                                                                 |     if (r2 <= 0) {
    0x0001ee22 ldrgt r1, [r3, 8]                                 |         r1 = *((r3 + 8));
                                                                 |     }
                                                                 |     if (r2 > 0) {
    0x0001ee24 movle r0, 0                                       |         r0 = 0;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x0001ee26 ldrgt r0, [r1]                                    |         r0 = *(r1);
                                                                 |     }
    0x0001ee28 cmp r2, 2                                         |     
                                                                 |     if (r2 == 2) {
    0x0001ee2a beq 0x1ee6c                                       |         goto label_7;
                                                                 |     }
    0x0001ee2c add r3, sp, 0x14                                  |     r3 += var_14h;
    0x0001ee2e add r1, sp, 0x30                                  |     r1 += var_30h;
    0x0001ee30 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001ee32 add r3, sp, 0x38                                  |     r3 += var_38h;
    0x0001ee34 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0001ee36 add r2, sp, 0x20                                  |     r2 += var_20h;
    0x0001ee38 str r1, [sp]                                      |     *(sp) = r1;
    0x0001ee3a add r3, sp, 0x28                                  |     r3 += var_28h;
    0x0001ee3c add r1, sp, 0x18                                  |     r1 += var_18h;
    0x0001ee3e bl 0x1ec50                                        |     r0 = fcn_0001ec50 (r0, r1, r2, r3, r4, r5);
                                                                 |     if (r0 == 0) {
    0x0001ee42 cbz r0, 0x1ee92                                   |         void (*0x1ee92)() ();
                                                                 |     }
                                                                 |     do {
    0x0001ee44 ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x0001ee46 movs r0, 1                                        |         r0 = 1;
    0x0001ee48 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0001ee4a orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x0001ee4e str r2, [r4, 0x20]                                |         *((r4 + 0x20)) = r2;
    0x0001ee50 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
                                                                 | label_7:
    0x0001ee6c ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x0001ee6e add r2, sp, 0x30                                  |         r2 += var_30h;
    0x0001ee70 add r1, sp, 0x18                                  |         r1 += var_18h;
    0x0001ee72 ldr r5, [r3, 4]                                   |         r5 = *((r3 + 4));
    0x0001ee74 add r3, sp, 0x14                                  |         r3 += var_14h;
    0x0001ee76 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0001ee78 add r3, sp, 0x38                                  |         r3 += var_38h;
    0x0001ee7a str r3, [sp, 4]                                   |         var_4h = r3;
    0x0001ee7c add r3, sp, 0x28                                  |         r3 += var_28h;
    0x0001ee7e str r2, [sp]                                      |         *(sp) = r2;
    0x0001ee80 add r2, sp, 0x20                                  |         r2 += var_20h;
    0x0001ee82 bl 0x1ec50                                        |         r0 = fcn_0001ec50 (r0, r1, r2, r3, r4, r5);
    0x0001ee86 mov r6, r0                                        |         r6 = r0;
    0x0001ee88 cmp r0, 0                                         |         
    0x0001ee8a bne 0x1ee44                                       |         
                                                                 |     } while (r0 != 0);
                                                                 |     if (r5 == 0) {
    0x0001ee8c cbz r5, 0x1ee92                                   |         void (*0x1ee92)() ();
                                                                 |     }
    0x0001ee8e ldrb r3, [r5]                                     |     r3 = *(r5);
                                                                 | label_6:
    0x0001eea6 ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e838 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.SYSTEM_CPU_LOAD ()                   | void SYSTEM_CPU_LOAD (int16_t arg1, int16_t arg2) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_1ch;
                                                     |     int16_t var_20h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0001e838 ldr r2, [pc, 0x1a8]                   |     
    0x0001e83a ldr r3, [pc, 0x1ac]                   |     r3 = *(0x1e9ea);
    0x0001e83c push.w {r4, r5, r6, r7, r8, lr}       |     
    0x0001e840 mov r4, r1                            |     r4 = r1;
    0x0001e842 ldr r7, [r0, 4]                       |     r7 = *((r0 + 4));
    0x0001e844 add r2, pc                            |     r2 = 0x3d22c;
    0x0001e846 vpush {d8}                            |     __asm ("vpush {d8}");
    0x0001e84a sub sp, 0x20                          |     
    0x0001e84c ldr r3, [r2, r3]                      |     
    0x0001e84e cmp r7, 2                             |     
    0x0001e850 ldr r3, [r3]                          |     r3 = *(0x3d22c);
    0x0001e852 str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x0001e854 mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r7 > 2) {
    0x0001e858 bgt 0x1e93a                           |         goto label_3;
                                                     |     }
    0x0001e85a cmp r7, 0                             |     
    0x0001e85c mov r5, r0                            |     r5 = r0;
                                                     |     if (r7 > 0) {
    0x0001e85e ble 0x1e8ac                           |         
    0x0001e860 ldr r3, [r0, 8]                       |         r3 = *((r0 + 8));
    0x0001e862 ldr.w r8, [r3]                        |         r8 = *(r3);
    0x0001e866 cmp.w r8, 0                           |         
    0x0001e868 lsrs r0, r0, 0x1c                     |         r0 >>= 0x1c;
                                                     |         if (r0 == r0) {
    0x0001e86a beq 0x1e8ac                           |             goto label_4;
                                                     |         }
    0x0001e86c ldrb.w r6, [r8]                       |         r6 = *(r8);
                                                     |         if (r6 == 0) {
    0x0001e870 cbz r6, 0x1e8ae                       |             goto label_5;
                                                     |         }
    0x0001e872 ldr r1, [pc, 0x178]                   |         
    0x0001e874 mov r0, r8                            |         r0 = r8;
    0x0001e876 add r1, pc                            |         r1 = 0x3d268;
    0x0001e878 blx 0xbc58                            |         r0 = fcn_0000bc58 ();
    0x0001e87c mov r6, r0                            |         r6 = r0;
                                                     |         if (r0 == 0) {
    0x0001e87e cbz r0, 0x1e8ae                       |             goto label_5;
                                                     |         }
    0x0001e880 ldr r1, [pc, 0x16c]                   |         
    0x0001e882 mov r0, r8                            |         r0 = r8;
    0x0001e884 movs r6, 1                            |         r6 = 1;
    0x0001e886 add r1, pc                            |         r1 = 0x3d27a;
    0x0001e888 blx 0xbc58                            |         r0 = fcn_0000bc58 ();
                                                     |         if (r0 == 0) {
    0x0001e88c cbz r0, 0x1e8ae                       |             goto label_5;
                                                     |         }
    0x0001e88e ldr r0, [r4, 0x28]                    |         r0 = *((r4 + 0x28));
    0x0001e890 movs r2, 0                            |         r2 = 0;
    0x0001e892 ldr r3, [pc, 0x160]                   |         
    0x0001e894 movs r1, 0x94                         |         r1 = 0x94;
    0x0001e896 movs r6, 1                            |         r6 = 1;
    0x0001e898 orr r0, r0, 0x20                      |         r0 |= 0x20;
    0x0001e89c str r0, [r4, 0x28]                    |         *((r4 + 0x28)) = r0;
    0x0001e89e add r3, pc                            |         r3 = 0x3d298;
    0x0001e8a0 ldr r0, [pc, 0x154]                   |         
    0x0001e8a2 add r0, pc                            |         r0 = 0x3d29e;
    0x0001e8a4 bl 0x35d28                            |         zbx_strdup2 ();
    0x0001e8a8 str r0, [r4, 0x20]                    |         *((r4 + 0x20)) = r0;
    0x0001e8aa b 0x1e8ee                             |         goto label_0;
                                                     |     }
                                                     | label_4:
    0x0001e8ac movs r6, 0                            |     r6 = 0;
                                                     | label_5:
    0x0001e8ae cmp r7, 2                             |     
                                                     |     if (r7 != 2) {
    0x0001e8b0 bne 0x1e90e                           |         goto label_6;
                                                     |     }
    0x0001e8b2 ldr r3, [r5, 8]                       |     r3 = *((r5 + 8));
    0x0001e8b4 ldr.w r8, [r3, 4]                     |     r8 = *((r3 + 4));
    0x0001e8b8 cmp.w r8, 0                           |     
                                                     |     if (r8 == 0) {
    0x0001e8bc beq 0x1e90e                           |         goto label_6;
                                                     |     }
    0x0001e8be ldrb.w r5, [r8]                       |     r5 = *(r8);
    0x0001e8c2 cmp r5, 0                             |     
                                                     |     if (r5 != 0) {
    0x0001e8c4 bne 0x1e958                           |         goto label_7;
                                                     |     }
                                                     | label_1:
    0x0001e8c6 movs r1, 3                            |     r1 = 3;
    0x0001e8c8 mov r0, sp                            |     r0 = sp;
    0x0001e8ca blx 0xc26c                            |     r0 = fcntl64 ();
    0x0001e8ce cmp r0, r5                            |     
                                                     |     if (r0 <= r5) {
    0x0001e8d0 ble 0x1e91c                           |         goto label_8;
                                                     |     }
                                                     |     do {
    0x0001e8d2 add r3, sp, 0x20                      |         r3 += var_20h;
    0x0001e8d4 cmp r6, 1                             |         
    0x0001e8d6 add.w r5, r3, r5, lsl 3               |         r5 = r3 + (r5 << 3);
    0x0001e8da vldr d8, [r5, -0x20]                  |         __asm ("vldr d8, [r5, -0x20]");
                                                     |         if (r6 == 1) {
    0x0001e8de beq 0x1e9a2                           |             goto label_9;
                                                     |         }
                                                     | label_2:
    0x0001e8e0 ldr r3, [r4, 0x28]                    |         r3 = *((r4 + 0x28));
    0x0001e8e2 movs r6, 0                            |         r6 = 0;
    0x0001e8e4 vstr d8, [r4, 0x10]                   |         __asm ("vstr d8, [r4, 0x10]");
    0x0001e8e8 orr r3, r3, 2                         |         r3 |= 2;
    0x0001e8ec str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
                                                     | label_0:
    0x0001e8ee ldr r2, [pc, 0x10c]                   |         
    0x0001e8f0 ldr r3, [pc, 0xf4]                    |         r3 = *(0x1e9e8);
    0x0001e8f2 add r2, pc                            |         r2 = 0x3d2f4;
    0x0001e8f4 ldr r3, [r2, r3]                      |         r3 = *(0x3d2f4);
    0x0001e8f6 ldr r2, [r3]                          |         r2 = *(0x3d2f4);
    0x0001e8f8 ldr r3, [sp, 0x1c]                    |         r3 = var_1ch;
    0x0001e8fa eors r2, r3                           |         r2 ^= r3;
    0x0001e8fc mov.w r3, 0                           |         r3 = 0;
                                                     |         if (r2 != r3) {
    0x0001e900 bne 0x1e9e0                           |             goto label_10;
                                                     |         }
    0x0001e902 mov r0, r6                            |         r0 = r6;
    0x0001e904 add sp, 0x20                          |         
    0x0001e906 vpop {d8}                             |         __asm ("vpop {d8}");
    0x0001e90a pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_6:
    0x0001e90e movs r5, 0                            |         r5 = 0;
    0x0001e910 movs r1, 3                            |         r1 = 3;
    0x0001e912 mov r0, sp                            |         r0 = sp;
    0x0001e914 blx 0xc26c                            |         r0 = fcntl64 ();
    0x0001e918 cmp r0, r5                            |         
    0x0001e91a bgt 0x1e8d2                           |         
                                                     |     } while (r0 > r5);
                                                     | label_8:
    0x0001e91c ldr r0, [r4, 0x28]                    |     r0 = *((r4 + 0x28));
    0x0001e91e movs r2, 0                            |     r2 = 0;
    0x0001e920 ldr r3, [pc, 0xdc]                    |     
    0x0001e922 movs r1, 0xa8                         |     r1 = 0xa8;
    0x0001e924 movs r6, 1                            |     r6 = 1;
    0x0001e926 orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x0001e92a str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x0001e92c add r3, pc                            |     r3 = 0x3d330;
    0x0001e92e ldr r0, [pc, 0xd4]                    |     
    0x0001e930 add r0, pc                            |     r0 = 0x3d33a;
    0x0001e932 bl 0x35d28                            |     zbx_strdup2 ();
    0x0001e936 str r0, [r4, 0x20]                    |     *((r4 + 0x20)) = r0;
    0x0001e938 b 0x1e8ee                             |     goto label_0;
                                                     | label_3:
    0x0001e93a ldr r0, [r1, 0x28]                    |     r0 = *((r1 + 0x28));
    0x0001e93c movs r2, 0                            |     r2 = 0;
    0x0001e93e ldr r3, [pc, 0xc8]                    |     
    0x0001e940 movs r1, 0x88                         |     r1 = 0x88;
    0x0001e942 movs r6, 1                            |     r6 = 1;
    0x0001e944 orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x0001e948 str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x0001e94a add r3, pc                            |     r3 = 0x3d358;
    0x0001e94c ldr r0, [pc, 0xbc]                    |     
    0x0001e94e add r0, pc                            |     r0 = 0x3d35e;
    0x0001e950 bl 0x35d28                            |     zbx_strdup2 ();
    0x0001e954 str r0, [r4, 0x20]                    |     *((r4 + 0x20)) = r0;
    0x0001e956 b 0x1e8ee                             |     goto label_0;
                                                     | label_7:
    0x0001e958 ldr r1, [pc, 0xb4]                    |     
    0x0001e95a mov r0, r8                            |     r0 = r8;
    0x0001e95c add r1, pc                            |     r1 = 0x3d370;
    0x0001e95e blx 0xbc58                            |     r0 = fcn_0000bc58 ();
    0x0001e962 mov r5, r0                            |     r5 = r0;
    0x0001e964 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0001e966 beq 0x1e8c6                           |         goto label_1;
                                                     |     }
    0x0001e968 ldr r1, [pc, 0xa8]                    |     
    0x0001e96a mov r0, r8                            |     r0 = r8;
    0x0001e96c add r1, pc                            |     r1 = 0x3d384;
    0x0001e96e blx 0xbc58                            |     r0 = fcn_0000bc58 ();
                                                     |     if (r0 == 0) {
    0x0001e972 cbz r0, 0x1e9ba                       |         goto label_11;
                                                     |     }
    0x0001e974 ldr r1, [pc, 0xa0]                    |     
    0x0001e976 mov r0, r8                            |     r0 = r8;
    0x0001e978 mov r5, r7                            |     r5 = r7;
    0x0001e97a add r1, pc                            |     r1 = 0x3d396;
    0x0001e97c blx 0xbc58                            |     r0 = fcn_0000bc58 ();
    0x0001e980 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x0001e982 beq 0x1e8c6                           |         goto label_1;
                                                     |     }
    0x0001e984 ldr r0, [r4, 0x28]                    |     r0 = *((r4 + 0x28));
    0x0001e986 movs r2, 0                            |     r2 = 0;
    0x0001e988 ldr r3, [pc, 0x90]                    |     
    0x0001e98a movs r1, 0xa2                         |     r1 = 0xa2;
    0x0001e98c movs r6, 1                            |     r6 = 1;
    0x0001e98e orr r0, r0, 0x20                      |     r0 |= 0x20;
    0x0001e992 str r0, [r4, 0x28]                    |     *((r4 + 0x28)) = r0;
    0x0001e994 add r3, pc                            |     r3 = 0x3d3b4;
    0x0001e996 ldr r0, [pc, 0x88]                    |     
    0x0001e998 add r0, pc                            |     r0 = 0x3d3be;
    0x0001e99a bl 0x35d28                            |     zbx_strdup2 ();
    0x0001e99e str r0, [r4, 0x20]                    |     *((r4 + 0x20)) = r0;
    0x0001e9a0 b 0x1e8ee                             |     goto label_0;
                                                     | label_9:
    0x0001e9a2 movs r0, 0x54                         |     r0 = 0x54;
    0x0001e9a4 blx 0xbe88                            |     r0 = dup2 ();
    0x0001e9a8 cmp r0, 0                             |     
                                                     |     if (r0 > 0) {
    0x0001e9aa ble 0x1e9be                           |         
    0x0001e9ac vmov s15, r0                          |         __asm ("vmov s15, r0");
    0x0001e9b0 vcvt.f64.s32 d16, s15                 |         __asm ("vcvt.f64.s32 d16, s15");
    0x0001e9b4 vdiv.f64 d8, d8, d16                  |         __asm ("vdiv.f64 d8, d8, d16");
    0x0001e9b8 b 0x1e8e0                             |         goto label_2;
                                                     | label_11:
    0x0001e9ba movs r5, 1                            |         r5 = 1;
    0x0001e9bc b 0x1e8c6                             |         goto label_1;
                                                     |     }
    0x0001e9be ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x0001e9c0 orr r3, r3, 0x20                      |     r3 |= 0x20;
    0x0001e9c4 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x0001e9c6 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x0001e9ca ldr r0, [r0]                          |     r0 = *(r0);
    0x0001e9cc bl 0x26fdc                            |     zbx_strerror ();
    0x0001e9d0 ldr r1, [pc, 0x50]                    |     
    0x0001e9d2 mov r2, r0                            |     r2 = r0;
    0x0001e9d4 movs r0, 0                            |     r0 = 0;
    0x0001e9d6 add r1, pc                            |     r1 = 0x3d3fe;
    0x0001e9d8 bl 0x396b0                            |     zbx_dsprintf ()
    0x0001e9dc str r0, [r4, 0x20]                    |     *((r4 + 0x20)) = r0;
    0x0001e9de b 0x1e8ee                             |     goto label_0;
                                                     | label_10:
    0x0001e9e0 blx 0xbe48                            |     fcn_0000be48 ();
    0x0001e9e4 b 0x1f138                             |     return void (*0x1f138)() ();
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e4dc */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.SYSTEM_CPU_NUM ()        | void SYSTEM_CPU_NUM (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0001e4dc push {r4, r5, r6, lr}     |     
    0x0001e4de mov r4, r1                |     r4 = r1;
    0x0001e4e0 ldr r5, [r0, 4]           |     r5 = *((r0 + 4));
    0x0001e4e2 cmp r5, 1                 |     
                                         |     if (r5 > 1) {
    0x0001e4e4 bgt 0x1e510               |         goto label_2;
                                         |     }
                                         |     if (r5 != 1) {
    0x0001e4e6 bne 0x1e4f2               |         goto label_3;
                                         |     }
    0x0001e4e8 ldr r3, [r0, 8]           |     r3 = *((r0 + 8));
    0x0001e4ea ldr r6, [r3]              |     r6 = *(r3);
                                         |     if (r6 == 0) {
    0x0001e4ec cbz r6, 0x1e4f2           |         goto label_3;
                                         |     }
    0x0001e4ee ldrb r3, [r6]             |     r3 = *(r6);
    0x0001e4f0 cbnz r3, 0x1e530          |     
                                         |     while (r5 == 1) {
                                         | label_3:
    0x0001e4f2 movs r0, 0x54             |         r0 = 0x54;
                                         | label_0:
    0x0001e4f4 blx 0xbe88                |         r0 = dup2 ();
    0x0001e4f8 adds r2, r0, 1            |         r2 = r0 + 1;
    0x0001e4fa ldr r3, [r4, 0x28]        |         r3 = *((r4 + 0x28));
                                         |         if (r2 == r0) {
    0x0001e4fc beq 0x1e54e               |             goto label_4;
                                         |         }
    0x0001e4fe asrs r2, r0, 0x1f         |         r2 = r0 >> 0x1f;
    0x0001e500 movs r5, 0                |         r5 = 0;
    0x0001e502 orr r3, r3, 1             |         r3 |= 1;
    0x0001e506 strd r0, r2, [r4, 8]      |         __asm ("strd r0, r2, [r4, 8]");
    0x0001e50a str r3, [r4, 0x28]        |         *((r4 + 0x28)) = r3;
                                         | label_1:
    0x0001e50c mov r0, r5                |         r0 = r5;
    0x0001e50e pop {r4, r5, r6, pc}      |         
                                         | label_2:
    0x0001e510 ldr r0, [r1, 0x28]        |         r0 = *((r1 + 0x28));
    0x0001e512 movs r2, 0                |         r2 = 0;
    0x0001e514 ldr r3, [pc, 0x74]        |         
    0x0001e516 movs r1, 0x21             |         r1 = 0x21;
    0x0001e518 movs r5, 1                |         r5 = 1;
    0x0001e51a orr r0, r0, 0x20          |         r0 |= 0x20;
    0x0001e51e str r0, [r4, 0x28]        |         *((r4 + 0x28)) = r0;
    0x0001e520 add r3, pc                |         r3 = 0x3cab0;
    0x0001e522 ldr r0, [pc, 0x6c]        |         
    0x0001e524 add r0, pc                |         r0 = 0x3caba;
    0x0001e526 bl 0x35d28                |         zbx_strdup2 ();
    0x0001e52a str r0, [r4, 0x20]        |         *((r4 + 0x20)) = r0;
    0x0001e52c mov r0, r5                |         r0 = r5;
    0x0001e52e pop {r4, r5, r6, pc}      |         
    0x0001e530 ldr r1, [pc, 0x60]        |         
    0x0001e532 mov r0, r6                |         r0 = r6;
    0x0001e534 add r1, pc                |         r1 = 0x3cacc;
    0x0001e536 blx 0xbc58                |         fcn_0000bc58 ();
    0x0001e538 invalid                   |         
    0x0001e53c beq 0x1e4f2               |         
                                         |     }
    0x0001e53e ldr r1, [pc, 0x58]        |     
    0x0001e540 mov r0, r6                |     r0 = r6;
    0x0001e542 add r1, pc                |     r1 = 0x3cae0;
    0x0001e544 blx 0xbc58                |     r0 = fcn_0000bc58 ();
                                         |     if (r0 == 0) {
    0x0001e548 cbnz r0, 0x1e570          |         
    0x0001e54a movs r0, 0x53             |         r0 = 0x53;
    0x0001e54c b 0x1e4f4                 |         goto label_0;
                                         | label_4:
    0x0001e54e orr r3, r3, 0x20          |         r3 |= 0x20;
    0x0001e552 movs r5, 1                |         r5 = 1;
    0x0001e554 str r3, [r4, 0x28]        |         *((r4 + 0x28)) = r3;
    0x0001e556 blx 0xc15c                |         r0 = fcn_0000c15c ();
    0x0001e55a ldr r0, [r0]              |         r0 = *(r0);
    0x0001e55c bl 0x26fdc                |         zbx_strerror ();
    0x0001e560 ldr r1, [pc, 0x38]        |         
    0x0001e562 mov r2, r0                |         r2 = r0;
    0x0001e564 movs r0, 0                |         r0 = 0;
    0x0001e566 add r1, pc                |         r1 = 0x3cb06;
    0x0001e568 bl 0x396b0                |         zbx_dsprintf ()
    0x0001e56c str r0, [r4, 0x20]        |         *((r4 + 0x20)) = r0;
    0x0001e56e b 0x1e50c                 |         goto label_1;
                                         |     }
    0x0001e570 ldr r1, [r4, 0x28]        |     r1 = *((r4 + 0x28));
    0x0001e572 movs r2, 0                |     r2 = 0;
    0x0001e574 ldr r3, [pc, 0x28]        |     
    0x0001e576 ldr r0, [pc, 0x2c]        |     
    0x0001e578 orr r1, r1, 0x20          |     r1 |= 0x20;
    0x0001e57c str r1, [r4, 0x28]        |     *((r4 + 0x28)) = r1;
    0x0001e57e add r3, pc                |     r3 = 0x3cb22;
    0x0001e580 add r0, pc                |     r0 = 0x3cb2a;
    0x0001e582 movs r1, 0x2d             |     r1 = 0x2d;
    0x0001e584 bl 0x35d28                |     zbx_strdup2 ();
    0x0001e588 str r0, [r4, 0x20]        |     *((r4 + 0x20)) = r0;
    0x0001e58a b 0x1e50c                 |     goto label_1;
                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1ea28 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.SYSTEM_CPU_SWITCHES ()                               | void SYSTEM_CPU_SWITCHES (int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_8h_2;
                                                                     |     int16_t var_48h;
                                                                     |     int32_t var_0h_5;
                                                                     |     int16_t var_50h;
                                                                     |     int16_t var_68h;
                                                                     |     int16_t var_18h_2;
                                                                     |     int16_t var_10h_2;
                                                                     |     int32_t var_10h_3;
                                                                     |     int16_t var_8h_3;
                                                                     |     int32_t var_8h_4;
                                                                     |     int16_t var_88h;
                                                                     |     int32_t var_0h_6;
                                                                     |     int16_t var_94h;
                                                                     |     int16_t var_ach;
                                                                     |     int16_t var_8c8h;
                                                                     |     int16_t var_10c0h;
                                                                     |     FILE * var_4h_2;
                                                                     |     int16_t var_1h;
                                                                     |     int16_t var_0h_4;
                                                                     |     int16_t var_18c0h;
                                                                     |     int32_t var_0h_3;
                                                                     |     int16_t var_0h_2;
                                                                     |     int32_t var_0h_7;
                                                                     |     FILE * stream;
                                                                     |     int16_t var_44h;
                                                                     |     int16_t var_80ch;
                                                                     |     int16_t var_810h;
                                                                     |     r1 = arg2;
    0x0001ea28 ldr r2, [pc, 0xec]                                    |     
    0x0001ea2a ldr r3, [pc, 0xf0]                                    |     r3 = *(0x1eb1e);
    0x0001ea2c push.w {r4, r5, r6, r7, r8, sb, sl, lr}               |     
    0x0001ea30 mov r7, r1                                            |     r7 = r1;
    0x0001ea32 add r2, pc                                            |     r2 = 0x3d54e;
    0x0001ea34 ldr r0, [pc, 0xe8]                                    |     
    0x0001ea36 sub.w sp, sp, 0x810                                   |     
    0x0001ea3a ldr r1, [pc, 0xe8]                                    |     
    0x0001ea3c mov sb, sp                                            |     sb = sp;
    0x0001ea3e ldr r3, [r2, r3]                                      |     
    0x0001ea40 add r0, pc                                            |     r0 = 0x3d564;
    0x0001ea42 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0001ea46 add r1, pc                                            |     r1 = 0x3d570;
    0x0001ea48 ldr r3, [r3]                                          |     r3 = *(0x3d54e);
    0x0001ea4a str.w r3, [sp, 0x80c]                                 |     __asm ("str.w r3, [var_80ch]");
    0x0001ea4e mov.w r3, 0                                           |     r3 = 0;
    0x0001ea52 vstr d16, [sb]                                        |     __asm ("vstr d16, [sb]");
    0x0001ea56 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001ea5a mov r6, r0                                            |     r6 = r0;
    0x0001ea5c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001ea5e beq 0x1eaf0                                           |         goto label_11;
                                                                     |     }
    0x0001ea60 ldr.w sl, [pc, 0xc4]                                  |     sl = *(0x0001eb28);
    0x0001ea64 movw r8, 0x7463                                       |     r8 = (r8 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001ea68 add r5, sp, 0xc                                       |     r5 += stream;
    0x0001ea6a movt r8, 0x7478                                       |     r8 = (r8 & 0xFFFF) | 0xNaN0000;
    0x0001ea6e add sl, pc                                            |     sl += pc;
                                                                     |     do {
                                                                     | label_0:
    0x0001ea70 mov r2, r6                                            |         r2 = r6;
    0x0001ea72 mov.w r1, 0x800                                       |         r1 = case.0x3207a.11;
    0x0001ea76 mov r0, r5                                            |         r0 = r5;
    0x0001ea78 blx 0xbd2c                                            |         r0 = ferror (r0);
    0x0001ea7c mov r4, r0                                            |         r4 = r0;
                                                                     |         if (r0 == 0) {
    0x0001ea7e cbz r0, 0x1eacc                                       |             goto label_12;
                                                                     |         }
    0x0001ea80 ldr r3, [r5]                                          |         r3 = *(r5);
    0x0001ea82 cmp r3, r8                                            |         
    0x0001ea84 bne 0x1ea70                                           |         
                                                                     |     } while (r3 != r8);
    0x0001ea86 mov r2, sb                                            |     r2 = sb;
    0x0001ea88 mov r1, sl                                            |     r1 = sl;
    0x0001ea8a mov r0, r5                                            |     r0 = r5;
    0x0001ea8c movs r4, 0                                            |     r4 = 0;
    0x0001ea8e blx 0xc178                                            |     r0 = fcn_0000c178 ();
    0x0001ea92 cmp r0, 1                                             |     
                                                                     |     if (r0 != 1) {
    0x0001ea94 bne 0x1ea70                                           |         goto label_0;
                                                                     |     }
    0x0001ea96 ldr r3, [r7, 0x28]                                    |     r3 = *((r7 + 0x28));
    0x0001ea98 mov r0, r6                                            |     r0 = r6;
    0x0001ea9a orr r3, r3, 1                                         |     r3 |= 1;
    0x0001ea9e str r3, [r7, 0x28]                                    |     *((r7 + 0x28)) = r3;
    0x0001eaa0 ldrd r2, r3, [sb]                                     |     __asm ("ldrd r2, r3, [sb]");
    0x0001eaa4 strd r2, r3, [r7, 8]                                  |     __asm ("strd r2, r3, [r7, 8]");
    0x0001eaa8 blx 0xc248                                            |     munmap (r0, r1);
                                                                     |     do {
                                                                     | label_1:
    0x0001eaac ldr r2, [pc, 0x7c]                                    |         
    0x0001eaae ldr r3, [pc, 0x6c]                                    |         r3 = *(0x1eb1e);
    0x0001eab0 add r2, pc                                            |         r2 = 0x3d5e0;
    0x0001eab2 ldr r3, [r2, r3]                                      |         r3 = *(0x3d5e0);
    0x0001eab4 ldr r2, [r3]                                          |         r2 = *(0x3d5e0);
    0x0001eab6 ldr.w r3, [sp, 0x80c]                                 |         r3 = var_80ch;
    0x0001eaba eors r2, r3                                           |         r2 ^= r3;
    0x0001eabc mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001eac0 bne 0x1eb14                                           |             goto label_13;
                                                                     |         }
    0x0001eac2 mov r0, r4                                            |         r0 = r4;
    0x0001eac4 add.w sp, sp, 0x810                                   |         
    0x0001eac8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}                |         
                                                                     | label_12:
    0x0001eacc mov r0, r6                                            |         r0 = r6;
    0x0001eace blx 0xc248                                            |         munmap (r0, r1);
    0x0001ead2 ldr r0, [r7, 0x28]                                    |         r0 = *((r7 + 0x28));
    0x0001ead4 mov r2, r4                                            |         r2 = r4;
    0x0001ead6 ldr r3, [pc, 0x58]                                    |         
    0x0001ead8 movs r1, 0xdc                                         |         r1 = 0xdc;
    0x0001eada movs r4, 1                                            |         r4 = 1;
    0x0001eadc orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0001eae0 str r0, [r7, 0x28]                                    |         *((r7 + 0x28)) = r0;
    0x0001eae2 add r3, pc                                            |         r3 = 0x3d618;
    0x0001eae4 ldr r0, [pc, 0x4c]                                    |         
    0x0001eae6 add r0, pc                                            |         r0 = 0x3d61e;
    0x0001eae8 bl 0x35d28                                            |         zbx_strdup2 ();
    0x0001eaec str r0, [r7, 0x20]                                    |         *((r7 + 0x20)) = r0;
    0x0001eaee b 0x1eaac                                             |         
                                                                     |     } while (1);
                                                                     | label_11:
    0x0001eaf0 ldr r3, [r7, 0x28]                                    |     r3 = *((r7 + 0x28));
    0x0001eaf2 movs r4, 1                                            |     r4 = 1;
    0x0001eaf4 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001eaf8 str r3, [r7, 0x28]                                    |     *((r7 + 0x28)) = r3;
    0x0001eafa blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001eafe ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001eb00 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001eb04 ldr r1, [pc, 0x30]                                    |     
    0x0001eb06 mov r2, r0                                            |     r2 = r0;
    0x0001eb08 mov r0, r6                                            |     r0 = r6;
    0x0001eb0a add r1, pc                                            |     r1 = 0x3d646;
    0x0001eb0c bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001eb10 str r0, [r7, 0x20]                                    |     *((r7 + 0x20)) = r0;
    0x0001eb12 b 0x1eaac                                             |     goto label_1;
                                                                     | label_13:
    0x0001eb14 blx 0xbe48                                            |     fcn_0000be48 ();
    0x0001eb18 b 0x1ee90                                             |     
                                                                     |     while (1) {
                                                                     | label_2:
    0x0001ee52 ldr r2, [pc, 0x124]                                   |         
    0x0001ee54 ldr r3, [pc, 0x11c]                                   |         r3 = *(0x1ef74);
    0x0001ee56 add r2, pc                                            |         r2 = 0x3ddd4;
    0x0001ee58 ldr r3, [r2, r3]                                      |         r3 = *(0x3ddd4);
    0x0001ee5a ldr r2, [r3]                                          |         r2 = *(0x3ddd4);
    0x0001ee5c ldr r3, [sp, 0x44]                                    |         r3 = var_44h;
    0x0001ee5e eors r2, r3                                           |         r2 ^= r3;
    0x0001ee60 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001ee64 bne.w 0x1ef6c                                         |             goto label_14;
                                                                     |         }
    0x0001ee68 add sp, 0x48                                          |         
    0x0001ee6a pop {r4, r5, r6, pc}                                  |         
                                                                     |         if (r3 != 0) {
    0x0001ee90 cbnz r3, 0x1eec6                                      |             goto label_15;
                                                                     |         }
                                                                     | label_3:
    0x0001ee92 ldr r3, [r4, 0x28]                                    |         r3 = *((r4 + 0x28));
    0x0001ee94 movs r0, 0                                            |         r0 = 0;
    0x0001ee96 vldr d16, [sp, 0x18]                                  |         __asm ("vldr d16, [sp, 0x18]");
    0x0001ee9a orr r3, r3, 1                                         |         r3 |= 1;
    0x0001ee9e vstr d16, [r4, 8]                                     |         __asm ("vstr d16, [r4, 8]");
    0x0001eea2 str r3, [r4, 0x28]                                    |         *((r4 + 0x28)) = r3;
    0x0001eea4 b 0x1ee52                                             |         
                                                                     |     }
                                                                     | label_4:
    0x0001eea8 movs r2, 0                                            |     r2 = 0;
    0x0001eeaa ldr r3, [pc, 0xd0]                                    |     
    0x0001eeac movs r1, 0x5d                                         |     r1 = 0x5d;
    0x0001eeae orr r0, r0, 0x20                                      |     r0 |= 0x20;
    0x0001eeb2 str r0, [r4, 0x28]                                    |     *((r4 + 0x28)) = r0;
    0x0001eeb4 add r3, pc                                            |     r3 = 0x3de36;
    0x0001eeb6 ldr r0, [pc, 0xc8]                                    |     
    0x0001eeb8 add r0, pc                                            |     r0 = 0x3de3e;
    0x0001eeba bl 0x35d28                                            |     r0 = zbx_strdup2 ();
    0x0001eebe mov r3, r0                                            |     r3 = r0;
    0x0001eec0 movs r0, 1                                            |     r0 = 1;
    0x0001eec2 str r3, [r4, 0x20]                                    |     *((r4 + 0x20)) = r3;
    0x0001eec4 b 0x1ee52                                             |     goto label_2;
                                                                     | label_15:
    0x0001eec6 ldr r1, [pc, 0xbc]                                    |     
    0x0001eec8 mov r0, r5                                            |     r0 = r5;
    0x0001eeca add r1, pc                                            |     r1 = 0x3de54;
    0x0001eecc blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001eed0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001eed2 beq 0x1ee92                                           |         goto label_3;
                                                                     |     }
    0x0001eed4 ldr r1, [pc, 0xb0]                                    |     
    0x0001eed6 mov r0, r5                                            |     r0 = r5;
    0x0001eed8 add r1, pc                                            |     r1 = 0x3de64;
    0x0001eeda blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
                                                                     |     if (r0 != 0) {
    0x0001eede cbz r0, 0x1eefe                                       |         
    0x0001eee0 ldr r1, [pc, 0xa8]                                    |         
    0x0001eee2 mov r0, r5                                            |         r0 = r5;
    0x0001eee4 add r1, pc                                            |         r1 = 0x3de74;
    0x0001eee6 blx 0xbc58                                            |         r0 = fcn_0000bc58 ();
                                                                     |         if (r0 != 0) {
    0x0001eeea cbnz r0, 0x1ef10                                      |             goto label_16;
                                                                     |         }
    0x0001eeec ldr r3, [r4, 0x28]                                    |         r3 = *((r4 + 0x28));
    0x0001eeee vldr d16, [sp, 0x28]                                  |         __asm ("vldr d16, [sp, 0x28]");
    0x0001eef2 orr r3, r3, 1                                         |         r3 |= 1;
    0x0001eef6 vstr d16, [r4, 8]                                     |         __asm ("vstr d16, [r4, 8]");
    0x0001eefa str r3, [r4, 0x28]                                    |         *((r4 + 0x28)) = r3;
    0x0001eefc b 0x1ee52                                             |         goto label_2;
                                                                     |     }
    0x0001eefe ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001ef00 vldr d16, [sp, 0x20]                                  |     __asm ("vldr d16, [sp, 0x20]");
    0x0001ef04 orr r3, r3, 1                                         |     r3 |= 1;
    0x0001ef08 vstr d16, [r4, 8]                                     |     __asm ("vstr d16, [r4, 8]");
    0x0001ef0c str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001ef0e b 0x1ee52                                             |     goto label_2;
                                                                     | label_16:
    0x0001ef10 ldr r1, [pc, 0x7c]                                    |     
    0x0001ef12 mov r0, r5                                            |     r0 = r5;
    0x0001ef14 add r1, pc                                            |     r1 = 0x3dea8;
    0x0001ef16 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
                                                                     |     if (r0 == 0) {
    0x0001ef1a cbnz r0, 0x1ef2e                                      |         
    0x0001ef1c ldr r3, [r4, 0x28]                                    |         r3 = *((r4 + 0x28));
    0x0001ef1e vldr d16, [sp, 0x30]                                  |         __asm ("vldr d16, [sp, 0x30]");
    0x0001ef22 orr r3, r3, 2                                         |         r3 |= 2;
    0x0001ef26 vstr d16, [r4, 0x10]                                  |         __asm ("vstr d16, [r4, 0x10]");
    0x0001ef2a str r3, [r4, 0x28]                                    |         *((r4 + 0x28)) = r3;
    0x0001ef2c b 0x1ee52                                             |         goto label_2;
                                                                     |     }
    0x0001ef2e ldr r1, [pc, 0x64]                                    |     
    0x0001ef30 mov r0, r5                                            |     r0 = r5;
    0x0001ef32 add r1, pc                                            |     r1 = 0x3decc;
    0x0001ef34 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
                                                                     |     if (r0 == 0) {
                                                                     |         do {
    0x0001ef38 cbnz r0, 0x1ef4c                                      |             
    0x0001ef3a ldr r3, [r4, 0x28]                                    |             r3 = *((r4 + 0x28));
    0x0001ef3c vldr d16, [sp, 0x38]                                  |             __asm ("vldr d16, [sp, 0x38]");
    0x0001ef40 orr r3, r3, 2                                         |             r3 |= 2;
    0x0001ef44 vstr d16, [r4, 0x10]                                  |             __asm ("vstr d16, [r4, 0x10]");
    0x0001ef48 str r3, [r4, 0x28]                                    |             *((r4 + 0x28)) = r3;
    0x0001ef4a b 0x1ee52                                             |             goto label_2;
                                                                     |         }
    0x0001ef4c ldr r0, [r4, 0x28]                                    |         r0 = *((r4 + 0x28));
    0x0001ef4e mov r2, r6                                            |         r2 = r6;
    0x0001ef50 ldr r3, [pc, 0x44]                                    |         
    0x0001ef52 movs r1, 0x76                                         |         r1 = 0x76;
    0x0001ef54 orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0001ef58 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0001ef5a add r3, pc                                            |         r3 = 0x3def6;
    0x0001ef5c ldr r0, [pc, 0x3c]                                    |         
    0x0001ef5e add r0, pc                                            |         r0 = 0x3defe;
    0x0001ef60 bl 0x35d28                                            |         r0 = zbx_strdup2 ();
    0x0001ef64 mov r3, r0                                            |         r3 = r0;
    0x0001ef66 movs r0, 1                                            |         r0 = 1;
    0x0001ef68 str r3, [r4, 0x20]                                    |         *((r4 + 0x20)) = r3;
    0x0001ef6a b 0x1ee52                                             |         goto label_2;
                                                                     | label_14:
    0x0001ef6c blx 0xbe48                                            |         fcn_0000be48 ();
    0x0001ef70 ble 0x1ef38                                           |         
                                                                     |     } while (r0 <= 1);
    0x0001ef72 movs r3, r0                                           |     r3 = r0;
    0x0001ef74 lsls r4, r2, 0xc                                      |     r4 = r2 << 0xc;
    0x0001ef76 movs r0, r0                                           |     
                                                                     |     if (r0 <= r0) {
    0x0001ef78 ble 0x1eea8                                           |         goto label_4;
                                                                     |     }
    0x0001ef7a movs r3, r0                                           |     r3 = r0;
    0x0001ef7c ldrh r0, [r3, r4]                                     |     r0 = *((r3 + r4));
    0x0001ef7e movs r2, r0                                           |     r2 = r0;
    0x0001ef80 strb r4, [r5, 0x1b]                                   |     *((r5 + 0x1b)) = r4;
    0x0001ef82 movs r2, r0                                           |     r2 = r0;
    0x0001ef84 str r2, [r2, 0x54]                                    |     *((r2 + 0x54)) = r2;
    0x0001ef86 movs r2, r0                                           |     r2 = r0;
    0x0001ef88 str r4, [r6, 0x68]                                    |     *((r6 + 0x68)) = r4;
    0x0001ef8a movs r2, r0                                           |     r2 = r0;
    0x0001ef8c cmp r1, 0x98                                          |     
    0x0001ef8e movs r2, r0                                           |     r2 = r0;
    0x0001ef90 strb r4, [r0, 0x13]                                   |     *((r0 + 0x13)) = r4;
    0x0001ef92 movs r2, r0                                           |     r2 = r0;
    0x0001ef94 str r2, [r4, 0x7c]                                    |     *((r4 + 0x7c)) = r2;
    0x0001ef96 movs r2, r0                                           |     r2 = r0;
    0x0001ef98 str r6, [r2, 0x1c]                                    |     *((r2 + 0x1c)) = r6;
    0x0001ef9a movs r2, r0                                           |     r2 = r0;
    0x0001ef9c strb r6, [r0, 0x19]                                   |     *((r0 + 0x19)) = r6;
    0x0001ef9e movs r2, r0                                           |     r2 = r0;
    0x0001efa0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001efa4 sub.w sp, sp, 0x18c0                                  |     
    0x0001efa8 sub sp, 0xc                                           |     
    0x0001efaa mov r3, r1                                            |     r3 = r1;
    0x0001efac add.w r4, sp, 0x18c0                                  |     r4 += var_18c0h;
    0x0001efb0 ldr.w r2, [pc, 0x410]                                 |     
    0x0001efb4 adds r4, 4                                            |     r4 += 4;
    0x0001efb6 str r3, [sp, 0x34]                                    |     var_34h = r3;
    0x0001efb8 ldr.w r3, [pc, 0x40c]                                 |     r3 = *(0x1f3c8);
    0x0001efbc add r2, pc                                            |     r2 = 0x3e384;
    0x0001efbe ldr.w r0, [pc, 0x40c]                                 |     r0 = fcn.00027630;
    0x0001efc2 ldr.w r1, [pc, 0x40c]                                 |     r1 = *(0x0001f3d0);
    0x0001efc6 ldr r3, [r2, r3]                                      |     
    0x0001efc8 add r0, pc                                            |     r0 += pc;
    0x0001efca add r1, pc                                            |     r1 += pc;
    0x0001efcc ldr r3, [r3]                                          |     r3 = *(0x3e384);
    0x0001efce str r3, [r4]                                          |     *(r4) = r3;
    0x0001efd0 mov.w r3, 0                                           |     r3 = 0;
    0x0001efd4 blx 0xc39c                                            |     fcn_0000c39c ();
    0x0001efd8 ldr r3, [pc, 0x3f8]                                   |     
    0x0001efda mov sl, r0                                            |     sl = r0;
    0x0001efdc add r3, pc                                            |     r3 = 0x3e3b4;
    0x0001efde str r3, [sp, 0x18]                                    |     var_18h = r3;
    0x0001efe0 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001efe2 beq.w 0x1f372                                         |         goto label_17;
                                                                     |     }
    0x0001efe6 add r3, sp, 0x94                                      |     r3 += var_94h;
    0x0001efe8 add.w fp, sp, 0x10c0                                  |     
    0x0001efec mov r0, r3                                            |     r0 = r3;
    0x0001efee str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0001eff0 bl 0x29410                                            |     zbx_vector_ptr_create ();
    0x0001eff4 ldr r2, [pc, 0x3e0]                                   |     
    0x0001eff6 add r3, sp, 0x68                                      |     r3 += var_68h;
    0x0001eff8 add.w fp, fp, 4                                       |     
    0x0001effc str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0001effe add r3, sp, 0x50                                      |     r3 += var_50h;
    0x0001f000 add r2, pc                                            |     r2 = 0x3e3dc;
    0x0001f002 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0001f004 str r2, [sp, 0x28]                                    |     var_28h = r2;
                                                                     |     do {
                                                                     | label_5:
    0x0001f006 mov r2, sl                                            |         r2 = sl;
    0x0001f008 mov.w r1, 0x800                                       |         r1 = case.0x3207a.11;
    0x0001f00c mov r0, fp                                            |         r0 = fp;
    0x0001f00e blx 0xbd2c                                            |         r0 = ferror (r0);
    0x0001f012 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f014 beq 0x1f098                                           |             goto label_18;
                                                                     |         }
                                                                     | label_6:
    0x0001f016 movs r1, 0x20                                         |         r1 = 0x20;
    0x0001f018 mov r0, fp                                            |         r0 = fp;
    0x0001f01a blx 0xc138                                            |         r0 = fcn_0000c138 ();
    0x0001f01e cmp r0, 0                                             |         
    0x0001f020 beq 0x1f006                                           |         
                                                                     |     } while (r0 == 0);
    0x0001f022 adds r4, r0, 1                                        |     r4 += var_1h;
    0x0001f024 movs r1, 0x20                                         |     r1 = 0x20;
    0x0001f026 mov r0, r4                                            |     r0 = r4;
    0x0001f028 blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0001f02c mov r5, r0                                            |     r5 = r0;
    0x0001f02e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f030 beq 0x1f006                                           |         goto label_5;
                                                                     |     }
    0x0001f032 mov.w r8, 0                                           |     r8 = 0;
    0x0001f036 movs r1, 0x20                                         |     r1 = 0x20;
    0x0001f038 strb r8, [r5], 1                                      |     *(r5) = r8;
                                                                     |     r5++;
    0x0001f03c mov r0, r5                                            |     r0 = r5;
    0x0001f03e blx 0xc138                                            |     fcn_0000c138 ();
    0x0001f040 ldrd r2, r8, [ip], -0                                 |     __asm ("ldrd r2, r8, [ip], -0");
                                                                     |     if (r1 == 0x20) {
    0x0001f044 beq 0x1f006                                           |         goto label_5;
                                                                     |     }
    0x0001f046 add.w sb, sp, 0x88                                    |     sb += var_88h;
    0x0001f04a add r6, sp, 0x48                                      |     r6 += var_48h;
    0x0001f04c sub.w r3, sb, 0x10                                    |     r3 -= var_10h_2;
    0x0001f050 strb.w r8, [r0]                                       |     *(r0) = r8;
    0x0001f054 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0001f056 sub.w r7, r6, 0xc                                     |     r7 -= var_3ch;
    0x0001f05a str r3, [sp, 4]                                       |     var_4h = r3;
    0x0001f05c sub.w r3, sb, 0x18                                    |     r3 -= var_18h_2;
    0x0001f060 str r3, [sp]                                          |     *(sp) = r3;
    0x0001f062 mov r2, r6                                            |     r2 = r6;
    0x0001f064 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0001f066 sub.w r1, r6, 8                                       |     r1 -= var_8h_2;
    0x0001f06a mov r0, r4                                            |     r0 = r4;
    0x0001f06c str r7, [sp, 8]                                       |     var_8h = r7;
    0x0001f06e bl 0x1ec50                                            |     fcn_0001ec50 (r0, r1, r2, r3, r4, r5);
    0x0001f070 stc2l p0, c9, [pc, 0x20]!                             |     __asm ("stc2l p0, c9, case.0x3207a.11!");
    0x0001f074 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f076 beq.w 0x1f2a0                                         |         goto label_19;
                                                                     |     }
    0x0001f07a ldr r0, [r7]                                          |     r0 = *(r7);
    0x0001f07c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f07e beq 0x1f006                                           |         goto label_5;
                                                                     |     }
    0x0001f080 blx 0xbd14                                            |     gai_strerror ();
    0x0001f084 mov r2, sl                                            |     r2 = sl;
    0x0001f086 mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001f08a mov r0, fp                                            |     r0 = fp;
    0x0001f08c str.w r8, [r7]                                        |     __asm ("str.w r8, [r7]");
    0x0001f090 blx 0xbd2c                                            |     r0 = ferror (r0);
    0x0001f094 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f096 bne 0x1f016                                           |         goto label_6;
                                                                     |     }
                                                                     | label_18:
    0x0001f098 mov r0, sl                                            |     r0 = sl;
    0x0001f09a blx 0xc248                                            |     munmap (r0, r1);
    0x0001f09e ldr r1, [pc, 0x33c]                                   |     
    0x0001f0a0 ldr r0, [pc, 0x33c]                                   |     
    0x0001f0a2 add r1, pc                                            |     r1 = 0x3e484;
    0x0001f0a4 add r0, pc                                            |     r0 = 0x3e488;
    0x0001f0a6 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001f0aa mov r6, r0                                            |     r6 = r0;
    0x0001f0ac cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f0ae beq.w 0x1f39c                                         |         goto label_20;
                                                                     |     }
    0x0001f0b2 add.w sl, sp, 0xac                                    |     sl += var_ach;
    0x0001f0b6 mov.w r1, 0x1000                                      |     r1 = case.0x3207a.11;
    0x0001f0ba mov r0, sl                                            |     r0 = sl;
    0x0001f0bc bl 0x2ff78                                            |     zbx_json_initarray ();
    0x0001f0c0 ldr r3, [pc, 0x320]                                   |     
    0x0001f0c2 add r3, pc                                            |     r3 = 0x3e4aa;
    0x0001f0c4 str r3, [sp, 0x28]                                    |     var_28h = r3;
    0x0001f0c6 ldr r3, [pc, 0x320]                                   |     
    0x0001f0c8 add r3, pc                                            |     r3 = 0x3e4b6;
    0x0001f0ca str r3, [sp, 0x2c]                                    |     var_2ch = r3;
    0x0001f0cc ldr r3, [pc, 0x31c]                                   |     
    0x0001f0ce add r3, pc                                            |     r3 = 0x3e4be;
    0x0001f0d0 str r3, [sp, 0x30]                                    |     var_30h = r3;
    0x0001f0d2 addw r3, sp, 0x8c8                                    |     __asm ("addw r3, var_8c8h");
    0x0001f0d6 str r3, [sp, 0x24]                                    |     var_24h = r3;
                                                                     |     do {
                                                                     | label_7:
    0x0001f0d8 mov r2, r6                                            |         r2 = r6;
    0x0001f0da mov.w r1, 0x800                                       |         r1 = case.0x3207a.11;
    0x0001f0de mov r0, fp                                            |         r0 = fp;
    0x0001f0e0 blx 0xbd2c                                            |         r0 = ferror (r0);
    0x0001f0e4 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001f0e6 beq.w 0x1f22e                                         |             goto label_21;
                                                                     |         }
                                                                     | label_8:
    0x0001f0ea movs r1, 0x20                                         |         r1 = 0x20;
    0x0001f0ec mov r0, fp                                            |         r0 = fp;
    0x0001f0ee blx 0xc138                                            |         r0 = fcn_0000c138 ();
    0x0001f0f2 cmp r0, 0                                             |         
    0x0001f0f4 beq 0x1f0d8                                           |         
                                                                     |     } while (r0 == 0);
    0x0001f0f6 adds r4, r0, 1                                        |     r4 += var_1h;
    0x0001f0f8 movs r1, 0x20                                         |     r1 = 0x20;
    0x0001f0fa mov r0, r4                                            |     r0 = r4;
    0x0001f0fc blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0001f100 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f102 beq 0x1f0d8                                           |         goto label_7;
                                                                     |     }
    0x0001f104 ldr r3, [pc, 0x2e8]                                   |     r3 = *(0x1f3f0);
    0x0001f106 mov r1, r4                                            |     r1 = r4;
    0x0001f108 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001f10a movs r4, 0                                            |     r4 = 0;
    0x0001f10c strb r4, [r0]                                         |     *(r0) = r4;
    0x0001f10e ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0001f110 ldr r2, [r2, r3]                                      |     r2 = *((r2 + r3));
    0x0001f112 bl 0x29734                                            |     r0 = zbx_vector_ptr_search ();
    0x0001f116 adds r3, r0, 1                                        |     r3 = r0 + 1;
                                                                     |     if (r3 == r0) {
    0x0001f118 beq 0x1f0d8                                           |         goto label_7;
                                                                     |     }
    0x0001f11a ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0001f11c mov r1, r4                                            |     r1 = r4;
    0x0001f11e ldr r5, [pc, 0x2d4]                                   |     
    0x0001f120 ldr.w r8, [pc, 0x2d4]                                 |     r8 = *(0x0001f3f8);
    0x0001f124 subw r3, r3, 0x834                                    |     __asm ("subw r3, r3, case.0x3207a.11");
    0x0001f128 ldr r7, [pc, 0x2d0]                                   |     
    0x0001f12a ldr r3, [r3]                                          |     r3 = *(r3);
    0x0001f12c add r5, pc                                            |     r5 = 0x3e526;
    0x0001f12e add r8, pc                                            |     r8 += pc;
    0x0001f130 add r7, pc                                            |     r7 = 0x3e530;
    0x0001f132 ldr.w r4, [r3, r0, lsl 2]                             |     offset_0 = r0 << 2;
                                                                     |     r4 = *((r3 + offset_0));
    0x0001f136 mov r0, sl                                            |     r0 = sl;
    0x0001f138 bl 0x300ac                                            |     zbx_json_addobject ();
    0x0001f13c ldr r1, [sp, 0x28]                                    |     r1 = var_28h;
    0x0001f13e movs r3, 1                                            |     r3 = 1;
    0x0001f140 mov r2, r4                                            |     r2 = r4;
    0x0001f142 mov r0, sl                                            |     r0 = sl;
    0x0001f144 bl 0x300b4                                            |     zbx_json_addstring ();
    0x0001f148 add.w r2, r4, 0x800                                   |     r2 = r4 + case.0x3207a.11;
    0x0001f14c movs r3, 1                                            |     r3 = 1;
    0x0001f14e ldr r1, [sp, 0x2c]                                    |     r1 = var_2ch;
    0x0001f150 mov r0, sl                                            |     r0 = sl;
    0x0001f152 add.w sb, r4, 0x1000                                  |     sb = r4 + case.0x3207a.11;
    0x0001f156 bl 0x300b4                                            |     zbx_json_addstring ();
    0x0001f15a ldr r1, [sp, 0x30]                                    |     r1 = var_30h;
    0x0001f15c mov r0, sl                                            |     r0 = sl;
    0x0001f15e bl 0x300ac                                            |     zbx_json_addobject ();
    0x0001f162 ldrd r2, r3, [sb]                                     |     __asm ("ldrd r2, r3, [sb]");
    0x0001f166 mov r1, r5                                            |     r1 = r5;
    0x0001f168 mov r0, sl                                            |     r0 = sl;
    0x0001f16a str r5, [sp, 0x1c]                                    |     var_1ch = r5;
    0x0001f16c bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f170 add.w r3, r4, 0x1040                                  |     r3 = r4 + case.0x3207a.11;
    0x0001f174 mov r1, r8                                            |     r1 = r8;
    0x0001f176 mov r0, sl                                            |     r0 = sl;
    0x0001f178 str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x0001f17a ldrd r2, r3, [sb, 8]                                  |     __asm ("ldrd r2, r3, [sb, 8]");
    0x0001f17e add.w r5, r4, 0x1020                                  |     r5 = r4 + case.0x3207a.11;
    0x0001f182 str.w r8, [sp, 0x20]                                  |     __asm ("str.w r8, [var_20h]");
    0x0001f186 add.w r8, r5, 0x10                                    |     r8 = r5 + 0x10;
    0x0001f18a bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f18e ldrd r2, r3, [sb, 0x10]                               |     __asm ("ldrd r2, r3, [sb, 0x10]");
    0x0001f192 mov r0, sl                                            |     r0 = sl;
    0x0001f194 ldr.w sb, [pc, 0x268]                                 |     
    0x0001f198 add.w r4, r4, 0x1040                                  |     r4 += case.0x3207a.11;
    0x0001f19c add sb, pc                                            |     sb = 0x3e5a0;
    0x0001f19e mov r1, sb                                            |     r1 = sb;
    0x0001f1a0 bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f1a4 vldr d0, [r5, -8]                                     |     __asm ("vldr d0, [r5, -8]");
    0x0001f1a8 mov r1, r7                                            |     r1 = r7;
    0x0001f1aa mov r0, sl                                            |     r0 = sl;
    0x0001f1ac bl 0x30320                                            |     zbx_json_addfloat ();
    0x0001f1b0 mov r0, sl                                            |     r0 = sl;
    0x0001f1b2 vldr d0, [r5]                                         |     __asm ("vldr d0, [r5]");
    0x0001f1b6 ldr r5, [pc, 0x24c]                                   |     
    0x0001f1b8 add r5, pc                                            |     r5 = 0x3e5c2;
    0x0001f1ba mov r1, r5                                            |     r1 = r5;
    0x0001f1bc bl 0x30320                                            |     zbx_json_addfloat ();
    0x0001f1c0 mov r0, sl                                            |     r0 = sl;
    0x0001f1c2 bl 0x30384                                            |     zbx_json_close ();
    0x0001f1c6 ldr r1, [pc, 0x240]                                   |     
    0x0001f1c8 mov r0, sl                                            |     r0 = sl;
    0x0001f1ca add r1, pc                                            |     r1 = 0x3e5d8;
    0x0001f1cc bl 0x300ac                                            |     zbx_json_addobject ();
    0x0001f1d0 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0001f1d2 mov r0, sl                                            |     r0 = sl;
    0x0001f1d4 ldrd r2, r3, [r8, -0x8]                               |     __asm ("ldrd r2, r3, [r8, -0x8]");
    0x0001f1d8 bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f1dc ldrd r2, r3, [r8]                                     |     __asm ("ldrd r2, r3, [r8]");
    0x0001f1e0 mov r0, sl                                            |     r0 = sl;
    0x0001f1e2 ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0001f1e4 bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f1e8 ldr r3, [sp, 0x14]                                    |     r3 = var_14h;
    0x0001f1ea mov r1, sb                                            |     r1 = sb;
    0x0001f1ec mov r0, sl                                            |     r0 = sl;
    0x0001f1ee ldrd r2, r3, [r3, -0x8]                               |     __asm ("ldrd r2, r3, [r3, -0x8]");
    0x0001f1f2 bl 0x30258                                            |     zbx_json_adduint64 ();
    0x0001f1f4 ldrh sb, [r1], 5                                      |     sb = *(r1);
                                                                     |     r1 += 5;
    0x0001f1f8 mov r1, r7                                            |     r1 = r7;
    0x0001f1fa mov r0, sl                                            |     r0 = sl;
    0x0001f1fc vldr d0, [r3]                                         |     __asm ("vldr d0, [r3]");
    0x0001f200 bl 0x30320                                            |     zbx_json_addfloat ();
    0x0001f204 mov r1, r5                                            |     r1 = r5;
    0x0001f206 mov r0, sl                                            |     r0 = sl;
    0x0001f208 vldr d0, [r4, 8]                                      |     __asm ("vldr d0, [r4, 8]");
    0x0001f20c bl 0x30320                                            |     zbx_json_addfloat ();
    0x0001f210 mov r0, sl                                            |     r0 = sl;
    0x0001f212 bl 0x30384                                            |     zbx_json_close ();
    0x0001f216 mov r0, sl                                            |     r0 = sl;
    0x0001f218 bl 0x30384                                            |     zbx_json_close ();
    0x0001f21c mov r2, r6                                            |     r2 = r6;
    0x0001f21e mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001f222 mov r0, fp                                            |     r0 = fp;
    0x0001f224 blx 0xbd2c                                            |     r0 = ferror (r0);
    0x0001f228 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f22a bne.w 0x1f0ea                                         |         goto label_8;
                                                                     |     }
                                                                     | label_21:
    0x0001f22e mov r4, r0                                            |     r4 = r0;
    0x0001f230 mov r0, r6                                            |     r0 = r6;
    0x0001f232 blx 0xc248                                            |     munmap (r0, r1);
    0x0001f236 mov r0, sl                                            |     r0 = sl;
    0x0001f238 bl 0x30384                                            |     zbx_json_close ();
    0x0001f23c ldr r5, [sp, 0x34]                                    |     r5 = var_34h;
    0x0001f23e mov.w r1, 0x12e                                       |     r1 = case.0x3207a.11;
    0x0001f242 ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0001f244 ldr r0, [pc, 0x1c4]                                   |     
    0x0001f246 ldr r2, [r5, 0x28]                                    |     r2 = *((r5 + 0x28));
    0x0001f248 subw r3, r3, 0x81c                                    |     __asm ("subw r3, r3, case.0x3207a.11");
    0x0001f24c ldr r3, [r3]                                          |     r3 = *(r3);
    0x0001f24e add r0, pc                                            |     r0 = 0x3e65e;
    0x0001f250 orr r2, r2, 4                                         |     r2 |= 4;
    0x0001f254 str r2, [r5, 0x28]                                    |     *((r5 + 0x28)) = r2;
    0x0001f256 mov r2, r4                                            |     r2 = r4;
    0x0001f258 bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001f25c str r0, [r5, 0x18]                                    |     *((r5 + 0x18)) = r0;
    0x0001f25e mov r0, sl                                            |     r0 = sl;
    0x0001f260 bl 0x3002c                                            |     zbx_json_free ();
                                                                     | label_10:
    0x0001f264 ldr r5, [sp, 0x10]                                    |     r5 = var_10h;
    0x0001f266 ldr r3, [pc, 0x1a8]                                   |     r3 = *(0x1f412);
    0x0001f268 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0001f26a mov r0, r5                                            |     r0 = r5;
    0x0001f26c ldr r1, [r2, r3]                                      |     r1 = *((r2 + r3));
    0x0001f26e bl 0x29844                                            |     zbx_vector_ptr_clear_ext ();
    0x0001f270 invalid                                               |     
    0x0001f274 bl 0x29460                                            |     zbx_vector_ptr_destroy ();
                                                                     | label_9:
    0x0001f278 ldr r2, [pc, 0x198]                                   |     
    0x0001f27a add.w r1, sp, 0x18c0                                  |     r1 += var_18c0h;
    0x0001f27e ldr r3, [pc, 0x148]                                   |     r3 = *(0x1f3ca);
    0x0001f280 adds r1, 4                                            |     r1 += 4;
    0x0001f282 add r2, pc                                            |     r2 = 0x3e69a;
    0x0001f284 ldr r3, [r2, r3]                                      |     r3 = *(0x3e69a);
    0x0001f286 ldr r2, [r3]                                          |     r2 = *(0x3e69a);
    0x0001f288 ldr r3, [r1]                                          |     r3 = *(r1);
    0x0001f28a eors r2, r3                                           |     r2 ^= r3;
    0x0001f28c mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x0001f290 bne.w 0x1f398                                         |         goto label_22;
                                                                     |     }
    0x0001f294 mov r0, r4                                            |     r0 = r4;
    0x0001f296 add.w sp, sp, 0x18c0                                  |     
    0x0001f29a add sp, 0xc                                           |     
    0x0001f29c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_19:
    0x0001f2a0 ldr r2, [sp, 0x24]                                    |     r2 = var_24h;
    0x0001f2a2 mov r0, r4                                            |     r0 = r4;
    0x0001f2a4 ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x0001f2a6 str r7, [sp, 0xc]                                     |     var_ch = r7;
    0x0001f2a8 sub.w r8, r2, 0x10                                    |     r8 = r2 - 0x10;
    0x0001f2ac strd sb, r3, [sp, 4]                                  |     __asm ("strd sb, r3, [var_4h]");
    0x0001f2b0 sub.w r3, sb, 8                                       |     r3 -= var_8h_3;
    0x0001f2b4 str r3, [sp]                                          |     *(sp) = r3;
    0x0001f2b6 mov r1, r8                                            |     r1 = r8;
    0x0001f2b8 mov r3, r2                                            |     r3 = r2;
    0x0001f2ba subs r2, 8                                            |     r2 -= 8;
    0x0001f2bc bl 0x207d0                                            |     r0 = get_fs_inode_stat ();
    0x0001f2c0 mov r2, r0                                            |     r2 = r0;
                                                                     |     if (r0 == 0) {
    0x0001f2c2 cbz r0, 0x1f2d6                                       |         goto label_23;
                                                                     |     }
    0x0001f2c4 ldr r0, [sp, 0x3c]                                    |     r0 = var_3ch;
    0x0001f2c6 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f2c8 beq.w 0x1f006                                         |         goto label_5;
                                                                     |     }
    0x0001f2cc blx 0xbd14                                            |     gai_strerror ();
    0x0001f2d0 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0001f2d2 str r3, [sp, 0x3c]                                    |     var_3ch = r3;
    0x0001f2d4 b 0x1f006                                             |     goto label_5;
                                                                     | label_23:
    0x0001f2d6 ldr r0, [pc, 0x140]                                   |     
    0x0001f2d8 movw r3, 0x1050                                       |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001f2dc movs r1, 0xec                                         |     r1 = 0xec;
    0x0001f2de add r0, pc                                            |     r0 = 0x3e6fc;
    0x0001f2e0 bl 0x35c28                                            |     zbx_malloc2 ();
    0x0001f2e4 mov r1, r4                                            |     r1 = r4;
    0x0001f2e6 mov.w r2, 0x800                                       |     r2 = case.0x3207a.11;
    0x0001f2ea mov r7, r0                                            |     r7 = r0;
    0x0001f2ec bl 0x394f0                                            |     zbx_strlcpy ();
    0x0001f2f0 mov.w r2, 0x800                                       |     r2 = case.0x3207a.11;
    0x0001f2f4 mov r1, r5                                            |     r1 = r5;
    0x0001f2f6 adds r0, r7, r2                                       |     r0 = r7 + r2;
    0x0001f2f8 add.w r4, r7, 0x1040                                  |     r4 = r7 + case.0x3207a.11;
    0x0001f2fc bl 0x394f0                                            |     zbx_strlcpy ();
    0x0001f300 ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0001f302 add.w r2, r7, 0x1000                                  |     r2 = r7 + case.0x3207a.11;
    0x0001f306 add.w ip, r7, 0x1020                                  |     
    0x0001f30a vldr d18, [r6, -8]                                    |     __asm ("vldr d18, [r6, -8]");
    0x0001f30e add.w lr, r7, 0x1000                                  |     lr = r7 + case.0x3207a.11;
    0x0001f312 mov r1, r7                                            |     r1 = r7;
    0x0001f314 vldr d17, [r3, -8]                                    |     __asm ("vldr d17, [r3, -8]");
    0x0001f318 add.w r3, r7, 0x1020                                  |     r3 = r7 + case.0x3207a.11;
    0x0001f31c ldrd r6, r7, [r6]                                     |     __asm ("ldrd r6, r7, [r6]");
    0x0001f320 adds r2, 0x10                                         |     r2 += 0x10;
    0x0001f322 vldr d16, [r8, -8]                                    |     __asm ("vldr d16, [r8, -8]");
    0x0001f326 adds r3, 0x10                                         |     r3 += 0x10;
    0x0001f328 vstr d18, [lr]                                        |     __asm ("vstr d18, [lr]");
    0x0001f32c strd r6, r7, [r2, -0x8]                               |     __asm ("strd r6, r7, [r2, -0x8]");
    0x0001f330 vstr d16, [r2]                                        |     __asm ("vstr d16, [r2]");
    0x0001f334 ldrd r6, r7, [sb, -0x10]                              |     __asm ("ldrd r6, r7, [var_10h_2]");
    0x0001f338 ldr r2, [sp, 0x24]                                    |     r2 = var_24h;
    0x0001f33a vstr d17, [ip, -8]                                    |     __asm ("vstr d17, [ip, -8]");
    0x0001f33e strd r6, r7, [ip]                                     |     __asm ("strd r6, r7, [ip]");
    0x0001f342 ldrd r6, r7, [r2, -0x10]                              |     __asm ("ldrd r6, r7, [r2, -0x10]");
    0x0001f346 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0001f348 strd r6, r7, [r3, -0x8]                               |     __asm ("strd r6, r7, [r3, -0x8]");
    0x0001f34c ldrd r6, r7, [r2]                                     |     __asm ("ldrd r6, r7, [r2]");
    0x0001f350 strd r6, r7, [r4, -0x8]                               |     __asm ("strd r6, r7, [r4, -0x8]");
    0x0001f354 ldrd r6, r7, [r2, -0x8]                               |     __asm ("ldrd r6, r7, [r2, -0x8]");
    0x0001f358 strd r6, r7, [r3]                                     |     __asm ("strd r6, r7, [r3]");
    0x0001f35c ldrd r2, r3, [sb, -0x8]                               |     __asm ("ldrd r2, r3, [sb, -0x8]");
    0x0001f360 strd r2, r3, [r4]                                     |     __asm ("strd r2, r3, [r4]");
    0x0001f364 ldrd r2, r3, [sb]                                     |     __asm ("ldrd r2, r3, [sb]");
    0x0001f368 strd r2, r3, [r4, 8]                                  |     __asm ("strd r2, r3, [r4, 8]");
    0x0001f36c bl 0x29480                                            |     zbx_vector_ptr_append ();
    0x0001f370 b 0x1f006                                             |     goto label_5;
                                                                     | label_17:
    0x0001f372 ldr r5, [sp, 0x34]                                    |     r5 = var_34h;
    0x0001f374 movs r4, 1                                            |     r4 = 1;
    0x0001f376 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0001f378 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001f37c str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0001f37e blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001f382 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001f384 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001f388 ldr r1, [pc, 0x90]                                    |     
    0x0001f38a mov r2, r0                                            |     r2 = r0;
    0x0001f38c mov r0, sl                                            |     r0 = sl;
    0x0001f38e add r1, pc                                            |     r1 = 0x3e7ae;
    0x0001f390 bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001f394 str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0001f396 b 0x1f278                                             |     goto label_9;
                                                                     | label_22:
    0x0001f398 blx 0xbe48                                            |     fcn_0000be48 ();
                                                                     | label_20:
    0x0001f39c ldr r5, [sp, 0x34]                                    |     r5 = var_34h;
    0x0001f39e movs r4, 1                                            |     r4 = 1;
    0x0001f3a0 ldr r3, [r5, 0x28]                                    |     r3 = *((r5 + 0x28));
    0x0001f3a2 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001f3a6 str r3, [r5, 0x28]                                    |     *((r5 + 0x28)) = r3;
    0x0001f3a8 blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001f3ac ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001f3ae bl 0x26fdc                                            |     zbx_strerror ();
    0x0001f3b2 ldr r1, [pc, 0x6c]                                    |     
    0x0001f3b4 mov r2, r0                                            |     r2 = r0;
    0x0001f3b6 mov r0, r6                                            |     r0 = r6;
    0x0001f3b8 add r1, pc                                            |     r1 = 0x3e7de;
    0x0001f3ba bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001f3be str r0, [r5, 0x20]                                    |     *((r5 + 0x20)) = r0;
    0x0001f3c0 b 0x1f264                                             |     goto label_10;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x20d20 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.SYSTEM_HOSTNAME ()           | void SYSTEM_HOSTNAME (int16_t arg2) {
                                             |     int16_t var_4h;
                                             |     int32_t var_0h;
                                             |     int16_t var_45h;
                                             |     int16_t var_18ch;
                                             |     r1 = arg2;
    0x00020d20 ldr r2, [pc, 0x7c]            |     
    0x00020d22 ldr r3, [pc, 0x80]            |     r3 = *(0x20da6);
    0x00020d24 push {r4, lr}                 |     
    0x00020d26 sub sp, 0x190                 |     
    0x00020d28 add r2, pc                    |     r2 = 0x41acc;
    0x00020d2a add r0, sp, 4                 |     r0 += var_4h;
    0x00020d2c mov r4, r1                    |     r4 = r1;
    0x00020d2e ldr r3, [r2, r3]              |     
    0x00020d30 ldr r3, [r3]                  |     r3 = *(0x41acc);
    0x00020d32 str r3, [sp, 0x18c]           |     var_18ch = r3;
    0x00020d34 mov.w r3, 0                   |     r3 = 0;
    0x00020d38 blx 0xbe0c                    |     fcn_0000be0c ();
    0x00020d3c adds r0, 1                    |     r0++;
                                             |     if (r0 == 1) {
    0x00020d3e beq 0x20d76                   |         goto label_0;
                                             |     }
    0x00020d40 ldr r1, [r4, 0x28]            |     r1 = *((r4 + 0x28));
    0x00020d42 add.w r3, sp, 0x45            |     r3 += var_45h;
    0x00020d46 ldr r0, [pc, 0x60]            |     
    0x00020d48 movs r2, 0                    |     r2 = 0;
    0x00020d4a orr r1, r1, 4                 |     r1 |= 4;
    0x00020d4e str r1, [r4, 0x28]            |     *((r4 + 0x28)) = r1;
    0x00020d50 add r0, pc                    |     r0 = 0x41afe;
    0x00020d52 movs r1, 0x2b                 |     r1 = 0x2b;
    0x00020d54 bl 0x35d28                    |     zbx_strdup2 ();
    0x00020d58 movs r3, 0                    |     r3 = 0;
    0x00020d5a str r0, [r4, 0x18]            |     *((r4 + 0x18)) = r0;
                                             |     do {
    0x00020d5c ldr r1, [pc, 0x4c]            |         
    0x00020d5e ldr r2, [pc, 0x44]            |         r2 = *(0x20da6);
    0x00020d60 add r1, pc                    |         r1 = 0x41b10;
    0x00020d62 ldr r2, [r1, r2]              |         r2 = *(0x41b10);
    0x00020d64 ldr r1, [r2]                  |         r1 = *(0x41b10);
    0x00020d66 ldr r2, [sp, 0x18c]           |         r2 = var_18ch;
    0x00020d68 eors r1, r2                   |         r1 ^= r2;
    0x00020d6a mov.w r2, 0                   |         r2 = 0;
    0x00020d6c lsls r0, r0, 8                |         r0 <<= 8;
                                             |         if (r0 != r0) {
    0x00020d6e bne 0x20d9a                   |             goto label_1;
                                             |         }
    0x00020d70 mov r0, r3                    |         r0 = r3;
    0x00020d72 add sp, 0x190                 |         
    0x00020d74 pop {r4, pc}                  |         
                                             | label_0:
    0x00020d76 ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x00020d78 orr r3, r3, 0x20              |         r3 |= 0x20;
    0x00020d7c str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x00020d7e blx 0xc15c                    |         r0 = fcn_0000c15c ();
    0x00020d82 ldr r0, [r0]                  |         r0 = *(r0);
    0x00020d84 bl 0x26fdc                    |         zbx_strerror ();
    0x00020d88 ldr r1, [pc, 0x24]            |         
    0x00020d8a mov r2, r0                    |         r2 = r0;
    0x00020d8c movs r0, 0                    |         r0 = 0;
    0x00020d8e add r1, pc                    |         r1 = 0x41b42;
    0x00020d90 bl 0x396b0                    |         zbx_dsprintf ()
    0x00020d94 movs r3, 1                    |         r3 = 1;
    0x00020d96 str r0, [r4, 0x20]            |         *((r4 + 0x20)) = r0;
    0x00020d98 b 0x20d5c                     |         
                                             |     } while (1);
                                             | label_1:
    0x00020d9a blx 0xbe48                    |     fcn_0000be48 ();
    0x00020d9e nop                           |     
    0x00020da0 bkpt 0xc4                     |     __asm ("bkpt 0xc4");
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x20424 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.SYSTEM_HW_MACADDR ()                             | void SYSTEM_HW_MACADDR (int16_t arg_18h, int16_t arg_20h, int16_t arg_28h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch_3;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_34h;
                                                                 |     int32_t var_20h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int32_t var_18h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_854h;
                                                                 |     int16_t var_1040h;
                                                                 |     int32_t var_0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00020424 svcmi 0xf0e92d                                    |     __asm ("svcmi case.0x3207a.11");
    0x00020428 sub.w sp, sp, 0x1040                              |     
    0x0002042c ldr r5, [pc, 0x350]                               |     
    0x0002042e sub sp, 0x1c                                      |     
    0x00020430 add.w r6, sp, 0x1040                              |     r6 += var_1040h;
    0x00020434 mov fp, r1                                        |     
    0x00020436 ldr r4, [pc, 0x34c]                               |     
    0x00020438 adds r6, 0x14                                     |     r6 += 0x14;
    0x0002043a ldr r2, [pc, 0x34c]                               |     r2 = *(0x2078a);
    0x0002043c add r5, pc                                        |     r5 = 0x40bc0;
    0x0002043e ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x00020440 add r4, pc                                        |     r4 = 0x40bca;
    0x00020442 str r5, [sp, 0x1c]                                |     var_1ch = r5;
    0x00020444 ldr r2, [r4, r2]                                  |     
    0x00020446 cmp r3, 2                                         |     
    0x00020448 ldr r2, [r2]                                      |     r2 = *(0x40bca);
    0x0002044a str r2, [r6]                                      |     *(r6) = r2;
    0x0002044c mov.w r2, 0                                       |     r2 = 0;
                                                                 |     if (r3 > 2) {
    0x00020450 bgt.w 0x205e6                                     |         goto label_8;
                                                                 |     }
    0x00020454 cmp r3, 0                                         |     
    0x00020456 itet gt                                           |     
                                                                 |     if (r3 <= 0) {
    0x00020458 ldrgt r2, [r0, 8]                                 |         r2 = *((r0 + 8));
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x0002045a movle r8, 0                                       |         r8 = 0;
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x0002045e ldr.w r8, [r2]                                    |         r8 = *(r2);
                                                                 |     }
    0x00020462 cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00020464 bne 0x20474                                       |         
    0x00020466 ldr r3, [r0, 8]                                   |         r3 = *((r0 + 8));
    0x00020468 ldr r4, [r3, 4]                                   |         r4 = *((r3 + 4));
                                                                 |         if (r4 == 0) {
    0x0002046a cbz r4, 0x20474                                   |             goto label_3;
                                                                 |         }
    0x0002046c ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0002046e cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00020470 bne.w 0x2060c                                     |             goto label_9;
                                                                 |         }
                                                                 |     }
                                                                 | label_3:
    0x00020474 movs r3, 1                                        |     r3 = 1;
    0x00020476 str r3, [sp, 0x18]                                |     var_b8h = r3;
                                                                 | label_4:
    0x00020478 movs r1, 2                                        |     r1 = 2;
    0x0002047a movs r2, 0                                        |     r2 = 0;
    0x0002047c mov r0, r1                                        |     r0 = r1;
    0x0002047e blx 0xc400                                        |     r0 = fcn_0000c400 ();
    0x00020482 adds r1, r0, 1                                    |     r1 = r0 + 1;
    0x00020484 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r1 == r0) {
    0x00020486 beq.w 0x20688                                     |         goto label_10;
                                                                 |     }
    0x0002048a add r4, sp, 0x58                                  |     r4 += var_58h;
    0x0002048c mov.w r3, 0x800                                   |     r3 = case.0x3207a.11;
    0x00020490 str r3, [r4, -0x24]                               |     var_34h = r3;
    0x00020494 add r2, sp, 0x34                                  |     r2 += var_34h;
    0x00020496 addw r3, sp, 0x854                                |     __asm ("addw r3, var_854h");
    0x0002049a movw r1, 0x8912                                   |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002049e str r3, [sp, 0x20]                                |     var_20h_2 = r3;
    0x000204a0 str r3, [r4, -0x20]                               |     var_20h = r3;
    0x000204a4 blx 0xbf90                                        |     waitpid ();
    0x000204a8 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x000204aa beq.w 0x20656                                     |         goto label_11;
                                                                 |     }
    0x000204ae sub.w sb, r4, 0x1c                                |     sb -= var_1ch_2;
    0x000204b2 ldr r6, [r4, -0x20]                               |     r6 = var_20h;
    0x000204b6 mov r0, sb                                        |     r0 = sb;
    0x000204b8 bl 0x28fb4                                        |     zbx_vector_str_create ();
    0x000204bc movs r1, 8                                        |     r1 = 8;
    0x000204be mov r0, sb                                        |     r0 = sb;
    0x000204c0 bl 0x293c4                                        |     zbx_vector_str_reserve ();
    0x000204c4 ldr r3, [r4, -0x24]                               |     r3 = var_34h;
    0x000204c8 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x000204ca subs r7, r3, 1                                    |     r7 = r3 - 1;
                                                                 |     if (r3 == 0) {
    0x000204cc cbz r3, 0x2050c                                   |         goto label_12;
                                                                 |     }
    0x000204ce ldr r3, [pc, 0x2bc]                               |     
    0x000204d0 mov sl, r4                                        |     sl = r4;
    0x000204d2 mov r4, r8                                        |     r4 = r8;
    0x000204d4 add r3, pc                                        |     r3 = 0x40c66;
    0x000204d6 str r3, [sp, 0x28]                                |     var_28h_2 = r3;
    0x000204d8 ldr r3, [pc, 0x2b4]                               |     
    0x000204da add r3, pc                                        |     r3 = 0x40c6e;
    0x000204dc str r3, [sp, 0x24]                                |     var_24h = r3;
    0x000204de ldr r3, [pc, 0x2b4]                               |     
    0x000204e0 add r3, pc                                        |     r3 = 0x40c7a;
    0x000204e2 str r3, [sp, 0x2c]                                |     var_2ch = r3;
                                                                 |     do {
                                                                 |         if (r4 != 0) {
    0x000204e4 cbz r4, 0x204ec                                   |             
    0x000204e6 ldrb r3, [r4]                                     |             r3 = *(r4);
    0x000204e8 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x000204ea bne 0x2056e                                       |                 goto label_13;
                                                                 |             }
                                                                 |         }
                                                                 | label_0:
    0x000204ec mov r2, r6                                        |         r2 = r6;
    0x000204ee movw r1, 0x8913                                   |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000204f2 mov r0, r5                                        |         r0 = r5;
    0x000204f4 blx 0xbf90                                        |         waitpid ();
    0x000204f8 adds r0, 1                                        |         r0++;
                                                                 |         if (r0 != 1) {
    0x000204fa beq 0x20502                                       |             
    0x000204fc ldrh r3, [r6, 0x10]                               |             r3 = *((r6 + 0x10));
    0x000204fe lsls r2, r3, 0x1c                                 |             r2 = r3 << 0x1c;
                                                                 |             if (r2 >= r3) {
    0x00020500 bpl 0x2057e                                       |                 goto label_14;
                                                                 |             }
                                                                 |         }
                                                                 | label_1:
    0x00020502 subs r7, 1                                        |         r7--;
    0x00020504 adds r6, 0x20                                     |         r6 += 0x20;
    0x00020506 adds r3, r7, 1                                    |         r3 = r7 + 1;
    0x00020508 bne 0x204e4                                       |         
                                                                 |     } while (r3 != r7);
    0x0002050a mov r4, sl                                        |     r4 = sl;
                                                                 | label_12:
    0x0002050c ldr r6, [r4, -0x18]                               |     r6 = var_18h;
    0x00020510 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00020512 bne.w 0x206a6                                     |         goto label_15;
                                                                 |     }
                                                                 | label_6:
    0x00020516 ldr.w r3, [fp, 0x28]                              |     r3 = *(arg_28h);
    0x0002051a movs r4, 0                                        |     r4 = 0;
    0x0002051c ldr r0, [pc, 0x278]                               |     
    0x0002051e mov r2, r4                                        |     r2 = r4;
    0x00020520 mov.w r1, 0x268                                   |     r1 = case.0x3207a.11;
    0x00020524 orr r3, r3, 4                                     |     r3 |= 4;
    0x00020528 str.w r3, [fp, 0x28]                              |     __asm ("str.w r3, [arg_28h]");
    0x0002052c add r0, pc                                        |     r0 = 0x40cc8;
    0x0002052e ldr r3, [sp, 0x20]                                |     r3 = var_20h_2;
    0x00020530 strb r4, [r3, r6]                                 |     *((r3 + r6)) = r4;
    0x00020532 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020536 str.w r0, [fp, 0x18]                              |     __asm ("str.w r0, [arg_18h]");
    0x0002053a mov r0, sb                                        |     r0 = sb;
    0x0002053c bl 0x29004                                        |     zbx_vector_str_destroy ();
    0x00020540 mov r0, r5                                        |     r0 = r5;
    0x00020542 blx 0xc47c                                        |     fcn_0000c47c ();
    0x00020546 mov r0, r4                                        |     r0 = r4;
                                                                 | label_2:
    0x00020548 ldr r2, [pc, 0x250]                               |     
    0x0002054a add.w r1, sp, 0x1040                              |     r1 += var_1040h;
    0x0002054e ldr r3, [pc, 0x238]                               |     r3 = *(0x2078a);
    0x00020550 adds r1, 0x14                                     |     r1 += 0x14;
    0x00020552 add r2, pc                                        |     r2 = 0x40cf2;
    0x00020554 ldr r3, [r2, r3]                                  |     r3 = imp.__environ;
    0x00020556 ldr r2, [r3]                                      |     r2 = imp.__environ;
    0x00020558 ldr r3, [r1]                                      |     r3 = *(r1);
    0x0002055a eors r2, r3                                       |     r2 ^= r3;
    0x0002055c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00020560 bne.w 0x2077a                                     |         goto label_16;
                                                                 |     }
    0x00020564 add.w sp, sp, 0x1040                              |     
    0x00020568 add sp, 0x1c                                      |     
    0x0002056a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_13:
    0x0002056e movs r2, 0                                        |     r2 = 0;
    0x00020570 mov r1, r4                                        |     r1 = r4;
    0x00020572 mov r0, r6                                        |     r0 = r6;
    0x00020574 bl 0x27e94                                        |     r0 = zbx_regexp_match ();
    0x00020578 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002057a bne 0x204ec                                       |         goto label_0;
                                                                 |     }
    0x0002057c b 0x20502                                         |     goto label_1;
                                                                 | label_14:
    0x0002057e mov r2, r6                                        |     r2 = r6;
    0x00020580 movw r1, 0x8927                                   |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00020584 mov r0, r5                                        |     r0 = r5;
    0x00020586 blx 0xbf90                                        |     waitpid ();
    0x0002058a adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0002058c beq 0x20502                                       |         goto label_1;
                                                                 |     }
    0x0002058e ldr r3, [sp, 0x18]                                |     r3 = var_b8h;
    0x00020590 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x00020592 beq.w 0x2073c                                     |         goto label_17;
                                                                 |     }
    0x00020596 ldrb r2, [r6, 0x17]                               |     r2 = *((r6 + 0x17));
    0x00020598 sub.w r8, sl, 4                                   |     r8 -= var_4h;
    0x0002059c ldrb r3, [r6, 0x12]                               |     r3 = *((r6 + 0x12));
    0x0002059e mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x000205a2 mov r0, r8                                        |     r0 = r8;
    0x000205a4 str r2, [sp, 0x10]                                |     var_b0h = r2;
    0x000205a6 ldrb r2, [r6, 0x16]                               |     r2 = *((r6 + 0x16));
    0x000205a8 str r2, [sp, 0xc]                                 |     var_ch_3 = r2;
    0x000205aa ldrb r2, [r6, 0x15]                               |     r2 = *((r6 + 0x15));
    0x000205ac str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x000205ae ldrb r2, [r6, 0x14]                               |     r2 = *((r6 + 0x14));
    0x000205b0 str r2, [sp, 4]                                   |     var_4h_3 = r2;
    0x000205b2 ldrb r2, [r6, 0x13]                               |     r2 = *((r6 + 0x13));
    0x000205b4 str r2, [sp]                                      |     *(sp) = r2;
    0x000205b6 ldr r2, [sp, 0x28]                                |     r2 = var_28h_2;
    0x000205b8 bl 0x38ea0                                        |     zbx_snprintf ();
    0x000205bc ldr r3, [pc, 0x1e0]                               |     r3 = *(0x207a0);
    0x000205be mov r1, r8                                        |     r1 = r8;
    0x000205c0 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000205c2 mov r0, sb                                        |     r0 = sb;
    0x000205c4 ldr r2, [r2, r3]                                  |     r2 = *((r2 + r3));
    0x000205c6 bl 0x292d8                                        |     zbx_vector_str_search ();
    0x000205ca adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x000205cc bne 0x20502                                       |         goto label_1;
                                                                 |     }
                                                                 | label_7:
    0x000205ce ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x000205d0 mov r3, r8                                        |     r3 = r8;
    0x000205d2 movs r2, 0                                        |     r2 = 0;
    0x000205d4 mov.w r1, 0x250                                   |     r1 = case.0x3207a.11;
    0x000205d8 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x000205dc mov r1, r0                                        |     r1 = r0;
    0x000205de mov r0, sb                                        |     r0 = sb;
    0x000205e0 bl 0x29024                                        |     zbx_vector_str_append ();
    0x000205e4 b 0x20502                                         |     goto label_1;
                                                                 | label_8:
    0x000205e6 ldr r0, [r1, 0x28]                                |     r0 = *((r1 + 0x28));
    0x000205e8 movs r2, 0                                        |     r2 = 0;
    0x000205ea ldr r3, [pc, 0x1b8]                               |     
    0x000205ec movw r1, 0x211                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000205f0 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000205f4 str.w r0, [fp, 0x28]                              |     __asm ("str.w r0, [arg_28h]");
    0x000205f8 add r3, pc                                        |     r3 = 0x40da2;
    0x000205fa ldr r0, [pc, 0x1ac]                               |     
    0x000205fc add r0, pc                                        |     r0 = 0x40daa;
    0x000205fe bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00020602 mov r3, r0                                        |     r3 = r0;
    0x00020604 movs r0, 1                                        |     r0 = 1;
    0x00020606 str.w r3, [fp, 0x20]                              |     __asm ("str.w r3, [arg_20h]");
    0x0002060a b 0x20548                                         |     goto label_2;
                                                                 | label_9:
    0x0002060c ldr r1, [pc, 0x19c]                               |     
    0x0002060e mov r0, r4                                        |     r0 = r4;
    0x00020610 add r1, pc                                        |     r1 = 0x40dc0;
    0x00020612 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020616 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00020618 beq.w 0x20474                                     |         goto label_3;
                                                                 |     }
    0x0002061c ldr r1, [pc, 0x190]                               |     
    0x0002061e mov r0, r4                                        |     r0 = r4;
    0x00020620 add r1, pc                                        |     r1 = 0x40dd4;
    0x00020622 blx 0xbc58                                        |     fcn_0000bc58 ();
    0x00020626 str r0, [sp, 0x18]                                |     var_b8h = r0;
    0x00020628 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002062a beq.w 0x20478                                     |         goto label_4;
                                                                 |     }
    0x0002062e ldr.w r0, [fp, 0x28]                              |     r0 = *(arg_28h);
    0x00020632 movs r2, 0                                        |     r2 = 0;
    0x00020634 ldr r3, [pc, 0x17c]                               |     
    0x00020636 movw r1, 0x21e                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002063a orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002063e str.w r0, [fp, 0x28]                              |     __asm ("str.w r0, [arg_28h]");
    0x00020642 add r3, pc                                        |     r3 = 0x40dfa;
    0x00020644 ldr r0, [pc, 0x170]                               |     
    0x00020646 add r0, pc                                        |     r0 = 0x40e02;
    0x00020648 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x0002064c mov r3, r0                                        |     r3 = r0;
    0x0002064e movs r0, 1                                        |     r0 = 1;
    0x00020650 str.w r3, [fp, 0x20]                              |     __asm ("str.w r3, [arg_20h]");
    0x00020654 b 0x20548                                         |     goto label_2;
                                                                 | label_11:
    0x00020656 mov r0, r5                                        |     r0 = r5;
    0x00020658 blx 0xc47c                                        |     fcn_0000c47c ();
    0x0002065c ldr.w r3, [fp, 0x28]                              |     r3 = *(arg_28h);
    0x00020660 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00020664 str.w r3, [fp, 0x28]                              |     __asm ("str.w r3, [arg_28h]");
    0x00020668 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002066c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002066e bl 0x26fdc                                        |     zbx_strerror ();
    0x00020672 ldr r1, [pc, 0x148]                               |     
    0x00020674 mov r2, r0                                        |     r2 = r0;
    0x00020676 add r1, pc                                        |     r1 = 0x40e38;
                                                                 |     do {
    0x00020678 movs r0, 0                                        |         r0 = 0;
    0x0002067a bl 0x396b0                                        |         zbx_dsprintf ()
    0x0002067c invalid                                           |         
    0x00020680 movs r0, 1                                        |         r0 = 1;
    0x00020682 str.w r3, [fp, 0x20]                              |         __asm ("str.w r3, [arg_20h]");
    0x00020686 b 0x20548                                         |         goto label_2;
                                                                 | label_10:
    0x00020688 ldr.w r3, [fp, 0x28]                              |         r3 = *(arg_28h);
    0x0002068c orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00020690 str.w r3, [fp, 0x28]                              |         __asm ("str.w r3, [arg_28h]");
    0x00020694 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00020698 ldr r0, [r0]                                      |         r0 = *(r0);
    0x0002069a bl 0x26fdc                                        |         zbx_strerror ();
    0x0002069e ldr r1, [pc, 0x120]                               |         
    0x000206a0 mov r2, r0                                        |         r2 = r0;
    0x000206a2 add r1, pc                                        |         r1 = 0x40e68;
    0x000206a4 b 0x20678                                         |         
                                                                 |     } while (1);
                                                                 | label_15:
    0x000206a6 ldr r3, [pc, 0xf8]                                |     r3 = *(0x207a2);
    0x000206a8 mov r0, sb                                        |     r0 = sb;
    0x000206aa ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x000206ac ldr r1, [r2, r3]                                  |     r1 = *((r2 + r3));
    0x000206ae bl 0x291a8                                        |     zbx_vector_str_sort ();
    0x000206b2 ldr r3, [r4, -0x18]                               |     r3 = var_18h;
    0x000206b6 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x000206b8 ble 0x20774                                       |         goto label_18;
                                                                 |     }
    0x000206ba ldr.w sl, [pc, 0x108]                             |     sl = *(0x000207c4);
    0x000206be movs r7, 0                                        |     r7 = 0;
    0x000206c0 str.w fp, [sp, 0x24]                              |     __asm ("str.w fp, [var_24h]");
    0x000206c4 mov r6, r7                                        |     r6 = r7;
    0x000206c6 ldr.w r8, [sp, 0x18]                              |     r8 = var_b8h;
    0x000206ca ldr.w fp, [sp, 0x20]                              |     fp = var_20h_2;
    0x000206ce add sl, pc                                        |     sl += pc;
    0x000206d0 str r5, [sp, 0x1c]                                |     var_1ch = r5;
    0x000206d2 b 0x20702                                         |     
                                                                 |     while (r8 != 1) {
                                                                 | label_5:
    0x000206d4 rsb.w r1, r6, 0x800                               |         r1 = case.0x3207a.11 - r6;
    0x000206d8 add.w r0, fp, r6                                  |         r0 = fp + r6;
    0x000206dc mov r2, sl                                        |         r2 = sl;
    0x000206de bl 0x38ea0                                        |         zbx_snprintf ();
    0x000206e2 ldr r3, [r4, -0x1c]                               |         r3 = var_1ch_2;
    0x000206e6 add r6, r0                                        |         r6 += r0;
    0x000206e8 ldr r0, [r3, r5]                                  |         r0 = *((r3 + r5));
                                                                 |         if (r0 != 0) {
    0x000206ea cbz r0, 0x206f8                                   |             
    0x000206ec blx 0xbd14                                        |             gai_strerror ();
    0x000206f0 ldr r3, [r4, -0x1c]                               |             r3 = var_1ch_2;
    0x000206f4 movs r2, 0                                        |             r2 = 0;
    0x000206f6 str r2, [r3, r5]                                  |             *((r3 + r5)) = r2;
                                                                 |         }
    0x000206f8 ldr r3, [r4, -0x18]                               |         r3 = var_18h;
    0x000206fc adds r7, 1                                        |         r7++;
    0x000206fe cmp r3, r7                                        |         
                                                                 |         if (r3 <= r7) {
    0x00020700 ble 0x20732                                       |             goto label_19;
                                                                 |         }
    0x00020702 ldr r3, [r4, -0x1c]                               |         r3 = var_1ch_2;
    0x00020706 cmp.w r8, 1                                       |         
    0x0002070a lsl.w r5, r7, 2                                   |         r5 = r7 << 2;
    0x0002070e ldr.w r3, [r3, r7, lsl 2]                         |         offset_0 = r7 << 2;
                                                                 |         r3 = *((r3 + offset_0));
    0x00020712 bne 0x206d4                                       |         
                                                                 |     }
    0x00020714 mov r0, r3                                        |     r0 = r3;
    0x00020716 movs r1, 0x20                                     |     r1 = 0x20;
    0x00020718 str r3, [sp, 0x18]                                |     var_b8h = r3;
    0x0002071a blx 0xc138                                        |     fcn_0000c138 ();
    0x0002071e ldr r3, [sp, 0x18]                                |     r3 = var_b8h;
    0x00020720 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00020722 beq 0x206d4                                       |         goto label_5;
                                                                 |     }
    0x00020724 mov.w r3, 0x5d                                    |     r3 = 0x5d;
    0x00020728 strb r3, [r0]                                     |     *(r0) = r3;
    0x0002072a ldr r3, [r4, -0x1c]                               |     r3 = var_1ch_2;
    0x0002072e ldr r3, [r3, r5]                                  |     r3 = *((r3 + r5));
    0x00020730 b 0x206d4                                         |     goto label_5;
                                                                 | label_19:
    0x00020732 ldr r5, [sp, 0x1c]                                |     r5 = var_1ch;
    0x00020734 subs r6, 2                                        |     r6 -= 2;
    0x00020736 ldr.w fp, [sp, 0x24]                              |     fp = var_24h;
    0x0002073a b 0x20516                                         |     goto label_6;
                                                                 | label_17:
    0x0002073c sub.w r8, sl, 4                                   |     r8 -= var_4h;
    0x00020740 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00020742 mov r3, r6                                        |     r3 = r6;
    0x00020744 mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x00020748 mov r0, r8                                        |     r0 = r8;
    0x0002074a bl 0x38ea0                                        |     zbx_snprintf ();
    0x0002074e ldrb r2, [r6, 0x17]                               |     r2 = *((r6 + 0x17));
    0x00020750 rsb.w r1, r0, 0x800                               |     r1 = case.0x3207a.11 - r0;
    0x00020754 ldrb r3, [r6, 0x12]                               |     r3 = *((r6 + 0x12));
    0x00020756 add r0, r8                                        |     r0 += r8;
    0x00020758 str r2, [sp, 0x10]                                |     var_b0h = r2;
    0x0002075a ldrb r2, [r6, 0x16]                               |     r2 = *((r6 + 0x16));
    0x0002075c str r2, [sp, 0xc]                                 |     var_ch_3 = r2;
    0x0002075e ldrb r2, [r6, 0x15]                               |     r2 = *((r6 + 0x15));
    0x00020760 str r2, [sp, 8]                                   |     var_8h_2 = r2;
    0x00020762 ldrb r2, [r6, 0x14]                               |     r2 = *((r6 + 0x14));
    0x00020764 str r2, [sp, 4]                                   |     var_4h_3 = r2;
    0x00020766 ldrb r2, [r6, 0x13]                               |     r2 = *((r6 + 0x13));
    0x00020768 str r2, [sp]                                      |     *(sp) = r2;
    0x0002076a ldr r2, [pc, 0x5c]                                |     
    0x0002076c add r2, pc                                        |     r2 = 0x40f3a;
    0x0002076e bl 0x38ea0                                        |     zbx_snprintf ();
    0x00020772 b 0x205ce                                         |     goto label_7;
                                                                 | label_18:
    0x00020774 mvn r6, 1                                         |     r6 = ~1;
    0x00020778 b 0x20516                                         |     goto label_6;
                                                                 | label_16:
    0x0002077a blx 0xbe48                                        |     fcn_0000be48 ();
    0x0002077e nop                                               |     
    0x00020780 stm r7!, {r4, r5, r7}                             |     *(r7!) = r4;
                                                                 |     *((r7! + 4)) = r5;
                                                                 |     *((r7! + 8)) = r7;
    0x00020782 movs r3, r0                                       |     r3 = r0;
    0x00020784 stm r7!, {r2, r3, r5, r7}                         |     *(r7!) = r2;
                                                                 |     *((r7! + 4)) = r3;
                                                                 |     *((r7! + 8)) = r5;
                                                                 |     *((r7! + 12)) = r7;
    0x00020786 movs r3, r0                                       |     r3 = r0;
    0x00020788 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0002078a movs r0, r0                                       |     
    0x0002078c str r0, [r5, 0x34]                                |     *((r5 + 0x34)) = r0;
    0x0002078e movs r2, r0                                       |     r2 = r0;
    0x00020790 str r6, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r6;
    0x00020792 movs r2, r0                                       |     r2 = r0;
    0x00020794 str r4, [r2, 0x34]                                |     *((r2 + 0x34)) = r4;
    0x00020796 movs r2, r0                                       |     r2 = r0;
    0x00020798 str r4, [r2, 0x18]                                |     *((r2 + 0x18)) = r4;
    0x0002079a movs r2, r0                                       |     r2 = r0;
    0x0002079c stm r6!, {r1, r3, r4, r7}                         |     *(r6!) = r1;
                                                                 |     *((r6! + 4)) = r3;
                                                                 |     *((r6! + 8)) = r4;
                                                                 |     *((r6! + 12)) = r7;
    0x0002079e movs r3, r0                                       |     r3 = r0;
    0x000207a0 lsls r4, r0, 0x10                                 |     r4 = r0 << 0x10;
    0x000207a2 movs r0, r0                                       |     
    0x000207a4 mvns r4, r2                                       |     r4 = ~r2;
    0x000207a6 movs r2, r0                                       |     r2 = r0;
    0x000207a8 str r4, [r0, 0xc]                                 |     *((r0 + 0xc)) = r4;
    0x000207aa movs r2, r0                                       |     r2 = r0;
    0x000207ac ldrh r0, [r2, r3]                                 |     r0 = *((r2 + r3));
    0x000207ae movs r2, r0                                       |     r2 = r0;
    0x000207b0 ldrh r0, [r7, r3]                                 |     r0 = *((r7 + r3));
    0x000207b2 movs r2, r0                                       |     r2 = r0;
    0x000207b4 ldr r2, [pc, 0x3b8]                               |     r2 = *(0x20b70);
    0x000207b6 movs r2, r0                                       |     r2 = r0;
    0x000207b8 str r2, [r7, 4]                                   |     *((r7 + 4)) = r2;
    0x000207ba movs r2, r0                                       |     r2 = r0;
    0x000207bc str r2, [r3, 0x18]                                |     *((r3 + 0x18)) = r2;
    0x000207be movs r2, r0                                       |     r2 = r0;
    0x000207c0 str r2, [r2, 0x14]                                |     *((r2 + 0x14)) = r2;
    0x000207c2 movs r2, r0                                       |     r2 = r0;
    0x000207c4 ldr r6, [r7, r7]                                  |     r6 = *((r7 + r7));
    0x000207c6 movs r2, r0                                       |     r2 = r0;
    0x000207c8 str r0, [r2, 0xc]                                 |     *((r2 + 0xc)) = r0;
    0x000207ca movs r2, r0                                       |     r2 = r0;
    0x000207cc movs r0, r0                                       |     
    0x000207ce movs r0, r0                                       |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1dd84 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.SYSTEM_SWAP_SIZE ()                      | void SYSTEM_SWAP_SIZE (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_34h;
                                                         |     int16_t var_4h;
                                                         |     int16_t var_24h;
                                                         |     int16_t var_28h;
                                                         |     int16_t var_38h;
                                                         |     int16_t var_44h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0001dd84 blmi 0xfe2707ac                           |     __asm ("blmi 0xfe2707ac");
    0x0001dd88 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0001dd8c sub sp, 0x48                              |     
    0x0001dd8e add r2, pc                                |     r2 += pc;
    0x0001dd90 mov r4, r1                                |     r4 = r1;
    0x0001dd92 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x0001dd94 ldr r3, [r3]                              |     r3 = *(r3);
    0x0001dd96 str r3, [sp, 0x44]                        |     var_44h = r3;
    0x0001dd98 mov.w r3, 0                               |     r3 = 0;
    0x0001dd9c ldr r3, [r0, 4]                           |     r3 = *((r0 + 4));
    0x0001dd9e cmp r3, 2                                 |     
                                                         |     if (r3 > 2) {
    0x0001dda0 bgt 0x1de5a                               |         goto label_4;
                                                         |     }
    0x0001dda2 cmp r3, 0                                 |     
                                                         |     if (r3 <= 0) {
    0x0001dda4 ble 0x1de28                               |         goto label_5;
                                                         |     }
    0x0001dda6 ldr r2, [r0, 8]                           |     r2 = *((r0 + 8));
    0x0001dda8 cmp r3, 2                                 |     
    0x0001ddaa it ne                                     |     
                                                         |     if (r3 == 2) {
    0x0001ddac movne r6, 0                               |         r6 = 0;
                                                         |     }
    0x0001ddae ldr r0, [r2]                              |     r0 = *(r2);
    0x0001ddb0 it eq                                     |     
                                                         |     if (r3 != 2) {
    0x0001ddb2 ldreq r6, [r2, 4]                         |         r6 = *((r2 + 4));
                                                         |     }
                                                         |     if (r0 != 0) {
    0x0001ddb4 cbz r0, 0x1ddc8                           |         
    0x0001ddb6 ldrb r3, [r0]                             |         r3 = *(r0);
                                                         |         if (r3 == 0) {
    0x0001ddb8 cbz r3, 0x1ddc8                           |             goto label_6;
                                                         |         }
    0x0001ddba ldr r1, [pc, 0x1f4]                       |         
    0x0001ddbc add r1, pc                                |         r1 = 0x3bd72;
    0x0001ddbe blx 0xbc58                                |         r0 = fcn_0000bc58 ();
    0x0001ddc2 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0001ddc4 bne.w 0x1dee4                             |             goto label_7;
                                                         |         }
                                                         |     }
                                                         | label_6:
    0x0001ddc8 add r0, sp, 4                             |     r0 += var_4h;
    0x0001ddca blx 0xc018                                |     r0 = fcn_0000c018 ();
    0x0001ddce mov r5, r0                                |     r5 = r0;
    0x0001ddd0 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001ddd2 bne 0x1de36                               |         goto label_8;
                                                         |     }
                                                         |     do {
    0x0001ddd4 ldr r7, [sp, 0x24]                        |         r7 = var_24h;
                                                         |         if (r7 != 0) {
    0x0001ddd6 cbz r7, 0x1ddde                           |             
    0x0001ddd8 ldr r3, [sp, 0x38]                        |             r3 = var_38h;
    0x0001ddda cmp r3, 0                                 |             
                                                         |             if (r3 != 0) {
    0x0001dddc bne 0x1de78                               |                 goto label_9;
                                                         |             }
                                                         |         }
    0x0001ddde cmp r6, 0                                 |         
                                                         |         if (r6 == 0) {
    0x0001dde0 beq 0x1dec6                               |             goto label_10;
                                                         |         }
    0x0001dde2 ldr r1, [pc, 0x1d0]                       |         
    0x0001dde4 mov r0, r6                                |         r0 = r6;
    0x0001dde6 add r1, pc                                |         r1 = 0x3bda0;
    0x0001dde8 blx 0xbc58                                |         r0 = fcn_0000bc58 ();
    0x0001ddec cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0001ddee bne 0x1dec6                               |             goto label_10;
                                                         |         }
                                                         | label_2:
    0x0001ddf0 ldrb r3, [r6]                             |         r3 = *(r6);
    0x0001ddf2 cmp r3, 0                                 |         
                                                         |         if (r3 != 0) {
    0x0001ddf4 bne 0x1de7e                               |             goto label_11;
                                                         |         }
                                                         | label_3:
    0x0001ddf6 ldr r3, [sp, 0x38]                        |         r3 = var_38h;
                                                         | label_1:
    0x0001ddf8 ldr r2, [sp, 0x28]                        |         r2 = var_28h;
    0x0001ddfa ldr r1, [r4, 0x28]                        |         r1 = *((r4 + 0x28));
    0x0001ddfc umull r2, r3, r2, r3                      |         r2:r3 = r2 * r3;
    0x0001de00 orr r1, r1, 1                             |         r1 |= 1;
    0x0001de04 str r1, [r4, 0x28]                        |         *((r4 + 0x28)) = r1;
    0x0001de06 strd r2, r3, [r4, 8]                      |         __asm ("strd r2, r3, [r4, 8]");
                                                         | label_0:
    0x0001de0a ldr r2, [pc, 0x1ac]                       |         
    0x0001de0c ldr r3, [pc, 0x19c]                       |         r3 = *(0x1dfac);
    0x0001de0e add r2, pc                                |         r2 = 0x3bdcc;
    0x0001de10 ldr r3, [r2, r3]                          |         r3 = *(0x3bdcc);
    0x0001de12 ldr r2, [r3]                              |         r2 = *(0x3bdcc);
    0x0001de14 ldr r3, [sp, 0x44]                        |         r3 = var_44h;
    0x0001de16 eors r2, r3                               |         r2 ^= r3;
    0x0001de18 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x0001de1c bne.w 0x1df9c                             |             goto label_12;
                                                         |         }
    0x0001de20 mov r0, r5                                |         r0 = r5;
    0x0001de22 add sp, 0x48                              |         
    0x0001de24 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_5:
    0x0001de28 add r0, sp, 4                             |         r0 += var_4h;
    0x0001de2a movs r6, 0                                |         r6 = 0;
    0x0001de2c blx 0xc018                                |         r0 = fcn_0000c018 ();
    0x0001de30 mov r5, r0                                |         r5 = r0;
    0x0001de32 cmp r0, 0                                 |         
    0x0001de34 beq 0x1ddd4                               |         
                                                         |     } while (r0 == 0);
                                                         | label_8:
    0x0001de36 ldr r3, [r4, 0x28]                        |     r3 = *((r4 + 0x28));
    0x0001de38 movs r5, 1                                |     r5 = 1;
    0x0001de3a orr r3, r3, 0x20                          |     r3 |= 0x20;
    0x0001de3e str r3, [r4, 0x28]                        |     *((r4 + 0x28)) = r3;
    0x0001de40 blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x0001de44 ldr r0, [r0]                              |     r0 = *(r0);
    0x0001de46 bl 0x26fdc                                |     zbx_strerror ();
    0x0001de4a ldr r1, [pc, 0x170]                       |     
    0x0001de4c mov r2, r0                                |     r2 = r0;
    0x0001de4e movs r0, 0                                |     r0 = 0;
    0x0001de50 add r1, pc                                |     r1 = 0x3be12;
    0x0001de52 bl 0x396b0                                |     zbx_dsprintf ()
    0x0001de56 str r0, [r4, 0x20]                        |     *((r4 + 0x20)) = r0;
    0x0001de58 b 0x1de0a                                 |     goto label_0;
                                                         | label_4:
    0x0001de5a ldr r0, [r1, 0x28]                        |     r0 = *((r1 + 0x28));
    0x0001de5c movs r2, 0                                |     r2 = 0;
    0x0001de5e ldr r3, [pc, 0x160]                       |     
    0x0001de60 movs r1, 0x1f                             |     r1 = 0x1f;
    0x0001de62 movs r5, 1                                |     r5 = 1;
    0x0001de64 orr r0, r0, 0x20                          |     r0 |= 0x20;
    0x0001de68 str r0, [r4, 0x28]                        |     *((r4 + 0x28)) = r0;
    0x0001de6a add r3, pc                                |     r3 = 0x3be30;
    0x0001de6c ldr r0, [pc, 0x154]                       |     
    0x0001de6e add r0, pc                                |     r0 = 0x3be36;
    0x0001de70 bl 0x35d28                                |     zbx_strdup2 ();
    0x0001de74 str r0, [r4, 0x20]                        |     *((r4 + 0x20)) = r0;
    0x0001de76 b 0x1de0a                                 |     goto label_0;
                                                         | label_9:
    0x0001de78 cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0001de7a beq 0x1ddf8                               |         goto label_1;
                                                         |     }
    0x0001de7c b 0x1ddf0                                 |     goto label_2;
                                                         | label_11:
    0x0001de7e ldr r1, [pc, 0x148]                       |     
    0x0001de80 mov r0, r6                                |     r0 = r6;
    0x0001de82 add r1, pc                                |     r1 = 0x3be50;
    0x0001de84 blx 0xbc58                                |     r0 = fcn_0000bc58 ();
    0x0001de88 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0001de8a beq 0x1ddf6                               |         goto label_3;
                                                         |     }
    0x0001de8c ldr r1, [pc, 0x13c]                       |     
    0x0001de8e mov r0, r6                                |     r0 = r6;
    0x0001de90 add r1, pc                                |     r1 = 0x3be60;
    0x0001de92 blx 0xbc58                                |     fcn_0000bc58 ();
    0x0001de94 mcr p8, 7, pc, c2, c4, 6                  |     __asm ("mcr p8, 7, pc, c2, c4, 6");
    0x0001de98 strh r0, [r5]                             |     *(r5) = r0;
    0x0001de9a mov r5, r0                                |     r5 = r0;
    0x0001de9c cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0001de9e beq 0x1df02                               |         
    0x0001dea0 ldr r1, [pc, 0x12c]                       |         
    0x0001dea2 mov r0, r6                                |         r0 = r6;
    0x0001dea4 add r1, pc                                |         r1 = 0x3be78;
    0x0001dea6 blx 0xbc58                                |         r0 = fcn_0000bc58 ();
    0x0001deaa mov r5, r0                                |         r5 = r0;
    0x0001deac cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0001deae bne 0x1df14                               |             goto label_13;
                                                         |         }
    0x0001deb0 orr r2, r8, 1                             |         r2 = r8 | 1;
    0x0001deb4 ldr r3, [sp, 0x28]                        |         r3 = var_28h;
    0x0001deb6 str r2, [r4, 0x28]                        |         *((r4 + 0x28)) = r2;
    0x0001deb8 ldr r2, [sp, 0x38]                        |         r2 = var_38h;
    0x0001deba subs r3, r7, r3                           |         r3 = r7 - r3;
    0x0001debc umull r3, r2, r3, r2                      |         r3:r2 = r3 * r2;
    0x0001dec0 strd r3, r2, [r4, 8]                      |         __asm ("strd r3, r2, [r4, 8]");
    0x0001dec4 b 0x1de0a                                 |         goto label_0;
                                                         | label_10:
    0x0001dec6 ldr r0, [r4, 0x28]                        |         r0 = *((r4 + 0x28));
    0x0001dec8 movs r2, 0                                |         r2 = 0;
    0x0001deca ldr r3, [pc, 0x108]                       |         
    0x0001decc movs r1, 0x34                             |         r1 = 0x34;
    0x0001dece movs r5, 1                                |         r5 = 1;
    0x0001ded0 orr r0, r0, 0x20                          |         r0 |= 0x20;
    0x0001ded4 str r0, [r4, 0x28]                        |         *((r4 + 0x28)) = r0;
    0x0001ded6 add r3, pc                                |         r3 = 0x3beb0;
    0x0001ded8 ldr r0, [pc, 0xfc]                        |         
    0x0001deda add r0, pc                                |         r0 = 0x3beb6;
    0x0001dedc bl 0x35d28                                |         zbx_strdup2 ();
    0x0001dee0 str r0, [r4, 0x20]                        |         *((r4 + 0x20)) = r0;
    0x0001dee2 b 0x1de0a                                 |         goto label_0;
                                                         | label_7:
    0x0001dee4 ldr r0, [r4, 0x28]                        |         r0 = *((r4 + 0x28));
    0x0001dee6 movs r2, 0                                |         r2 = 0;
    0x0001dee8 ldr r3, [pc, 0xf0]                        |         
    0x0001deea movs r1, 0x28                             |         r1 = 0x28;
    0x0001deec movs r5, 1                                |         r5 = 1;
    0x0001deee orr r0, r0, 0x20                          |         r0 |= 0x20;
    0x0001def2 str r0, [r4, 0x28]                        |         *((r4 + 0x28)) = r0;
    0x0001def4 add r3, pc                                |         r3 = 0x3bed4;
    0x0001def6 ldr r0, [pc, 0xe8]                        |         
    0x0001def8 add r0, pc                                |         r0 = 0x3bede;
    0x0001defa bl 0x35d28                                |         zbx_strdup2 ();
    0x0001defe str r0, [r4, 0x20]                        |         *((r4 + 0x20)) = r0;
    0x0001df00 b 0x1de0a                                 |         goto label_0;
                                                         |     }
    0x0001df02 ldr r3, [sp, 0x38]                        |     r3 = var_38h;
    0x0001df04 orr r2, r8, 1                             |     r2 = r8 | 1;
    0x0001df08 str r2, [r4, 0x28]                        |     *((r4 + 0x28)) = r2;
    0x0001df0a umull r3, r7, r3, r7                      |     r3:r7 = r3 * r7;
    0x0001df0e strd r3, r7, [r4, 8]                      |     __asm ("strd r3, r7, [r4, 8]");
    0x0001df12 b 0x1de0a                                 |     goto label_0;
                                                         | label_13:
    0x0001df14 ldr r1, [pc, 0xcc]                        |     
    0x0001df16 mov r0, r6                                |     r0 = r6;
    0x0001df18 add r1, pc                                |     r1 = 0x3bf00;
    0x0001df1a blx 0xbc58                                |     r0 = fcn_0000bc58 ();
    0x0001df1e mov r5, r0                                |     r5 = r0;
                                                         |     if (r0 == 0) {
    0x0001df20 cbnz r0, 0x1df4a                          |         
    0x0001df22 vmov s15, r7                              |         __asm ("vmov s15, r7");
    0x0001df26 orr r3, r8, 2                             |         r3 = r8 | 2;
    0x0001df2a vcvt.f64.u32 d19, s15                     |         __asm ("vcvt.f64.u32 d19, s15");
    0x0001df2e vldr s15, [sp, 0x28]                      |         __asm ("vldr s15, [sp, 0x28]");
    0x0001df32 vldr d18, [pc, 0x6c]                      |         __asm ("vldr d18, case.0x3207a.11");
    0x0001df36 str r3, [r4, 0x28]                        |         *((r4 + 0x28)) = r3;
    0x0001df38 vcvt.f64.u32 d17, s15                     |         __asm ("vcvt.f64.u32 d17, s15");
    0x0001df3c vdiv.f64 d16, d17, d19                    |         __asm ("vdiv.f64 d16, d17, d19");
    0x0001df40 vmul.f64 d16, d16, d18                    |         __asm ("vmul.f64 d16, d16, d18");
    0x0001df44 vstr d16, [r4, 0x10]                      |         __asm ("vstr d16, [r4, 0x10]");
    0x0001df48 b 0x1de0a                                 |         goto label_0;
                                                         |     }
    0x0001df4a ldr r1, [pc, 0x9c]                        |     
    0x0001df4c mov r0, r6                                |     r0 = r6;
    0x0001df4e add r1, pc                                |     r1 = 0x3bf3c;
    0x0001df50 blx 0xbc58                                |     r0 = fcn_0000bc58 ();
    0x0001df54 mov r5, r0                                |     r5 = r0;
                                                         |     if (r0 == 0) {
    0x0001df56 cbnz r0, 0x1df80                          |         
    0x0001df58 vmov s15, r7                              |         __asm ("vmov s15, r7");
    0x0001df5c orr r3, r8, 2                             |         r3 = r8 | 2;
    0x0001df60 vcvt.f64.u32 d16, s15                     |         __asm ("vcvt.f64.u32 d16, s15");
    0x0001df64 vldr s15, [sp, 0x28]                      |         __asm ("vldr s15, [sp, 0x28]");
    0x0001df68 vldr d17, [pc, 0x34]                      |         __asm ("vldr d17, case.0x3207a.11");
    0x0001df6c str r3, [r4, 0x28]                        |         *((r4 + 0x28)) = r3;
    0x0001df6e vcvt.f64.u32 d18, s15                     |         __asm ("vcvt.f64.u32 d18, s15");
    0x0001df72 vdiv.f64 d19, d18, d16                    |         __asm ("vdiv.f64 d19, d18, d16");
    0x0001df76 vmls.f64 d17, d19, d17                    |         __asm ("vmls.f64 d17, d19, d17");
    0x0001df7a vstr d17, [r4, 0x10]                      |         __asm ("vstr d17, [r4, 0x10]");
    0x0001df7e b 0x1de0a                                 |         goto label_0;
                                                         |     }
    0x0001df80 orr r0, r8, 0x20                          |     r0 = r8 | 0x20;
    0x0001df84 ldr r3, [pc, 0x64]                        |     
    0x0001df86 str r0, [r4, 0x28]                        |     *((r4 + 0x28)) = r0;
    0x0001df88 movs r2, 0                                |     r2 = 0;
    0x0001df8a ldr r0, [pc, 0x64]                        |     
    0x0001df8c movs r1, 0x4f                             |     r1 = 0x4f;
    0x0001df8e add r3, pc                                |     r3 = 0x3bf7e;
    0x0001df90 movs r5, 1                                |     r5 = 1;
    0x0001df92 add r0, pc                                |     r0 = 0x3bf88;
    0x0001df94 bl 0x35d28                                |     zbx_strdup2 ();
    0x0001df98 str r0, [r4, 0x20]                        |     *((r4 + 0x20)) = r0;
    0x0001df9a b 0x1de0a                                 |     goto label_0;
                                                         | label_12:
    0x0001df9c blx 0xbe48                                |     r0 = fcn_0000be48 ();
    0x0001dfa0 movs r0, r0                               |     
    0x0001dfa2 movs r0, r0                               |     
    0x0001dfa4 movs r0, r0                               |     
    0x0001dfa6 eors r1, r3                               |     r1 ^= r3;
    0x0001dfa8 cdp p0, 5, c0, c14, c3, 0                 |     __asm ("cdp p0, 5, c0, c14, c3, 0");
    0x0001dfac lsls r4, r2, 0xc                          |     r4 = r2 << 0xc;
    0x0001dfae movs r0, r0                               |     
    0x0001dfb0 strh r4, [r1, 0x18]                       |     *((r1 + 0x18)) = r4;
    0x0001dfb2 movs r2, r0                               |     r2 = r0;
    0x0001dfb4 strb r6, [r6, 0x18]                       |     *((r6 + 0x18)) = r6;
    0x0001dfb6 movs r2, r0                               |     r2 = r0;
    0x0001dfb8 ldcl p0, c0, [lr, 0xc]                    |     __asm ("ldcl p0, c0, [lr, 0xc]");
    0x0001dfbc ldrb r4, [r5, 1]                          |     r4 = *((r5 + 1));
    0x0001dfbe movs r2, r0                               |     r2 = r0;
    0x0001dfc0 ldr r2, [r4, 0x34]                        |     r2 = *((r4 + 0x34));
    0x0001dfc2 movs r2, r0                               |     r2 = r0;
    0x0001dfc4 strh r6, [r5, 0x28]                       |     *((r5 + 0x28)) = r6;
    0x0001dfc6 movs r2, r0                               |     r2 = r0;
    0x0001dfc8 strb r2, [r1, 0x1c]                       |     *((r1 + 0x1c)) = r2;
    0x0001dfca movs r2, r0                               |     r2 = r0;
    0x0001dfcc strb r4, [r1, 0x16]                       |     *((r1 + 0x16)) = r4;
    0x0001dfce movs r2, r0                               |     r2 = r0;
    0x0001dfd0 subs r1, 0xd8                             |     r1 -= 0xd8;
    0x0001dfd2 movs r2, r0                               |     r2 = r0;
    0x0001dfd4 strh r6, [r1, 0x26]                       |     *((r1 + 0x26)) = r6;
    0x0001dfd6 movs r2, r0                               |     r2 = r0;
    0x0001dfd8 strh r2, [r0, 0x26]                       |     *((r0 + 0x26)) = r2;
    0x0001dfda movs r2, r0                               |     r2 = r0;
    0x0001dfdc ldr r0, [r6, 0x2c]                        |     r0 = *((r6 + 0x2c));
    0x0001dfde movs r2, r0                               |     r2 = r0;
    0x0001dfe0 strh r4, [r4, 0x24]                       |     *((r4 + 0x24)) = r4;
    0x0001dfe2 movs r2, r0                               |     r2 = r0;
    0x0001dfe4 strh r0, [r0, 0x26]                       |     *((r0 + 0x26)) = r0;
    0x0001dfe6 movs r2, r0                               |     r2 = r0;
    0x0001dfe8 strb r6, [r0, 0x1f]                       |     *((r0 + 0x1f)) = r6;
    0x0001dfea movs r2, r0                               |     r2 = r0;
    0x0001dfec strb r2, [r4, 6]                          |     *((r4 + 6)) = r2;
    0x0001dfee movs r2, r0                               |     r2 = r0;
    0x0001dff0 strh r2, [r1, 0x20]                       |     *((r1 + 0x20)) = r2;
    0x0001dff2 movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1d278 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.SYSTEM_SW_ARCH ()                            | void SYSTEM_SW_ARCH (int16_t arg2) {
                                                             |     int16_t var_4h;
                                                             |     int32_t var_0h;
                                                             |     int16_t var_108h;
                                                             |     int16_t var_18ch;
                                                             |     r1 = arg2;
    0x0001d278 blmi 0x7efaf8                                 |     __asm ("blmi aav.0x0003f96c");
    0x0001d27c push {r4, lr}                                 |     
    0x0001d27e sub sp, 0x190                                 |     
    0x0001d280 add r2, pc                                    |     r2 += pc;
    0x0001d282 add r0, sp, 4                                 |     r0 += var_4h;
    0x0001d284 mov r4, r1                                    |     r4 = r1;
    0x0001d286 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x0001d288 ldr r3, [r3]                                  |     r3 = *(r3);
    0x0001d28a str r3, [sp, 0x18c]                           |     var_18ch = r3;
    0x0001d28c mov.w r3, 0                                   |     r3 = 0;
    0x0001d290 blx 0xbe0c                                    |     fcn_0000be0c ();
    0x0001d294 adds r0, 1                                    |     r0++;
                                                             |     if (r0 == 1) {
    0x0001d296 beq 0x1d2cc                                   |         goto label_0;
                                                             |     }
    0x0001d298 ldr r1, [r4, 0x28]                            |     r1 = *((r4 + 0x28));
    0x0001d29a add r3, sp, 0x108                             |     r3 += var_108h;
    0x0001d29c ldr r0, [pc, 0x5c]                            |     
    0x0001d29e movs r2, 0                                    |     r2 = 0;
    0x0001d2a0 orr r1, r1, 4                                 |     r1 |= 4;
    0x0001d2a4 str r1, [r4, 0x28]                            |     *((r4 + 0x28)) = r1;
    0x0001d2a6 add r0, pc                                    |     r0 = 0x3a5a6;
    0x0001d2a8 movs r1, 0x2c                                 |     r1 = 0x2c;
    0x0001d2aa bl 0x35d28                                    |     zbx_strdup2 ();
    0x0001d2ae movs r3, 0                                    |     r3 = 0;
    0x0001d2b0 str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
                                                             |     do {
    0x0001d2b2 ldr r1, [pc, 0x4c]                            |         
    0x0001d2b4 ldr r2, [pc, 0x40]                            |         r2 = *(0x1d2f8);
    0x0001d2b6 add r1, pc                                    |         r1 = 0x3a5bc;
    0x0001d2b8 ldr r2, [r1, r2]                              |         r2 = *(0x3a5bc);
    0x0001d2ba ldr r1, [r2]                                  |         r1 = *(0x3a5bc);
    0x0001d2bc ldr r2, [sp, 0x18c]                           |         r2 = var_18ch;
    0x0001d2be eors r1, r2                                   |         r1 ^= r2;
    0x0001d2c0 mov.w r2, 0                                   |         r2 = 0;
                                                             |         if (r1 != r2) {
    0x0001d2c4 bne 0x1d2f0                                   |             goto label_1;
                                                             |         }
    0x0001d2c6 mov r0, r3                                    |         r0 = r3;
    0x0001d2c8 add sp, 0x190                                 |         
    0x0001d2ca pop {r4, pc}                                  |         
                                                             | label_0:
    0x0001d2cc ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001d2ce orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001d2d2 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x0001d2d4 blx 0xc15c                                    |         r0 = fcn_0000c15c ();
    0x0001d2d8 ldr r0, [r0]                                  |         r0 = *(r0);
    0x0001d2da bl 0x26fdc                                    |         zbx_strerror ();
    0x0001d2de ldr r1, [pc, 0x24]                            |         
    0x0001d2e0 mov r2, r0                                    |         r2 = r0;
    0x0001d2e2 movs r0, 0                                    |         r0 = 0;
    0x0001d2e4 add r1, pc                                    |         r1 = 0x3a5ee;
    0x0001d2e6 bl 0x396b0                                    |         zbx_dsprintf ()
    0x0001d2ea movs r3, 1                                    |         r3 = 1;
    0x0001d2ec str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001d2ee b 0x1d2b2                                     |         
                                                             |     } while (1);
                                                             | label_1:
    0x0001d2f0 blx 0xbe48                                    |     fcn_0000be48 ();
    0x0001d2f4 vld4.8 {d16, d17, d18, d19}, [ip], r3         |     __asm ("vld4.8 {d16, d17, d18, d19}, [ip], r3");
    0x0001d2f8 lsls r4, r2, 0xc                              |     r4 = r2 << 0xc;
    0x0001d2fa movs r0, r0                                   |     
    0x0001d2fc ldrh r6, [r5, 0x30]                           |     r6 = *((r5 + 0x30));
    0x0001d2fe movs r2, r0                                   |     r2 = r0;
    0x0001d300 ldrsh.w r0, [r6, r3]                          |     r0 = *((r6 + r3));
    0x0001d304 strh r0, [r3, 0x1e]                           |     *((r3 + 0x1e)) = r0;
    0x0001d306 movs r2, r0                                   |     r2 = r0;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1d308 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.SYSTEM_SW_OS ()                                      | void SYSTEM_SW_OS (int16_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h_2;
                                                                     |     FILE * stream;
                                                                     |     int16_t var_80ch;
                                                                     |     int16_t var_814h;
                                                                     |     int16_t var_816h;
                                                                     |     int16_t var_1000h;
                                                                     |     int16_t var_1800h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x0001d308 blmi 0xfe82fd8c                                       |     __asm ("blmi 0xfe82fd8c");
    0x0001d30c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001d310 sub.w sp, sp, 0x1800                                  |     
    0x0001d314 ldr r5, [r0, 4]                                       |     r5 = *((r0 + 4));
    0x0001d316 add r2, pc                                            |     r2 += pc;
    0x0001d318 sub sp, 0x14                                          |     
    0x0001d31a ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0001d31c add.w r4, sp, 0x1800                                  |     r4 += var_1800h;
    0x0001d320 cmp r5, 1                                             |     
    0x0001d322 add.w r4, r4, 0xc                                     |     r4 += 0xc;
    0x0001d326 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0001d328 str r3, [r4]                                          |     *(r4) = r3;
    0x0001d32a mov.w r3, 0                                           |     r3 = 0;
    0x0001d32e mov r4, r1                                            |     r4 = r1;
                                                                     |     if (r5 > 1) {
    0x0001d330 bgt 0x1d3d4                                           |         goto label_4;
                                                                     |     }
                                                                     |     if (r5 == 1) {
    0x0001d332 bne 0x1d340                                           |         
    0x0001d334 ldr r3, [r0, 8]                                       |         r3 = *((r0 + 8));
    0x0001d336 ldr r6, [r3]                                          |         r6 = *(r3);
                                                                     |         if (r6 == 0) {
    0x0001d338 cbz r6, 0x1d340                                       |             goto label_0;
                                                                     |         }
    0x0001d33a ldrb r3, [r6]                                         |         r3 = *(r6);
    0x0001d33c cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0001d33e bne 0x1d3f2                                           |             goto label_5;
                                                                     |         }
                                                                     |     }
                                                                     | label_0:
    0x0001d340 ldr r1, [pc, 0x24c]                                   |     
    0x0001d342 ldr r0, [pc, 0x250]                                   |     
    0x0001d344 add r1, pc                                            |     r1 = 0x3a8d8;
    0x0001d346 add r0, pc                                            |     r0 = 0x3a8e0;
    0x0001d348 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001d34c mov r6, r0                                            |     r6 = r0;
    0x0001d34e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001d350 beq.w 0x1d564                                         |         goto label_6;
                                                                     |     }
                                                                     | label_3:
    0x0001d354 add r5, sp, 0xc                                       |     r5 += stream;
    0x0001d356 mov r2, r6                                            |     r2 = r6;
    0x0001d358 mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001d35c mov r0, r5                                            |     r0 = r5;
    0x0001d35e blx 0xbd2c                                            |     r0 = ferror (r0);
                                                                     |     if (r0 == 0) {
    0x0001d362 cbnz r0, 0x1d382                                      |         
    0x0001d364 ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0001d366 mov r2, r0                                            |         r2 = r0;
    0x0001d368 ldr r3, [pc, 0x22c]                                   |         
    0x0001d36a movs r5, 1                                            |         r5 = 1;
    0x0001d36c ldr r0, [pc, 0x22c]                                   |         
    0x0001d36e orr r1, r1, 0x20                                      |         r1 |= 0x20;
    0x0001d372 str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0001d374 add r3, pc                                            |         r3 = 0x3a910;
    0x0001d376 add r0, pc                                            |         r0 = 0x3a916;
    0x0001d378 movs r1, 0x7e                                         |         r1 = 0x7e;
    0x0001d37a bl 0x35d28                                            |         zbx_strdup2 ();
    0x0001d37e str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001d380 b 0x1d3a6                                             |         
                                                                     |     } else {
    0x0001d382 ldr r1, [pc, 0x21c]                                   |         
    0x0001d384 mov r0, r5                                            |         r0 = r5;
    0x0001d386 add r1, pc                                            |         r1 = 0x3a92c;
    0x0001d388 bl 0x3936c                                            |         zbx_rtrim ();
    0x0001d38c ldr r1, [r4, 0x28]                                    |         r1 = *((r4 + 0x28));
    0x0001d38e mov r3, r5                                            |         r3 = r5;
    0x0001d390 ldr r0, [pc, 0x210]                                   |         
    0x0001d392 movs r5, 0                                            |         r5 = 0;
    0x0001d394 movs r2, 0                                            |         r2 = 0;
    0x0001d396 orr r1, r1, 4                                         |         r1 |= 4;
    0x0001d39a str r1, [r4, 0x28]                                    |         *((r4 + 0x28)) = r1;
    0x0001d39c add r0, pc                                            |         r0 = 0x3a944;
    0x0001d39e movs r1, 0x7b                                         |         r1 = 0x7b;
    0x0001d3a0 bl 0x35d28                                            |         zbx_strdup2 ();
    0x0001d3a4 str r0, [r4, 0x18]                                    |         *((r4 + 0x18)) = r0;
                                                                     |     }
    0x0001d3a6 mov r0, r6                                            |     r0 = r6;
    0x0001d3a8 blx 0xc248                                            |     munmap (r0, r1);
                                                                     |     do {
                                                                     | label_2:
    0x0001d3ac ldr r2, [pc, 0x1f8]                                   |         
    0x0001d3ae add.w r1, sp, 0x1800                                  |         r1 += var_1800h;
    0x0001d3b2 ldr r3, [pc, 0x1d8]                                   |         r3 = *(0x1d58e);
    0x0001d3b4 adds r1, 0xc                                          |         r1 += 0xc;
    0x0001d3b6 add r2, pc                                            |         r2 = 0x3a962;
    0x0001d3b8 ldr r3, [r2, r3]                                      |         r3 = *(0x3a962);
    0x0001d3ba ldr r2, [r3]                                          |         r2 = *(0x3a962);
    0x0001d3bc ldr r3, [r1]                                          |         r3 = *(r1);
    0x0001d3be eors r2, r3                                           |         r2 ^= r3;
    0x0001d3c0 mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001d3c4 bne.w 0x1d560                                         |             goto label_7;
                                                                     |         }
    0x0001d3c8 mov r0, r5                                            |         r0 = r5;
    0x0001d3ca add.w sp, sp, 0x1800                                  |         
    0x0001d3ce add sp, 0x14                                          |         
    0x0001d3d0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_4:
    0x0001d3d4 ldr r0, [r1, 0x28]                                    |         r0 = *((r1 + 0x28));
    0x0001d3d6 movs r2, 0                                            |         r2 = 0;
    0x0001d3d8 ldr r3, [pc, 0x1d0]                                   |         
    0x0001d3da movs r1, 0x39                                         |         r1 = 0x39;
    0x0001d3dc movs r5, 1                                            |         r5 = 1;
    0x0001d3de orr r0, r0, 0x20                                      |         r0 |= 0x20;
    0x0001d3e2 str r0, [r4, 0x28]                                    |         *((r4 + 0x28)) = r0;
    0x0001d3e4 add r3, pc                                            |         r3 = 0x3a994;
    0x0001d3e6 ldr r0, [pc, 0x1c8]                                   |         
    0x0001d3e8 add r0, pc                                            |         r0 = 0x3a99e;
    0x0001d3ea bl 0x35d28                                            |         zbx_strdup2 ();
    0x0001d3ee str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0001d3f0 b 0x1d3ac                                             |         
                                                                     |     } while (1);
                                                                     | label_5:
    0x0001d3f2 ldr r1, [pc, 0x1c0]                                   |     
    0x0001d3f4 mov r0, r6                                            |     r0 = r6;
    0x0001d3f6 add r1, pc                                            |     r1 = 0x3a9b0;
    0x0001d3f8 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001d3fc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001d3fe beq 0x1d340                                           |         goto label_0;
                                                                     |     }
    0x0001d400 ldr r1, [pc, 0x1b4]                                   |     
    0x0001d402 mov r0, r6                                            |     r0 = r6;
    0x0001d404 add r1, pc                                            |     r1 = 0x3a9c0;
    0x0001d406 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001d40a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001d40c beq 0x1d4d2                                           |         goto label_8;
                                                                     |     }
    0x0001d40e ldr r1, [pc, 0x1ac]                                   |     
    0x0001d410 mov r0, r6                                            |     r0 = r6;
    0x0001d412 add r1, pc                                            |     r1 = 0x3a9d4;
    0x0001d414 blx 0xbc58                                            |     r0 = fcn_0000bc58 ();
    0x0001d418 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001d41a bne 0x1d508                                           |         goto label_9;
                                                                     |     }
    0x0001d41c ldr r1, [pc, 0x1a0]                                   |     
    0x0001d41e ldr r0, [pc, 0x1a4]                                   |     
    0x0001d420 add r1, pc                                            |     r1 = 0x3a9e4;
    0x0001d422 add r0, pc                                            |     r0 = 0x3a9ec;
    0x0001d424 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001d428 mov r7, r0                                            |     r7 = r0;
    0x0001d42a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001d42c beq 0x1d52a                                           |         goto label_10;
                                                                     |     }
    0x0001d42e ldr r3, [pc, 0x198]                                   |     
    0x0001d430 movw r8, 0x5250                                       |     r8 = (r8 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001d434 movw sl, 0x5954                                       |     sl = (sl & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001d438 add.w fp, sp, 0x810                                   |     
    0x0001d43c addw r6, sp, 0x80c                                    |     __asm ("addw r6, var_80ch");
    0x0001d440 movt r8, 0x5445                                       |     r8 = (r8 & 0xFFFF) | 0xNaN0000;
    0x0001d444 movt sl, 0x4e5f                                       |     sl = (sl & 0xFFFF) | 0xNaN0000;
    0x0001d448 add r3, pc                                            |     r3 = 0x3aa16;
    0x0001d44a str r3, [sp, 4]                                       |     var_4h_2 = r3;
                                                                     |     do {
                                                                     | label_1:
    0x0001d44c mov r2, r7                                            |         r2 = r7;
    0x0001d44e mov.w r1, 0x800                                       |         r1 = case.0x3207a.11;
    0x0001d452 mov r0, r6                                            |         r0 = r6;
    0x0001d454 blx 0xbd2c                                            |         r0 = ferror (r0);
    0x0001d458 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0001d45a beq 0x1d524                                           |             goto label_11;
                                                                     |         }
    0x0001d45c ldr r3, [r6]                                          |         r3 = *(r6);
    0x0001d45e cmp r3, r8                                            |         
    0x0001d460 bne 0x1d44c                                           |         
                                                                     |     } while (r3 != r8);
    0x0001d462 ldr.w r3, [fp]                                        |     r3 = *(fp);
    0x0001d466 cmp r3, sl                                            |     
                                                                     |     if (r3 != sl) {
    0x0001d468 bne 0x1d44c                                           |         goto label_1;
                                                                     |     }
    0x0001d46a ldrh.w r2, [sp, 0x814]                                |     r2 = var_814h;
    0x0001d46e movw r3, 0x4d41                                       |     r3 = (r3 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001d472 cmp r2, r3                                            |     
                                                                     |     if (r2 != r3) {
    0x0001d474 bne 0x1d44c                                           |         goto label_1;
                                                                     |     }
    0x0001d476 ldrb.w r3, [sp, 0x816]                                |     r3 = var_816h;
    0x0001d47a cmp r3, 0x45                                          |     
                                                                     |     if (r3 != 0x45) {
    0x0001d47c bne 0x1d44c                                           |         goto label_1;
                                                                     |     }
    0x0001d47e add.w sb, sp, 0xc                                     |     sb += stream;
    0x0001d482 ldr r1, [sp, 4]                                       |     r1 = var_4h_2;
    0x0001d484 mov r2, sb                                            |     r2 = sb;
    0x0001d486 mov r0, r6                                            |     r0 = r6;
    0x0001d488 blx 0xc178                                            |     r0 = fcn_0000c178 ();
    0x0001d48c cmp r0, 1                                             |     
                                                                     |     if (r0 == 1) {
    0x0001d48e beq 0x1d4a6                                           |         goto label_12;
                                                                     |     }
    0x0001d490 ldr r1, [pc, 0x138]                                   |     
    0x0001d492 add.w r3, sp, 0x1000                                  |     r3 += var_1000h;
    0x0001d496 adds r3, 0xc                                          |     r3 += 0xc;
    0x0001d498 mov r2, sb                                            |     r2 = sb;
    0x0001d49a mov r0, r6                                            |     r0 = r6;
    0x0001d49c add r1, pc                                            |     r1 = 0x3aa6c;
    0x0001d49e blx 0xc178                                            |     r0 = fcn_0000c178 ();
    0x0001d4a2 cmp r0, 1                                             |     
                                                                     |     if (r0 != 1) {
    0x0001d4a4 bne 0x1d44c                                           |         goto label_1;
                                                                     |     }
                                                                     | label_12:
    0x0001d4a6 mov r0, r7                                            |     r0 = r7;
    0x0001d4a8 movs r5, 0                                            |     r5 = 0;
    0x0001d4aa blx 0xc248                                            |     munmap (r0, r1);
    0x0001d4ae ldr r1, [pc, 0x120]                                   |     
    0x0001d4b0 mov r0, sb                                            |     r0 = sb;
    0x0001d4b2 add r1, pc                                            |     r1 = 0x3aa88;
    0x0001d4b4 bl 0x3936c                                            |     zbx_rtrim ();
    0x0001d4b8 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0001d4ba mov r3, sb                                            |     r3 = sb;
    0x0001d4bc ldr r0, [pc, 0x114]                                   |     
    0x0001d4be movs r2, 0                                            |     r2 = 0;
    0x0001d4c0 orr r1, r1, 4                                         |     r1 |= 4;
    0x0001d4c4 str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001d4c6 add r0, pc                                            |     r0 = 0x3aa9e;
    0x0001d4c8 movs r1, 0x7b                                         |     r1 = 0x7b;
    0x0001d4ca bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001d4cc stc2 p1, c6, [sp], -0x280                             |     __asm ("stc2 p1, c6, [sp], -case.0x3207a.11");
    0x0001d4d0 b 0x1d3ac                                             |     goto label_2;
                                                                     | label_8:
    0x0001d4d2 ldr r1, [pc, 0x104]                                   |     
    0x0001d4d4 ldr r0, [pc, 0x104]                                   |     
    0x0001d4d6 add r1, pc                                            |     r1 = 0x3aab4;
    0x0001d4d8 add r0, pc                                            |     r0 = 0x3aab8;
    0x0001d4da blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001d4de mov r6, r0                                            |     r6 = r0;
    0x0001d4e0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001d4e2 bne.w 0x1d354                                         |         goto label_3;
                                                                     |     }
    0x0001d4e6 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001d4e8 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d4ec str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001d4ee blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001d4f2 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001d4f4 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001d4f8 ldr r1, [pc, 0xe4]                                    |     
    0x0001d4fa mov r2, r0                                            |     r2 = r0;
    0x0001d4fc mov r0, r6                                            |     r0 = r6;
    0x0001d4fe add r1, pc                                            |     r1 = 0x3aae2;
    0x0001d500 bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001d504 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001d506 b 0x1d3ac                                             |     goto label_2;
                                                                     | label_9:
    0x0001d508 ldr r1, [r4, 0x28]                                    |     r1 = *((r4 + 0x28));
    0x0001d50a movs r2, 0                                            |     r2 = 0;
    0x0001d50c ldr r3, [pc, 0xd4]                                    |     
    0x0001d50e ldr r0, [pc, 0xd8]                                    |     
    0x0001d510 orr r1, r1, 0x20                                      |     r1 |= 0x20;
    0x0001d514 str r1, [r4, 0x28]                                    |     *((r4 + 0x28)) = r1;
    0x0001d516 add r3, pc                                            |     r3 = 0x3aafe;
    0x0001d518 add r0, pc                                            |     r0 = 0x3ab06;
    0x0001d51a movs r1, 0x73                                         |     r1 = 0x73;
    0x0001d51c bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001d520 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001d522 b 0x1d3ac                                             |     goto label_2;
                                                                     | label_11:
    0x0001d524 mov r0, r7                                            |     r0 = r7;
    0x0001d526 blx 0xc248                                            |     munmap (r0, r1);
                                                                     | label_10:
    0x0001d52a ldr r1, [pc, 0xc0]                                    |     
    0x0001d52c ldr r0, [pc, 0xc0]                                    |     
    0x0001d52e add r1, pc                                            |     r1 = 0x3ab20;
    0x0001d530 add r0, pc                                            |     r0 = 0x3ab24;
    0x0001d532 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001d536 mov r6, r0                                            |     r6 = r0;
    0x0001d538 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001d53a bne.w 0x1d354                                         |         goto label_3;
                                                                     |     }
    0x0001d53e ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001d540 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d544 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001d546 blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001d54a ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001d54c bl 0x26fdc                                            |     zbx_strerror ();
    0x0001d550 ldr r1, [pc, 0xa0]                                    |     
    0x0001d552 mov r2, r0                                            |     r2 = r0;
    0x0001d554 mov r0, r6                                            |     r0 = r6;
    0x0001d556 add r1, pc                                            |     r1 = 0x3ab4e;
    0x0001d558 bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001d55c str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001d55e b 0x1d3ac                                             |     goto label_2;
                                                                     | label_7:
    0x0001d560 blx 0xbe48                                            |     fcn_0000be48 ();
                                                                     | label_6:
    0x0001d564 ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0001d566 movs r5, 1                                            |     r5 = 1;
    0x0001d568 orr r3, r3, 0x20                                      |     r3 |= 0x20;
    0x0001d56c str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0001d56e blx 0xc15c                                            |     r0 = fcn_0000c15c ();
    0x0001d572 ldr r0, [r0]                                          |     r0 = *(r0);
    0x0001d574 bl 0x26fdc                                            |     zbx_strerror ();
    0x0001d578 ldr r1, [pc, 0x7c]                                    |     
    0x0001d57a mov r2, r0                                            |     r2 = r0;
    0x0001d57c mov r0, r6                                            |     r0 = r6;
    0x0001d57e add r1, pc                                            |     r1 = 0x3ab7a;
    0x0001d580 bl 0x396b0                                            |     zbx_dsprintf ()
    0x0001d584 str r0, [r4, 0x20]                                    |     *((r4 + 0x20)) = r0;
    0x0001d586 b 0x1d3ac                                             |     goto label_2;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1d9ac */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.SYSTEM_UNAME ()              | void SYSTEM_UNAME (int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     int16_t var_8h;
                                             |     int16_t var_14h;
                                             |     int32_t var_0h_2;
                                             |     int16_t var_55h;
                                             |     int16_t var_96h;
                                             |     int16_t var_d7h;
                                             |     int16_t var_118h;
                                             |     int16_t var_19ch;
                                             |     r1 = arg2;
    0x0001d9ac ldr r2, [pc, 0x8c]            |     
    0x0001d9ae ldr r3, [pc, 0x90]            |     r3 = *(0x1da42);
    0x0001d9b0 push {r4, r5, lr}             |     
    0x0001d9b2 sub sp, 0x1a4                 |     
    0x0001d9b4 add r2, pc                    |     r2 = 0x3b3f4;
    0x0001d9b6 add r5, sp, 0x14              |     r5 += var_14h;
    0x0001d9b8 mov r0, r5                    |     r0 = r5;
    0x0001d9ba mov r4, r1                    |     r4 = r1;
    0x0001d9bc ldr r3, [r2, r3]              |     
    0x0001d9be ldr r3, [r3]                  |     r3 = *(0x3b3f4);
    0x0001d9c0 str r3, [sp, 0x19c]           |     var_19ch = r3;
    0x0001d9c2 mov.w r3, 0                   |     r3 = 0;
    0x0001d9c6 blx 0xbe0c                    |     fcn_0000be0c ();
    0x0001d9ca adds r0, 1                    |     r0++;
                                             |     if (r0 == 1) {
    0x0001d9cc beq 0x1da14                   |         goto label_0;
                                             |     }
    0x0001d9ce ldr r0, [r4, 0x28]            |     r0 = *((r4 + 0x28));
    0x0001d9d0 add r3, sp, 0x118             |     r3 += var_118h;
    0x0001d9d2 ldr r1, [pc, 0x70]            |     
    0x0001d9d4 mov r2, r5                    |     r2 = r5;
    0x0001d9d6 str r3, [sp, 8]               |     var_8h = r3;
    0x0001d9d8 add.w r3, sp, 0xd7            |     r3 += var_d7h;
    0x0001d9dc orr r0, r0, 4                 |     r0 |= 4;
    0x0001d9e0 str r3, [sp, 4]               |     var_4h = r3;
    0x0001d9e2 str r0, [r4, 0x28]            |     *((r4 + 0x28)) = r0;
    0x0001d9e4 add.w r0, sp, 0x96            |     r0 += var_96h;
    0x0001d9e8 add.w r3, sp, 0x55            |     r3 += var_55h;
    0x0001d9ec str r0, [sp]                  |     *(sp) = r0;
    0x0001d9ee add r1, pc                    |     r1 = 0x3b438;
    0x0001d9f0 movs r0, 0                    |     r0 = 0;
    0x0001d9f2 bl 0x396b0                    |     zbx_dsprintf ()
    0x0001d9f6 movs r3, 0                    |     r3 = 0;
    0x0001d9f8 str r0, [r4, 0x18]            |     *((r4 + 0x18)) = r0;
                                             |     do {
    0x0001d9fa ldr r1, [pc, 0x4c]            |         
    0x0001d9fc ldr r2, [pc, 0x40]            |         r2 = *(0x1da40);
    0x0001d9fe add r1, pc                    |         r1 = 0x3b44c;
    0x0001da00 ldr r2, [r1, r2]              |         r2 = *(0x3b44c);
    0x0001da02 ldr r1, [r2]                  |         r1 = *(0x3b44c);
    0x0001da04 ldr r2, [sp, 0x19c]           |         r2 = var_19ch;
    0x0001da06 eors r1, r2                   |         r1 ^= r2;
    0x0001da08 mov.w r2, 0                   |         r2 = 0;
                                             |         if (r1 != r2) {
    0x0001da0c bne 0x1da38                   |             goto label_1;
                                             |         }
    0x0001da0e mov r0, r3                    |         r0 = r3;
    0x0001da10 add sp, 0x1a4                 |         
    0x0001da12 pop {r4, r5, pc}              |         
                                             | label_0:
    0x0001da14 ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x0001da16 orr r3, r3, 0x20              |         r3 |= 0x20;
    0x0001da1a str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x0001da1c blx 0xc15c                    |         r0 = fcn_0000c15c ();
    0x0001da20 ldr r0, [r0]                  |         r0 = *(r0);
    0x0001da22 bl 0x26fdc                    |         zbx_strerror ();
    0x0001da24 invalid                       |         
    0x0001da28 mov r2, r0                    |         r2 = r0;
    0x0001da2a movs r0, 0                    |         r0 = 0;
    0x0001da2c add r1, pc                    |         r1 += pc;
    0x0001da2e bl 0x396b0                    |         zbx_dsprintf ()
    0x0001da32 movs r3, 1                    |         r3 = 1;
    0x0001da34 str r0, [r4, 0x20]            |         *((r4 + 0x20)) = r0;
    0x0001da36 b 0x1d9fa                     |         
                                             |     } while (1);
                                             | label_1:
    0x0001da38 blx 0xbe48                    |     fcn_0000be48 ();
    0x0001da3c invalid                       |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1e344 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.SYSTEM_UPTIME ()             | void SYSTEM_UPTIME (int16_t arg_804h, int16_t arg2) {
                                             |     int16_t var_4h;
                                             |     int16_t var_44h;
                                             |     r1 = arg2;
    0x0001e344 blmi 0x730bb8                 |     __asm ("blmi aav.0x0003e8a0");
    0x0001e348 push {r4, lr}                 |     
    0x0001e34a sub sp, 0x48                  |     
    0x0001e34c add r2, pc                    |     r2 += pc;
    0x0001e34e add r0, sp, 4                 |     r0 += var_4h;
    0x0001e350 mov r4, r1                    |     r4 = r1;
    0x0001e352 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x0001e354 ldr r3, [r3]                  |     r3 = *(r3);
    0x0001e356 str r3, [sp, 0x44]            |     var_44h = r3;
    0x0001e358 mov.w r3, 0                   |     r3 = 0;
    0x0001e35c blx 0xc018                    |     r0 = fcn_0000c018 ();
                                             |     if (r0 != 0) {
    0x0001e360 cbnz r0, 0x1e38a              |         goto label_0;
                                             |     }
    0x0001e362 ldr r3, [sp, 4]               |     r3 = var_4h;
    0x0001e364 ldr r2, [r4, 0x28]            |     r2 = *((r4 + 0x28));
    0x0001e366 str r3, [r4, 8]               |     *((r4 + 8)) = r3;
    0x0001e368 asrs r3, r3, 0x1f             |     r3 >>= 0x1f;
    0x0001e36a orr r2, r2, 1                 |     r2 |= 1;
    0x0001e36e str r2, [r4, 0x28]            |     *((r4 + 0x28)) = r2;
    0x0001e370 str r3, [r4, 0xc]             |     *((r4 + 0xc)) = r3;
                                             |     do {
    0x0001e372 ldr r2, [pc, 0x48]            |         
    0x0001e374 ldr r3, [pc, 0x40]            |         r3 = *(0x1e3b8);
    0x0001e376 add r2, pc                    |         r2 = 0x3c738;
    0x0001e378 ldr r3, [r2, r3]              |         r3 = *(0x3c738);
    0x0001e37a ldr r2, [r3]                  |         r2 = *(0x3c738);
    0x0001e37c ldr r3, [sp, 0x44]            |         r3 = var_44h;
    0x0001e37e eors r2, r3                   |         r2 ^= r3;
    0x0001e380 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0001e384 bne 0x1e3b0                   |             goto label_1;
                                             |         }
    0x0001e386 add sp, 0x48                  |         
    0x0001e388 pop {r4, pc}                  |         
                                             | label_0:
    0x0001e38a ldr r3, [r4, 0x28]            |         r3 = *((r4 + 0x28));
    0x0001e38c orr r3, r3, 0x20              |         r3 |= 0x20;
    0x0001e390 str r3, [r4, 0x28]            |         *((r4 + 0x28)) = r3;
    0x0001e392 blx 0xc15c                    |         r0 = fcn_0000c15c ();
    0x0001e396 ldr r0, [r0]                  |         r0 = *(r0);
    0x0001e398 bl 0x26fdc                    |         zbx_strerror ();
    0x0001e39c ldr r1, [pc, 0x20]            |         
    0x0001e39e mov r2, r0                    |         r2 = r0;
    0x0001e3a0 movs r0, 0                    |         r0 = 0;
    0x0001e3a2 add r1, pc                    |         r1 = 0x3c766;
    0x0001e3a4 bl 0x396b0                    |         r0 = zbx_dsprintf ()
    0x0001e3a8 mov r3, r0                    |         r3 = r0;
    0x0001e3aa movs r0, 1                    |         r0 = 1;
    0x0001e3ac str r3, [r4, 0x20]            |         *((r4 + 0x20)) = r3;
    0x0001e3ae b 0x1e372                     |         
                                             |     } while (1);
                                             | label_1:
    0x0001e3b0 blx 0xbe48                    |     r0 = fcn_0000be48 ();
    0x0001e3b4 stm.w r0!, {r0, r1}           |     *(r0!) = r0;
                                             |     *((r0! + 4)) = r1;
    0x0001e3b8 lsls r4, r2, 0xc              |     r4 = r2 << 0xc;
    0x0001e3ba movs r0, r0                   |     
    0x0001e3bc ldrd r0, r0, [r6], -0xc       |     __asm ("ldrd r0, r0, [r6], -0xc");
    0x0001e3c0 strb r2, [r3, 0xc]            |     *((r3 + 0xc)) = r2;
    0x0001e3c2 movs r2, r0                   |     r2 = r0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x247f0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_CKSUM ()                                | void VFS_FILE_CKSUM (int16_t arg_4000h_2, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_28h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000247f0 blmi 0x1f371e4                                    |     __asm ("blmi 0x1f371e4");
    0x000247f4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000247f8 mov r6, r1                                        |     r6 = r1;
    0x000247fa vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000247fe add r2, pc                                        |     r2 += pc;
    0x00024800 sub.w sp, sp, 0x4000                              |     
    0x00024804 mov r4, r0                                        |     r4 = r0;
    0x00024806 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00024808 sub sp, 0x14                                      |     
    0x0002480a add.w r1, sp, 0x4000                              |     r1 += arg_4000h_2;
    0x0002480e ldr r5, [pc, 0x1d8]                               |     
    0x00024810 adds r1, 0xc                                      |     r1 += 0xc;
    0x00024812 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00024814 str r3, [r1]                                      |     *(r1) = r3;
    0x00024816 mov.w r3, 0                                       |     r3 = 0;
    0x0002481a bl 0x34f20                                        |     zbx_time ();
    0x0002481c invalid                                           |     
    0x00024820 strh r4, [r0]                                     |     *(r0) = r4;
    0x00024822 add r5, pc                                        |     r5 = 0x49210;
    0x00024824 cmp.w r8, 1                                       |     
                                                                 |     if (r8 > 1) {
    0x00024828 bgt 0x24884                                       |         goto label_3;
                                                                 |     }
                                                                 |     if (r8 == 1) {
    0x0002482a bne 0x24838                                       |         
    0x0002482c ldr r3, [r4, 8]                                   |         r3 = *((r4 + 8));
    0x0002482e ldr r0, [r3]                                      |         r0 = *(r3);
                                                                 |         if (r0 == 0) {
    0x00024830 cbz r0, 0x24838                                   |             goto label_4;
                                                                 |         }
    0x00024832 ldrb r3, [r0]                                     |         r3 = *(r0);
    0x00024834 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024836 bne 0x248a6                                       |             goto label_5;
                                                                 |         }
                                                                 |     }
                                                                 | label_4:
    0x00024838 ldr r0, [r6, 0x28]                                |     r0 = *((r6 + 0x28));
    0x0002483a mov.w r8, 1                                       |     r8 = 1;
    0x0002483e ldr r3, [pc, 0x1ac]                               |     
    0x00024840 movs r2, 0                                        |     r2 = 0;
    0x00024842 movw r1, 0x317                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024846 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002484a str r0, [r6, 0x28]                                |     *((r6 + 0x28)) = r0;
    0x0002484c add r3, pc                                        |     r3 = 0x4923e;
    0x0002484e ldr r0, [pc, 0x1a0]                               |     
    0x00024850 add r0, pc                                        |     r0 = 0x49246;
    0x00024852 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024856 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_1:
    0x00024858 ldr r2, [pc, 0x198]                               |         
    0x0002485a add.w r1, sp, 0x4000                              |         r1 += arg_4000h_2;
    0x0002485e ldr r3, [pc, 0x184]                               |         r3 = *(0x249e6);
    0x00024860 adds r1, 0xc                                      |         r1 += 0xc;
    0x00024862 add r2, pc                                        |         r2 = 0x4925a;
    0x00024864 ldr r3, [r2, r3]                                  |         r3 = *(0x4925a);
    0x00024866 ldr r2, [r3]                                      |         r2 = *(0x4925a);
    0x00024868 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0002486a eors r2, r3                                       |         r2 ^= r3;
    0x0002486c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00024870 bne.w 0x249dc                                     |             goto label_6;
                                                                 |         }
    0x00024874 mov r0, r8                                        |         r0 = r8;
    0x00024876 add.w sp, sp, 0x4000                              |         
    0x0002487a add sp, 0x14                                      |         
    0x0002487c vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x00024880 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00024884 ldr r0, [r6, 0x28]                                |         r0 = *((r6 + 0x28));
    0x00024886 movs r2, 0                                        |         r2 = 0;
    0x00024888 ldr r3, [pc, 0x16c]                               |         
    0x0002488a movw r1, 0x30f                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002488e mov.w r8, 1                                       |         r8 = 1;
    0x00024892 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00024896 str r0, [r6, 0x28]                                |         *((r6 + 0x28)) = r0;
    0x00024898 add r3, pc                                        |         r3 = "cannot create socket [[%s]:%hu]: %s";
    0x0002489a ldr r0, [pc, 0x160]                               |         
    0x0002489c add r0, pc                                        |         r0 = 0x4929e;
    0x0002489e bl 0x35d28                                        |         zbx_strdup2 ();
    0x000248a2 str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x000248a4 b 0x24858                                         |         
                                                                 |     } while (1);
                                                                 | label_5:
    0x000248a6 movs r1, 0                                        |     r1 = 0;
    0x000248a8 vmov.f64 d9, d0                                   |     __asm ("vmov.f64 d9, d0");
    0x000248ac blx 0xbfe4                                        |     r0 = puts (r0);
    0x000248b0 cmp.w r0, -1                                      |     
    0x000248b4 mov sb, r0                                        |     sb = r0;
                                                                 |     if (r0 == -1) {
    0x000248b6 beq 0x24980                                       |         goto label_7;
                                                                 |     }
    0x000248b8 ldr r3, [pc, 0x144]                               |     r3 = *(0x24a00);
    0x000248ba ldr.w sl, [r5, r3]                                |     sl = *((r5 + r3));
    0x000248be vldr s15, [sl]                                    |     __asm ("vldr s15, [sl]");
    0x000248c2 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x000248c6 bl 0x34f20                                        |     zbx_time ();
    0x000248ca vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x000248ce vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x000248d2 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < -1) {
    0x000248d6 bmi 0x249a2                                       |         goto label_8;
                                                                 |     }
    0x000248d8 ldr r5, [pc, 0x128]                               |     
    0x000248da movs r7, 0                                        |     r7 = 0;
    0x000248dc mov r4, r7                                        |     r4 = r7;
    0x000248de add.w fp, sp, 0xc                                 |     
    0x000248e2 add r5, pc                                        |     r5 = 0x492ea;
                                                                 | label_0:
    0x000248e4 mov.w r2, 0x4000                                  |     r2 = case.0x3207a.11;
    0x000248e8 mov r1, fp                                        |     r1 = fp;
    0x000248ea mov r0, sb                                        |     r0 = sb;
    0x000248ec blx 0xbcac                                        |     r0 = fcn_0000bcac ();
    0x000248f0 cmp r0, 0                                         |     
                                                                 |     if (r0 <= 0) {
    0x000248f2 ble 0x2492e                                       |         goto label_9;
                                                                 |     }
    0x000248f4 vldr s15, [sl]                                    |     __asm ("vldr s15, [sl]");
    0x000248f8 str r0, [sp, 4]                                   |     var_28h = r0;
    0x000248fa vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x000248fe bl 0x34f20                                        |     zbx_time ();
    0x00024902 vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00024906 ldr r0, [sp, 4]                                   |     r0 = var_28h;
    0x00024908 vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x0002490c vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 0) {
    0x00024910 bmi 0x24962                                       |         goto label_10;
                                                                 |     }
    0x00024912 add r7, r0                                        |     r7 += r0;
    0x00024914 mov r2, fp                                        |     r2 = fp;
    0x00024916 add r0, fp                                        |     r0 += fp;
                                                                 |     do {
    0x00024918 ldrb r3, [r2], 1                                  |         r3 = *(r2);
                                                                 |         r2++;
    0x0002491c cmp r0, r2                                        |         
    0x0002491e eor.w r3, r3, r4, lsr 24                          |         r3 ^= (r4 >> 24);
    0x00024922 ldr.w r3, [r5, r3, lsl 2]                         |         offset_0 = r3 << 2;
                                                                 |         r3 = *((r5 + offset_0));
    0x00024924 adds r0, 0x23                                     |         r0 += 0x23;
    0x00024926 eor.w r4, r3, r4, lsl 8                           |         r4 = r3 ^ (r4 << 8);
    0x0002492a bne 0x24918                                       |         
                                                                 |     } while (r0 != 0x23);
    0x0002492c b 0x248e4                                         |     goto label_0;
                                                                 | label_9:
    0x0002492e ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
                                                                 |     if (r0 != 0x23) {
    0x00024930 bne 0x249c0                                       |         goto label_11;
                                                                 |     }
                                                                 |     if (r7 == 0) {
    0x00024932 cbz r7, 0x2494a                                   |         goto label_12;
                                                                 |     }
    0x00024934 ldr r2, [pc, 0xd0]                                |     
    0x00024936 add r2, pc                                        |     r2 = 0x49342;
                                                                 |     do {
    0x00024938 eor.w r3, r7, r4, lsr 24                          |         r3 = r7 ^ (r4 >> 24);
    0x0002493c lsrs r7, r7, 8                                    |         r7 >>= 8;
    0x0002493e uxtb r3, r3                                       |         r3 = (int8_t) r3;
    0x00024940 ldr.w r3, [r2, r3, lsl 2]                         |         offset_1 = r3 << 2;
                                                                 |         r3 = *((r2 + offset_1));
    0x00024944 eor.w r4, r3, r4, lsl 8                           |         r4 = r3 ^ (r4 << 8);
    0x00024948 bne 0x24938                                       |         
                                                                 |     } while (r7 != r7);
                                                                 | label_12:
    0x0002494a mov r8, r0                                        |     r8 = r0;
    0x0002494c orr r1, r1, 1                                     |     r1 |= 1;
    0x00024950 mvns r4, r4                                       |     r4 = ~r4;
    0x00024952 movs r3, 0                                        |     r3 = 0;
    0x00024954 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x00024956 strd r4, r3, [r6, 8]                              |     __asm ("strd r4, r3, [r6, 8]");
                                                                 |     do {
                                                                 | label_2:
    0x0002495a mov r0, sb                                        |         r0 = sb;
    0x0002495c blx 0xc47c                                        |         fcn_0000c47c ();
    0x00024960 b 0x24858                                         |         goto label_1;
                                                                 | label_10:
    0x00024962 ldr r2, [r6, 0x28]                                |         r2 = *((r6 + 0x28));
    0x00024964 movw r1, 0x32d                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024968 ldr r3, [pc, 0xa0]                                |         
    0x0002496a ldr r0, [pc, 0xa4]                                |         
    0x0002496c orr r2, r2, 0x20                                  |         r2 |= 0x20;
    0x00024970 str r2, [r6, 0x28]                                |         *((r6 + 0x28)) = r2;
    0x00024972 add r3, pc                                        |         r3 = 0x49382;
    0x00024974 add r0, pc                                        |         r0 = 0x4938a;
    0x00024976 movs r2, 0                                        |         r2 = 0;
    0x00024978 bl 0x35d28                                        |         zbx_strdup2 ();
    0x0002497c str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x0002497e b 0x2495a                                         |         
                                                                 |     } while (1);
                                                                 | label_7:
    0x00024980 ldr r3, [r6, 0x28]                                |     r3 = *((r6 + 0x28));
    0x00024982 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00024986 str r3, [r6, 0x28]                                |     *((r6 + 0x28)) = r3;
    0x00024988 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002498c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002498e bl 0x26fdc                                        |     zbx_strerror ();
    0x00024992 ldr r1, [pc, 0x80]                                |     
    0x00024994 mov r2, r0                                        |     r2 = r0;
    0x00024996 movs r0, 0                                        |     r0 = 0;
    0x00024998 add r1, pc                                        |     r1 = 0x493b2;
    0x0002499a bl 0x396b0                                        |     zbx_dsprintf ()
    0x0002499e str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000249a0 b 0x24858                                         |     goto label_1;
                                                                 | label_8:
    0x000249a2 ldr r2, [r6, 0x28]                                |     r2 = *((r6 + 0x28));
    0x000249a4 movw r1, 0x323                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000249a8 ldr r3, [pc, 0x6c]                                |     
    0x000249aa ldr r0, [pc, 0x70]                                |     
    0x000249ac orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x000249b0 str r2, [r6, 0x28]                                |     *((r6 + 0x28)) = r2;
    0x000249b2 add r3, pc                                        |     r3 = 0x493ce;
    0x000249b4 add r0, pc                                        |     r0 = 0x493d6;
    0x000249b6 movs r2, 0                                        |     r2 = 0;
    0x000249b8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000249bc str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000249be b 0x2495a                                         |     goto label_2;
                                                                 | label_11:
    0x000249c0 ldr r3, [pc, 0x5c]                                |     
    0x000249c2 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000249c6 ldr r0, [pc, 0x5c]                                |     
    0x000249c8 movs r2, 0                                        |     r2 = 0;
    0x000249ca str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x000249cc movw r1, 0x339                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000249d0 add r3, pc                                        |     r3 = 0x493f4;
    0x000249d2 add r0, pc                                        |     r0 = "socket() for [[%s]:%s] failed: %s";
    0x000249d4 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000249d8 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000249da b 0x2495a                                         |     goto label_2;
                                                                 | label_6:
    0x000249dc blx 0xbe48                                        |     fcn_0000be48 ();
    0x000249e0 strh r6, [r5, 0x1e]                               |     *((r5 + 0x1e)) = r6;
    0x000249e2 movs r3, r0                                       |     r3 = r0;
    0x000249e4 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000249e6 movs r0, r0                                       |     
    0x000249e8 strh r2, [r1, 0x1e]                               |     *((r1 + 0x1e)) = r2;
    0x000249ea movs r3, r0                                       |     r3 = r0;
    0x000249ec lsls r0, r3, 6                                    |     r0 = r3 << 6;
    0x000249ee movs r2, r0                                       |     r2 = r0;
    0x000249f0 cmp r2, 0xcc                                      |     
    0x000249f2 movs r2, r0                                       |     r2 = r0;
    0x000249f4 strh r2, [r1, 0x1c]                               |     *((r1 + 0x1c)) = r2;
    0x000249f6 movs r3, r0                                       |     r3 = r0;
    0x000249f8 lsls r4, r6, 4                                    |     r4 = r6 << 4;
    0x000249fa movs r2, r0                                       |     r2 = r0;
    0x000249fc cmp r2, 0x80                                      |     
    0x000249fe movs r2, r0                                       |     r2 = r0;
    0x00024a00 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x00024a02 movs r0, r0                                       |     
    0x00024a04 cmp r3, 0x32                                      |     
    0x00024a06 movs r2, r0                                       |     r2 = r0;
    0x00024a08 cmp r2, 0xde                                      |     
    0x00024a0a movs r2, r0                                       |     r2 = r0;
    0x00024a0c cmp r1, 0xfe                                      |     
    0x00024a0e movs r2, r0                                       |     r2 = r0;
    0x00024a10 cmp r1, 0xa8                                      |     
    0x00024a12 movs r2, r0                                       |     r2 = r0;
    0x00024a14 cmp r1, 0xc0                                      |     
    0x00024a16 movs r2, r0                                       |     r2 = r0;
    0x00024a18 cmp r1, 0xbe                                      |     
    0x00024a1a movs r2, r0                                       |     r2 = r0;
    0x00024a1c cmp r1, 0x68                                      |     
    0x00024a1e movs r2, r0                                       |     r2 = r0;
    0x00024a20 adds r0, r2, r0                                   |     r0 = r2 + r0;
    0x00024a22 movs r2, r0                                       |     r2 = r0;
    0x00024a24 cmp r1, 0x4a                                      |     
    0x00024a26 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x239bc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_CONTENTS ()                             | void VFS_FILE_CONTENTS (int16_t arg_290h, int16_t arg_3c0h, int16_t arg_10000h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b0h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000239bc blmi 0xff636520                                   |     __asm ("blmi 0xff636520");
    0x000239c0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000239c4 mov r7, r0                                        |     r7 = r0;
    0x000239c6 vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000239ca add r2, pc                                        |     r2 += pc;
    0x000239cc sub.w sp, sp, 0x10000                             |     
    0x000239d0 movs r6, 0                                        |     r6 = 0;
    0x000239d2 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000239d4 sub sp, 0xb4                                      |     
    0x000239d6 add.w r0, sp, 0x10000                             |     r0 += arg_10000h;
    0x000239d8 adds r0, 0x80                                     |     r0 += 0x80;
    0x000239da add r4, sp, 0xb0                                  |     r4 += var_b0h;
    0x000239dc adds r0, 0xac                                     |     r0 += 0xac;
    0x000239de mov r5, r1                                        |     r5 = r1;
    0x000239e0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000239e2 str r3, [r0]                                      |     *(r0) = r3;
    0x000239e4 mov.w r3, 0                                       |     r3 = 0;
    0x000239e8 strd r6, r6, [r4, -0x9c]                          |     __asm ("strd r6, r6, [r4, -0x9c]");
    0x000239ec str r6, [r4, -0x94]                               |     *((r4 - 0x94)) = r6;
    0x000239f0 bl 0x34f20                                        |     zbx_time ();
    0x000239f4 ldr r3, [r7, 4]                                   |     r3 = *((r7 + 4));
    0x000239f6 ldr.w r8, [pc, 0x32c]                             |     
    0x000239fa cmp r3, 2                                         |     
    0x000239fc add r8, pc                                        |     r8 = 0x47726;
                                                                 |     if (r3 > 2) {
    0x000239fe bgt.w 0x23b66                                     |         goto label_9;
                                                                 |     }
    0x00023a02 cmp r3, 0                                         |     
    0x00023a04 vmov.f64 d9, d0                                   |     __asm ("vmov.f64 d9, d0");
    0x00023a08 itt gt                                            |     
                                                                 |     if (r3 <= 0) {
    0x00023a0a ldrgt r2, [r7, 8]                                 |         r2 = *((r7 + 8));
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00023a0c ldrgt r6, [r2]                                    |         r6 = *(r2);
                                                                 |     }
    0x00023a0e cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x00023a10 beq.w 0x23b50                                     |         goto label_10;
                                                                 |     }
                                                                 | label_1:
    0x00023a14 movs r3, 0                                        |     r3 = 0;
    0x00023a16 strb r3, [r4, -0x24]                              |     *((r4 - 0x24)) = r3;
                                                                 |     if (r6 != 0) {
                                                                 | label_2:
    0x00023a1a cbz r6, 0x23a20                                   |         
    0x00023a1c ldrb r3, [r6]                                     |         r3 = *(r6);
                                                                 |         if (r3 != 0) {
    0x00023a1e cbnz r3, 0x23a6a                                  |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x00023a20 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00023a22 movs r6, 1                                        |     r6 = 1;
    0x00023a24 ldr r3, [pc, 0x300]                               |     
    0x00023a26 movs r2, 0                                        |     r2 = 0;
    0x00023a28 movw r1, 0x139                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023a2c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023a30 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00023a32 add r3, pc                                        |     r3 = 0x4775e;
    0x00023a34 ldr r0, [pc, 0x2f4]                               |     
    0x00023a36 add r0, pc                                        |     r0 = 0x47766;
    0x00023a38 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023a3c str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 | label_3:
    0x00023a3e ldr r2, [pc, 0x2f0]                               |     
    0x00023a40 add.w r1, sp, 0x10000                             |     r1 += arg_10000h;
    0x00023a44 ldr r3, [pc, 0x2d8]                               |     r3 = *(0x23d20);
    0x00023a46 adds r1, 0xac                                     |     r1 += 0xac;
    0x00023a48 add r2, pc                                        |     r2 = 0x4777e;
    0x00023a4a ldr r3, [r2, r3]                                  |     r3 = *(0x4777e);
    0x00023a4c ldr r2, [r3]                                      |     r2 = *(0x4777e);
    0x00023a4e ldr r3, [r1]                                      |     r3 = *(r1);
    0x00023a50 eors r2, r3                                       |     r2 ^= r3;
    0x00023a52 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00023a56 bne.w 0x23d16                                     |         goto label_12;
                                                                 |     }
    0x00023a5a mov r0, r6                                        |     r0 = r6;
    0x00023a5c add.w sp, sp, 0x10000                             |     
    0x00023a60 add sp, 0xb4                                      |     
    0x00023a62 vpop {d8, d9}                                     |     __asm ("vpop {d8, d9}");
    0x00023a66 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x00023a6a movs r1, 0                                        |     r1 = 0;
    0x00023a6c mov r0, r6                                        |     r0 = r6;
    0x00023a6e blx 0xbfe4                                        |     r0 = puts (r0);
    0x00023a72 adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00023a74 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r3 == r0) {
    0x00023a76 beq.w 0x23bac                                     |         goto label_13;
                                                                 |     }
    0x00023a7a ldr r3, [pc, 0x2b8]                               |     r3 = *(0x23d36);
    0x00023a7c ldr.w fp, [r8, r3]                                |     fp = *((r8 + r3));
    0x00023a80 vldr s15, [fp]                                    |     __asm ("vldr s15, [fp]");
    0x00023a84 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x00023a88 bl 0x34f20                                        |     zbx_time ();
    0x00023a8c vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00023a90 vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x00023a94 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 < r0) {
    0x00023a98 bmi 0x23b86                                       |         goto label_14;
                                                                 |     }
    0x00023a9a sub.w r1, r4, 0x90                                |     r1 = r4 - 0x90;
    0x00023a9e mov r0, r7                                        |     r0 = r7;
    0x00023aa0 blx 0xc40c                                        |     r0 = fcn_0000c40c ();
    0x00023aa4 mov r6, r0                                        |     r6 = r0;
    0x00023aa6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00023aa8 bne.w 0x23bf0                                     |         goto label_15;
                                                                 |     }
    0x00023aac ldrd r2, r3, [r4, -0x60]                          |     __asm ("ldrd r2, r3, [r4, -0x60]");
    0x00023ab0 cmp.w r2, 0x10001                                 |     
    0x00023ab4 sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
                                                                 |     if (r2 >= 0x10001) {
    0x00023ab8 bge.w 0x23bd0                                     |         goto label_16;
                                                                 |     }
    0x00023abc vldr s15, [fp]                                    |     __asm ("vldr s15, [fp]");
    0x00023ac0 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x00023ac4 bl 0x34f20                                        |     zbx_time ();
    0x00023ac8 vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00023acc vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x00023ad0 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r2 < 0x10001) {
    0x00023ad4 bmi.w 0x23cb4                                     |         goto label_17;
                                                                 |     }
    0x00023ad8 sub.w r3, r4, 0x94                                |     r3 = r4 - 0x94;
    0x00023adc mov r8, r6                                        |     r8 = r6;
    0x00023ade add.w sl, sp, 0x8c                                |     sl += var_8ch;
    0x00023ae2 add.w sb, sp, 0xac                                |     sb += var_ach;
    0x00023ae6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00023ae8 sub.w r3, r4, 0x98                                |     r3 = r4 - 0x98;
    0x00023aec strd r3, r6, [sp, 8]                              |     __asm ("strd r3, r6, [sp, 8]");
                                                                 |     do {
                                                                 | label_0:
    0x00023af0 mov r3, sl                                        |         r3 = sl;
    0x00023af2 mov.w r2, 0x10000                                 |         r2 = case.0x3207a.11;
    0x00023af6 mov r1, sb                                        |         r1 = sb;
    0x00023af8 mov r0, r7                                        |         r0 = r7;
    0x00023afa bl 0x34a50                                        |         r0 = zbx_read ();
    0x00023afe subs r6, r0, 0                                    |         r6 = r0 - 0;
                                                                 |         if (r6 <= r0) {
    0x00023b00 ble.w 0x23c14                                     |             goto label_18;
                                                                 |         }
    0x00023b04 vldr s15, [fp]                                    |         __asm ("vldr s15, [fp]");
    0x00023b08 vcvt.f64.s32 d8, s15                              |         __asm ("vcvt.f64.s32 d8, s15");
    0x00023b0c bl 0x34f20                                        |         zbx_time ();
    0x00023b10 vsub.f64 d0, d0, d9                               |         __asm ("vsub.f64 d0, d0, d9");
    0x00023b14 vcmpe.f64 d8, d0                                  |         __asm ("vcmpe.f64 d8, d0");
    0x00023b18 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r6 < r0) {
    0x00023b1c bmi.w 0x23c5a                                     |             goto label_19;
                                                                 |         }
    0x00023b20 add r8, r6                                        |         r8 += r6;
    0x00023b22 cmp.w r8, 0x10000                                 |         
                                                                 |         if (r8 > 0x10000) {
    0x00023b26 bgt.w 0x23c8c                                     |             goto label_20;
                                                                 |         }
    0x00023b2a mov r1, r6                                        |         r1 = r6;
    0x00023b2c mov r2, sl                                        |         r2 = sl;
    0x00023b2e mov r0, sb                                        |         r0 = sb;
    0x00023b30 bl 0x3a550                                        |         r0 = convert_to_utf8 ();
    0x00023b34 mov r6, r0                                        |         r6 = r0;
    0x00023b36 mov r3, r0                                        |         r3 = r0;
    0x00023b38 ldr r2, [sp, 4]                                   |         r2 = var_4h;
    0x00023b3a sub.w r0, r4, 0x9c                                |         r0 = r4 - 0x9c;
    0x00023b3e ldr r1, [sp, 8]                                   |         r1 = var_8h_2;
    0x00023b40 bl 0x39168                                        |         zbx_strcpy_alloc ();
    0x00023b44 cmp r6, 0                                         |         
    0x00023b46 beq 0x23af0                                       |         
                                                                 |     } while (r6 == 0);
    0x00023b48 mov r0, r6                                        |     r0 = r6;
    0x00023b4a blx 0xbd14                                        |     gai_strerror ();
    0x00023b4e b 0x23af0                                         |     goto label_0;
                                                                 | label_10:
    0x00023b50 ldr r3, [r7, 8]                                   |     r3 = *((r7 + 8));
    0x00023b52 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x00023b54 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00023b56 beq.w 0x23a14                                     |         goto label_1;
                                                                 |     }
    0x00023b5a movs r2, 0x20                                     |     r2 = 0x20;
    0x00023b5c sub.w r0, r4, 0x24                                |     r0 = r4 - 0x24;
    0x00023b60 bl 0x394f0                                        |     zbx_strlcpy ();
    0x00023b64 b 0x23a1a                                         |     goto label_2;
                                                                 | label_9:
    0x00023b66 ldr r0, [r5, 0x28]                                |     r0 = *((r5 + 0x28));
    0x00023b68 mov r2, r6                                        |     r2 = r6;
    0x00023b6a ldr r3, [pc, 0x1cc]                               |     
    0x00023b6c movw r1, 0x12b                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023b70 movs r6, 1                                        |     r6 = 1;
    0x00023b72 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023b76 str r0, [r5, 0x28]                                |     *((r5 + 0x28)) = r0;
    0x00023b78 add r3, pc                                        |     r3 = 0x478b6;
    0x00023b7a ldr r0, [pc, 0x1c0]                               |     
    0x00023b7c add r0, pc                                        |     r0 = 0x478be;
    0x00023b7e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023b82 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023b84 b 0x23a3e                                         |     goto label_3;
                                                                 | label_14:
    0x00023b86 ldr r1, [r5, 0x28]                                |     r1 = *((r5 + 0x28));
    0x00023b88 movs r6, 1                                        |     r6 = 1;
    0x00023b8a ldr r3, [pc, 0x1b4]                               |     
    0x00023b8c movs r2, 0                                        |     r2 = 0;
    0x00023b8e ldr r0, [pc, 0x1b4]                               |     
    0x00023b90 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00023b94 str r1, [r5, 0x28]                                |     *((r5 + 0x28)) = r1;
    0x00023b96 add r3, pc                                        |     r3 = 0x478dc;
    0x00023b98 add r0, pc                                        |     r0 = 0x478e2;
    0x00023b9a movw r1, 0x145                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023b9e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023ba2 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_4:
    0x00023ba4 mov r0, r7                                        |         r0 = r7;
    0x00023ba6 blx 0xc47c                                        |         fcn_0000c47c ();
    0x00023baa b 0x23a3e                                         |         goto label_3;
                                                                 | label_13:
    0x00023bac ldr r3, [r5, 0x28]                                |         r3 = *((r5 + 0x28));
    0x00023bae movs r6, 1                                        |         r6 = 1;
    0x00023bb0 orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00023bb4 str r3, [r5, 0x28]                                |         *((r5 + 0x28)) = r3;
    0x00023bb6 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00023bba ldr r0, [r0]                                      |         r0 = *(r0);
    0x00023bbc bl 0x26fdc                                        |         zbx_strerror ();
    0x00023bc0 ldr r1, [pc, 0x184]                               |         
    0x00023bc2 mov r2, r0                                        |         r2 = r0;
    0x00023bc4 movs r0, 0                                        |         r0 = 0;
    0x00023bc6 add r1, pc                                        |         r1 = 0x47912;
    0x00023bc8 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00023bcc str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023bce b 0x23a3e                                         |         goto label_3;
                                                                 | label_16:
    0x00023bd0 ldr r1, [r5, 0x28]                                |         r1 = *((r5 + 0x28));
    0x00023bd2 mov r2, r0                                        |         r2 = r0;
    0x00023bd4 ldr r3, [pc, 0x174]                               |         
    0x00023bd6 movs r6, 1                                        |         r6 = 1;
    0x00023bd8 ldr r0, [pc, 0x174]                               |         
    0x00023bda orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00023bde str r1, [r5, 0x28]                                |         *((r5 + 0x28)) = r1;
    0x00023be0 add r3, pc                                        |         r3 = 0x47930;
    0x00023be2 add r0, pc                                        |         r0 = 0x47936;
    0x00023be4 movw r1, 0x151                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023be8 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00023bec str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023bee b 0x23ba4                                         |         
                                                                 |     } while (1);
                                                                 | label_15:
    0x00023bf0 ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00023bf2 movs r6, 1                                        |     r6 = 1;
    0x00023bf4 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00023bf8 str r3, [r5, 0x28]                                |     *((r5 + 0x28)) = r3;
    0x00023bfa blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00023bfe ldr r0, [r0]                                      |     r0 = *(r0);
    0x00023c00 bl 0x26fdc                                        |     zbx_strerror ();
    0x00023c04 ldr r1, [pc, 0x14c]                               |     
    0x00023c06 mov r2, r0                                        |     r2 = r0;
    0x00023c08 movs r0, 0                                        |     r0 = 0;
    0x00023c0a add r1, pc                                        |     r1 = 0x47962;
    0x00023c0c bl 0x396b0                                        |     zbx_dsprintf ()
    0x00023c10 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023c12 b 0x23ba4                                         |     goto label_4;
                                                                 | label_18:
    0x00023c14 mov r1, r6                                        |     r1 = r6;
    0x00023c16 ldr r6, [sp, 0xc]                                 |     r6 = var_ch;
    0x00023c18 adds r1, 1                                        |     r1++;
                                                                 |     if (r1 == 1) {
    0x00023c1a beq 0x23cf0                                       |         goto label_21;
                                                                 |     }
    0x00023c1c ldr r3, [r4, -0x94]                               |     r3 = *((r4 - 0x94));
    0x00023c20 ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
    0x00023c24 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00023c26 bne 0x23cd4                                       |         goto label_22;
                                                                 |     }
                                                                 | label_5:
    0x00023c28 ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
                                                                 |     if (r0 != 0) {
    0x00023c2c cbz r0, 0x23c38                                   |         
    0x00023c2e blx 0xbd14                                        |         gai_strerror ();
    0x00023c32 movs r3, 0                                        |         r3 = 0;
    0x00023c34 str r3, [r4, -0x9c]                               |         *((r4 - 0x9c)) = r3;
                                                                 |     }
    0x00023c38 ldr r3, [pc, 0x11c]                               |     
    0x00023c3a movs r2, 0                                        |     r2 = 0;
    0x00023c3c ldr r0, [pc, 0x11c]                               |     
    0x00023c3e movw r1, 0x17f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023c42 add r3, pc                                        |     r3 = 0x4799e;
    0x00023c44 add r0, pc                                        |     r0 = "GET %s%s HTTP/1.1\r\nHost: %s%s%s\r\nConnection: close\r\n\r\n";
    0x00023c46 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023c4a str r0, [r4, -0x9c]                               |     *((r4 - 0x9c)) = r0;
                                                                 | label_6:
    0x00023c4e ldr r3, [r5, 0x28]                                |     r3 = *((r5 + 0x28));
    0x00023c50 str r0, [r5, 0x1c]                                |     *((r5 + 0x1c)) = r0;
    0x00023c52 orr r3, r3, 8                                     |     r3 |= 8;
    0x00023c56 str r3, [r5, 0x28]                                |     *((r5 + 0x28)) = r3;
    0x00023c58 b 0x23ba4                                         |     goto label_4;
                                                                 | label_19:
    0x00023c5a ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x00023c5c movw r1, 0x161                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023c60 ldr r3, [pc, 0xfc]                                |     
    0x00023c62 ldr r0, [pc, 0x100]                               |     
    0x00023c64 orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00023c68 add r3, pc                                        |     r3 = 0x479cc;
    0x00023c6a str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x00023c6c add r0, pc                                        |     r0 = 0x479d6;
    0x00023c6e movs r2, 0                                        |     r2 = 0;
    0x00023c70 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023c74 ldr r3, [r4, -0x9c]                               |     r3 = *((r4 - 0x9c));
    0x00023c78 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
                                                                 |     if (r3 == 0) {
    0x00023c7a cbz r3, 0x23cb0                                   |         goto label_8;
                                                                 |     }
                                                                 |     do {
                                                                 | label_7:
    0x00023c7c mov r0, r3                                        |         r0 = r3;
    0x00023c7e movs r6, 1                                        |         r6 = 1;
    0x00023c80 blx 0xbd14                                        |         gai_strerror ();
    0x00023c84 movs r3, 0                                        |         r3 = 0;
    0x00023c86 str r3, [r4, -0x9c]                               |         *((r4 - 0x9c)) = r3;
    0x00023c8a b 0x23ba4                                         |         goto label_4;
                                                                 | label_20:
    0x00023c8c ldr r2, [r5, 0x28]                                |         r2 = *((r5 + 0x28));
    0x00023c8e mov.w r1, 0x168                                   |         r1 = case.0x3207a.11;
    0x00023c92 ldr r3, [pc, 0xd4]                                |         
    0x00023c94 ldr r0, [pc, 0xd4]                                |         
    0x00023c96 orr r2, r2, 0x20                                  |         r2 |= 0x20;
    0x00023c9a add r3, pc                                        |         r3 = 0x47a08;
    0x00023c9c str r2, [r5, 0x28]                                |         *((r5 + 0x28)) = r2;
    0x00023c9e add r0, pc                                        |         r0 = 0x47a0e;
    0x00023ca0 movs r2, 0                                        |         r2 = 0;
    0x00023ca2 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00023ca6 ldr r3, [r4, -0x9c]                               |         r3 = *((r4 - 0x9c));
    0x00023caa str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x00023cac cmp r3, 0                                         |         
    0x00023cae bne 0x23c7c                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_8:
    0x00023cb0 movs r6, 1                                        |     r6 = 1;
    0x00023cb2 b 0x23ba4                                         |     goto label_4;
                                                                 | label_17:
    0x00023cb4 ldr r1, [r5, 0x28]                                |     r1 = *((r5 + 0x28));
    0x00023cb6 mov r2, r6                                        |     r2 = r6;
    0x00023cb8 ldr r3, [pc, 0xb4]                                |     
    0x00023cba movs r6, 1                                        |     r6 = 1;
    0x00023cbc ldr r0, [pc, 0xb4]                                |     
    0x00023cbe orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00023cc2 str r1, [r5, 0x28]                                |     *((r5 + 0x28)) = r1;
    0x00023cc4 add r3, pc                                        |     r3 = 0x47a38;
    0x00023cc6 add r0, pc                                        |     r0 = 0x47a3e;
    0x00023cc8 movw r1, 0x157                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023ccc bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023cd0 str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023cd2 b 0x23ba4                                         |     goto label_4;
                                                                 | label_22:
    0x00023cd4 ldr r1, [pc, 0xa0]                                |     
    0x00023cd6 add r1, pc                                        |     r1 = 0x47a52;
    0x00023cd8 bl 0x3936c                                        |     zbx_rtrim ();
    0x00023cdc ldr r3, [r4, -0x94]                               |     r3 = *((r4 - 0x94));
    0x00023ce0 subs r3, r3, r0                                   |     r3 -= r0;
    0x00023ce2 str r3, [r4, -0x94]                               |     *((r4 - 0x94)) = r3;
    0x00023ce6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00023ce8 beq 0x23c28                                       |         goto label_5;
                                                                 |     }
    0x00023cea ldr r0, [r4, -0x9c]                               |     r0 = *((r4 - 0x9c));
    0x00023cee b 0x23c4e                                         |     goto label_6;
                                                                 | label_21:
    0x00023cf0 ldr r2, [r5, 0x28]                                |     r2 = *((r5 + 0x28));
    0x00023cf2 mov.w r1, 0x174                                   |     r1 = case.0x3207a.11;
    0x00023cf6 ldr r3, [pc, 0x84]                                |     
    0x00023cf8 ldr r0, [pc, 0x84]                                |     
    0x00023cfa orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00023cfe add r3, pc                                        |     r3 = "%04d-%02d-%02d,%02d:%02d:%02d.%03ld,%1c%02d:%02d";
    0x00023d00 str r2, [r5, 0x28]                                |     *((r5 + 0x28)) = r2;
    0x00023d02 add r0, pc                                        |     r0 = 0x47a86;
    0x00023d04 movs r2, 0                                        |     r2 = 0;
    0x00023d06 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023d0a ldr r3, [r4, -0x9c]                               |     r3 = *((r4 - 0x9c));
    0x00023d0e str r0, [r5, 0x20]                                |     *((r5 + 0x20)) = r0;
    0x00023d10 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00023d12 bne 0x23c7c                                       |         goto label_7;
                                                                 |     }
    0x00023d14 b 0x23cb0                                         |     goto label_8;
                                                                 | label_12:
    0x00023d16 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00023d1a nop                                               |     
    0x00023d1c str r2, [sp, 0x88]                                |     var_88h = r2;
    0x00023d1e movs r3, r0                                       |     r3 = r0;
    0x00023d20 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00023d22 movs r0, r0                                       |     
    0x00023d24 str r1, [sp, 0x3c0]                               |     *(arg_3c0h) = r1;
    0x00023d26 movs r3, r0                                       |     r3 = r0;
    0x00023d28 lsrs r2, r6, 0x1e                                 |     r2 = r6 >> 0x1e;
    0x00023d2a movs r2, r0                                       |     r2 = r0;
    0x00023d2c subs r0, 0xe6                                     |     r0 -= 0xe6;
    0x00023d2e movs r2, r0                                       |     r2 = r0;
    0x00023d30 str r1, [sp, 0x290]                               |     *(arg_290h) = r1;
    0x00023d32 movs r3, r0                                       |     r3 = r0;
    0x00023d34 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x00023d36 movs r0, r0                                       |     
    0x00023d38 lsrs r4, r2, 0x19                                 |     r4 = r2 >> 0x19;
    0x00023d3a movs r2, r0                                       |     r2 = r0;
    0x00023d3c adds r7, 0xa0                                     |     r7 += 0xa0;
    0x00023d3e movs r2, r0                                       |     r2 = r0;
    0x00023d40 adds r7, 0xda                                     |     r7 += 0xda;
    0x00023d42 movs r2, r0                                       |     r2 = r0;
    0x00023d44 adds r7, 0x84                                     |     r7 += 0x84;
    0x00023d46 movs r2, r0                                       |     r2 = r0;
    0x00023d48 adds r7, 0x92                                     |     r7 += 0x92;
    0x00023d4a movs r2, r0                                       |     r2 = r0;
    0x00023d4c adds r7, 0xb0                                     |     r7 += 0xb0;
    0x00023d4e movs r2, r0                                       |     r2 = r0;
    0x00023d50 adds r7, 0x3a                                     |     r7 += 0x3a;
    0x00023d52 movs r2, r0                                       |     r2 = r0;
    0x00023d54 adds r7, 0x1a                                     |     r7 += 0x1a;
    0x00023d56 movs r2, r0                                       |     r2 = r0;
    0x00023d58 subs r6, r7, 7                                    |     r6 = r7 - 7;
    0x00023d5a movs r2, r0                                       |     r2 = r0;
    0x00023d5c adds r6, 0xd8                                     |     r6 += 0xd8;
    0x00023d5e movs r2, r0                                       |     r2 = r0;
    0x00023d60 adds r7, 8                                        |     r7 += 8;
    0x00023d62 movs r2, r0                                       |     r2 = r0;
    0x00023d64 adds r6, 0xb0                                     |     r6 += 0xb0;
    0x00023d66 movs r2, r0                                       |     r2 = r0;
    0x00023d68 adds r6, 0xf6                                     |     r6 += 0xf6;
    0x00023d6a movs r2, r0                                       |     r2 = r0;
    0x00023d6c adds r6, 0x7e                                     |     r6 += 0x7e;
    0x00023d6e movs r2, r0                                       |     r2 = r0;
    0x00023d70 adds r6, 0xac                                     |     r6 += 0xac;
    0x00023d72 movs r2, r0                                       |     r2 = r0;
    0x00023d74 adds r6, 0x56                                     |     r6 += 0x56;
    0x00023d76 movs r2, r0                                       |     r2 = r0;
    0x00023d78 ldrb r6, [r7, 9]                                  |     r6 = *((r7 + 9));
    0x00023d7a movs r2, r0                                       |     r2 = r0;
    0x00023d7c movs r4, 0xe2                                     |     r4 = 0xe2;
    0x00023d7e movs r2, r0                                       |     r2 = r0;
    0x00023d80 adds r6, 0x1a                                     |     r6 += 0x1a;
    0x00023d82 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x237b8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.VFS_FILE_EXISTS ()                       | void VFS_FILE_EXISTS (int16_t arg_a8h, int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_10h_2;
                                                         |     int16_t var_6ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x000237b8 blmi 0x1e3619c                            |     __asm ("blmi 0x1e3619c");
    0x000237bc push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x000237c0 sub sp, 0x74                              |     
    0x000237c2 add r2, pc                                |     r2 += pc;
    0x000237c4 mov r4, r1                                |     r4 = r1;
    0x000237c6 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x000237c8 ldr r3, [r3]                              |     r3 = *(r3);
    0x000237ca str r3, [sp, 0x6c]                        |     var_6ch = r3;
    0x000237cc mov.w r3, 0                               |     r3 = 0;
    0x000237d0 ldr r3, [r0, 4]                           |     r3 = *((r0 + 4));
    0x000237d2 cmp r3, 3                                 |     
                                                         |     if (r3 > 3) {
    0x000237d4 bgt.w 0x23900                             |         goto label_5;
                                                         |     }
    0x000237d8 cmp r3, 0                                 |     
                                                         |     if (r3 > 0) {
    0x000237da ble 0x238c8                               |         
    0x000237dc ldr r2, [r0, 8]                           |         r2 = *((r0 + 8));
    0x000237de mov r5, r0                                |         r5 = r0;
    0x000237e0 ldr r6, [r2]                              |         r6 = *(r2);
    0x000237e2 cmp r6, 0                                 |         
                                                         |         if (r6 != 0) {
    0x000237e4 beq 0x238c8                               |             
    0x000237e6 ldrb r1, [r6]                             |             r1 = *(r6);
    0x000237e8 cmp r1, 0                                 |             
                                                         |             if (r1 == 0) {
    0x000237ea beq 0x238c8                               |                 goto label_6;
                                                         |             }
    0x000237ec cmp r3, 1                                 |             
    0x000237ee mov r1, r4                                |             r1 = r4;
    0x000237f0 ite ne                                    |             
                                                         |             if (r3 == 1) {
    0x000237f2 ldrne r0, [r2, 4]                         |                 r0 = *((r2 + 4));
                                                         |             }
                                                         |             if (r3 != 1) {
    0x000237f4 moveq r0, 0                               |                 r0 = 0;
                                                         |             }
    0x000237f6 bl 0x223a4                                |             r0 = zbx_etypes_to_mask ();
    0x000237fa adds r2, r0, 1                            |             r2 = r0 + 1;
    0x000237fc mov r7, r0                                |             r7 = r0;
                                                         |             if (r2 == r0) {
    0x000237fe beq.w 0x23934                             |                 goto label_7;
                                                         |             }
    0x00023802 ldr r3, [r5, 4]                           |             r3 = *((r5 + 4));
    0x00023804 mov r1, r4                                |             r1 = r4;
    0x00023806 cmp r3, 2                                 |             
    0x00023808 itet gt                                   |             
                                                         |             if (r3 <= 2) {
    0x0002380a ldrgt r3, [r5, 8]                         |                 r3 = *((r5 + 8));
                                                         |             }
                                                         |             if (r3 > 2) {
    0x0002380c movle r0, 0                               |                 r0 = 0;
                                                         |             }
                                                         |             if (r3 <= 2) {
    0x0002380e ldrgt r0, [r3, 8]                         |                 r0 = *((r3 + 8));
                                                         |             }
    0x00023810 bl 0x223a4                                |             r0 = zbx_etypes_to_mask ();
    0x00023814 adds r3, r0, 1                            |             r3 = r0 + 1;
    0x00023816 mov r5, r0                                |             r5 = r0;
                                                         |             if (r3 == r0) {
    0x00023818 beq.w 0x23934                             |                 goto label_7;
                                                         |             }
    0x0002381c cmp r7, 0                                 |             
                                                         |             if (r7 == 0) {
    0x0002381e beq 0x23920                               |                 goto label_8;
                                                         |             }
    0x00023820 orr.w r8, r7, r0                          |             r8 = r7 | r0;
    0x00023824 ands r8, r8, 4                            |             r8 &= 4;
                                                         |             if (r8 == r8) {
    0x00023828 beq.w 0x23968                             |                 goto label_9;
                                                         |             }
                                                         | label_0:
    0x0002382c mov sb, sp                                |             sb = sp;
    0x0002382e mov r0, r6                                |             r0 = r6;
    0x00023830 mov r1, sb                                |             r1 = sb;
    0x00023832 blx 0xbd9c                                |             r0 = fcn_0000bd9c ();
    0x00023836 cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x00023838 bne.w 0x2396c                             |                 goto label_10;
                                                         |             }
    0x0002383c ldr r3, [sp, 0x10]                        |             r3 = var_10h_2;
    0x0002383e and r8, r3, 0xf000                        |             r8 = r3 & case.0x3207a.11;
    0x00023842 sub.w r8, r8, 0xa000                      |             r8 -= case.0x3207a.11;
    0x00023846 clz r8, r8                                |             r8 &= r8;
    0x0002384a lsr.w r8, r8, 5                           |             r8 >>= 5;
    0x0002384e lsl.w r8, r8, 2                           |             r8 <<= 2;
                                                         | label_3:
    0x00023852 mov r1, sb                                |             r1 = sb;
    0x00023854 mov r0, r6                                |             r0 = r6;
    0x00023856 blx 0xbe7c                                |             r0 = unlink (r0);
    0x0002385a cmp r0, 0                                 |             
                                                         |             if (r0 != 0) {
    0x0002385c bne 0x23938                               |                 goto label_11;
                                                         |             }
    0x0002385e ldr r3, [sp, 0x10]                        |             r3 = var_10h_2;
    0x00023860 and r3, r3, 0xf000                        |             r3 &= case.0x3207a.11;
    0x00023864 cmp.w r3, 0x8000                          |             
    0x00023868 it eq                                     |             
                                                         |             if (r3 != 0x8000) {
    0x0002386a orreq r8, r8, 1                           |                 r8 |= 1;
                                                         |             }
                                                         |             if (r3 != 0x8000) {
    0x0002386e beq 0x238aa                               |                 
    0x00023870 cmp.w r3, 0x4000                          |                 
    0x00023874 it eq                                     |                 
                                                         |                 if (r3 != 0x4000) {
    0x00023876 orreq r8, r8, 2                           |                     r8 |= 2;
                                                         |                 }
                                                         |                 if (r3 == 0x4000) {
    0x0002387a beq 0x238aa                               |                     goto label_2;
                                                         |                 }
    0x0002387c cmp.w r3, 0xc000                          |                 
    0x00023880 it eq                                     |                 
                                                         |                 if (r3 != fcn.0000c000) {
    0x00023882 orreq r8, r8, 8                           |                     r8 |= 8;
                                                         |                 }
                                                         |                 if (r3 == fcn.0000c000) {
    0x00023886 beq 0x238aa                               |                     goto label_2;
                                                         |                 }
    0x00023888 cmp.w r3, 0x6000                          |                 
    0x0002388c it eq                                     |                 
                                                         |                 if (r3 != 0x6000) {
    0x0002388e orreq r8, r8, 0x10                        |                     r8 |= 0x10;
                                                         |                 }
                                                         |                 if (r3 == 0x6000) {
    0x00023892 beq 0x238aa                               |                     goto label_2;
                                                         |                 }
    0x00023894 cmp.w r3, 0x2000                          |                 
    0x00023898 it eq                                     |                 
                                                         |                 if (r3 != segment.PHDR) {
    0x0002389a orreq r8, r8, 0x20                        |                     r8 |= 0x20;
                                                         |                 }
                                                         |                 if (r3 == segment.PHDR) {
    0x0002389e beq 0x238aa                               |                     goto label_2;
                                                         |                 }
    0x000238a0 cmp.w r3, 0x1000                          |                 
    0x000238a4 it eq                                     |                 
                                                         |                 if (r3 == 0x1000) {
    0x000238a6 orreq r8, r8, 0x40                        |                     r8 |= 0x40;
                                                         |                     goto label_2;
                                                         |                 }
                                                         |             }
                                                         | label_2:
    0x000238aa ldr r3, [r4, 0x28]                        |             r3 = *((r4 + 0x28));
    0x000238ac ands.w r0, r5, r8                         |             r0 = r5 & r8;
    0x000238b0 orr r3, r3, 1                             |             r3 |= 1;
                                                         |             if (r0 != r5) {
    0x000238b4 bne 0x23926                               |                 goto label_12;
                                                         |             }
    0x000238b6 tst.w r8, r7                              |             
                                                         |             if ((r8 & r7) == 0) {
    0x000238ba beq 0x23926                               |                 goto label_12;
                                                         |             }
    0x000238bc movs r6, 1                                |             r6 = 1;
    0x000238be movs r7, 0                                |             r7 = 0;
    0x000238c0 str r3, [r4, 0x28]                        |             *((r4 + 0x28)) = r3;
    0x000238c2 strd r6, r7, [r4, 8]                      |             __asm ("strd r6, r7, [r4, 8]");
    0x000238c6 b 0x238e6                                 |             
                                                         |         }
                                                         |     } else {
                                                         | label_6:
    0x000238c8 ldr r0, [r4, 0x28]                        |         r0 = *((r4 + 0x28));
    0x000238ca movs r2, 0                                |         r2 = 0;
    0x000238cc ldr r3, [pc, 0xd0]                        |         
    0x000238ce movs r1, 0xda                             |         r1 = 0xda;
    0x000238d0 orr r0, r0, 0x20                          |         r0 |= 0x20;
    0x000238d4 str r0, [r4, 0x28]                        |         *((r4 + 0x28)) = r0;
    0x000238d6 add r3, pc                                |         r3 = 0x4727a;
    0x000238d8 ldr r0, [pc, 0xc8]                        |         
    0x000238da add r0, pc                                |         r0 = 0x47282;
    0x000238dc bl 0x35d28                                |         r0 = zbx_strdup2 ();
    0x000238e0 mov r3, r0                                |         r3 = r0;
    0x000238e2 movs r0, 1                                |         r0 = 1;
    0x000238e4 str r3, [r4, 0x20]                        |         *((r4 + 0x20)) = r3;
                                                         |     }
                                                         |     do {
                                                         | label_1:
    0x000238e6 ldr r2, [pc, 0xc0]                        |         
    0x000238e8 ldr r3, [pc, 0xb0]                        |         r3 = *(0x2399c);
    0x000238ea add r2, pc                                |         r2 = "Cannot decode DNS response.";
    0x000238ec ldr r3, [r2, r3]                          |         r3 = "Cannot decode DNS response.";
    0x000238ee ldr r2, [r3]                              |         r2 = "Cannot decode DNS response.";
    0x000238f0 ldr r3, [sp, 0x6c]                        |         r3 = var_6ch;
    0x000238f2 eors r2, r3                               |         r2 ^= r3;
    0x000238f4 mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x000238f8 bne 0x23994                               |             goto label_13;
                                                         |         }
    0x000238fa add sp, 0x74                              |         
    0x000238fc pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_5:
    0x00023900 ldr r0, [r1, 0x28]                        |         r0 = *((r1 + 0x28));
    0x00023902 movs r2, 0                                |         r2 = 0;
    0x00023904 ldr r3, [pc, 0xa4]                        |         
    0x00023906 movs r1, 0xd2                             |         r1 = 0xd2;
    0x00023908 orr r0, r0, 0x20                          |         r0 |= 0x20;
    0x0002390c str r0, [r4, 0x28]                        |         *((r4 + 0x28)) = r0;
    0x0002390e add r3, pc                                |         r3 = 0x472be;
    0x00023910 ldr r0, [pc, 0x9c]                        |         
    0x00023912 add r0, pc                                |         r0 = 0x472c6;
    0x00023914 bl 0x35d28                                |         r0 = zbx_strdup2 ();
    0x00023918 mov r3, r0                                |         r3 = r0;
    0x0002391a movs r0, 1                                |         r0 = 1;
    0x0002391c str r3, [r4, 0x20]                        |         *((r4 + 0x20)) = r3;
    0x0002391e b 0x238e6                                 |         
                                                         |     } while (1);
                                                         |     if (r0 == 0) {
                                                         | label_8:
    0x00023920 cbz r0, 0x23964                           |         goto label_14;
                                                         |     }
    0x00023922 movs r7, 0x7f                             |     r7 = 0x7f;
    0x00023924 b 0x2382c                                 |     goto label_0;
                                                         | label_12:
    0x00023926 vmov.i32 d16, 0                           |     __asm ("vmov.i32 d16, 0");
    0x0002392a movs r0, 0                                |     r0 = 0;
    0x0002392c str r3, [r4, 0x28]                        |     *((r4 + 0x28)) = r3;
    0x0002392e vstr d16, [r4, 8]                         |     __asm ("vstr d16, [r4, 8]");
    0x00023932 b 0x238e6                                 |     goto label_1;
                                                         | label_7:
    0x00023934 movs r0, 1                                |     r0 = 1;
    0x00023936 b 0x238e6                                 |     goto label_1;
                                                         | label_11:
    0x00023938 blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x0002393c ldr r3, [r0]                              |     r3 = *(r0);
    0x0002393e cmp r3, 2                                 |     
                                                         |     if (r3 == 2) {
    0x00023940 beq 0x238aa                               |         goto label_2;
                                                         |     }
    0x00023942 ldr r3, [r4, 0x28]                        |     r3 = *((r4 + 0x28));
    0x00023944 orr r3, r3, 0x20                          |     r3 |= 0x20;
    0x00023948 str r3, [r4, 0x28]                        |     *((r4 + 0x28)) = r3;
    0x0002394a ldr r0, [r0]                              |     r0 = *(r0);
    0x0002394c bl 0x26fdc                                |     zbx_strerror ();
    0x00023950 ldr r1, [pc, 0x60]                        |     
    0x00023952 mov r2, r0                                |     r2 = r0;
    0x00023954 add r1, pc                                |     r1 = 0x4730c;
                                                         | label_4:
    0x00023956 movs r0, 0                                |     r0 = 0;
    0x00023958 bl 0x396b0                                |     r0 = zbx_dsprintf ()
    0x0002395c mov r3, r0                                |     r3 = r0;
    0x0002395e movs r0, 1                                |     r0 = 1;
    0x00023960 str r3, [r4, 0x20]                        |     *((r4 + 0x20)) = r3;
    0x00023962 b 0x238e6                                 |     goto label_1;
                                                         | label_14:
    0x00023964 mov r8, r7                                |     r8 = r7;
    0x00023966 movs r7, 1                                |     r7 = 1;
                                                         | label_9:
    0x00023968 mov sb, sp                                |     sb = sp;
    0x0002396a b 0x23852                                 |     goto label_3;
                                                         | label_10:
    0x0002396c blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x00023970 ldr r3, [r0]                              |     r3 = *(r0);
    0x00023972 cmp r3, 2                                 |     
    0x00023974 it eq                                     |     
                                                         |     if (r3 == 2) {
    0x00023976 moveq r8, 0                               |         r8 = 0;
                                                         |         goto label_15;
                                                         |     }
                                                         |     if (r3 == 2) {
                                                         | label_15:
    0x0002397a beq.w 0x23852                             |         goto label_3;
                                                         |     }
    0x0002397e ldr r3, [r4, 0x28]                        |     r3 = *((r4 + 0x28));
    0x00023980 orr r3, r3, 0x20                          |     r3 |= 0x20;
    0x00023984 str r3, [r4, 0x28]                        |     *((r4 + 0x28)) = r3;
    0x00023986 ldr r0, [r0]                              |     r0 = *(r0);
    0x00023988 bl 0x26fdc                                |     zbx_strerror ();
    0x0002398c ldr r1, [pc, 0x28]                        |     
    0x0002398e mov r2, r0                                |     r2 = r0;
    0x00023990 add r1, pc                                |     r1 = "access";
    0x00023992 b 0x23956                                 |     goto label_4;
                                                         | label_13:
    0x00023994 blx 0xbe48                                |     fcn_0000be48 ();
    0x00023998 str r4, [sp, 0xa8]                        |     *(arg_a8h) = r4;
    0x0002399a movs r3, r0                               |     r3 = r0;
    0x0002399c lsls r4, r2, 0xc                          |     r4 = r2 << 0xc;
    0x0002399e movs r0, r0                               |     
    0x000239a0 asrs r6, r1, 4                            |     r6 = r1 >> 4;
    0x000239a2 movs r2, r0                               |     r2 = r0;
    0x000239a4 subs r2, 0x42                             |     r2 -= 0x42;
    0x000239a6 movs r2, r0                               |     r2 = r0;
    0x000239a8 str r3, [sp, 8]                           |     var_8h = r3;
    0x000239aa movs r3, r0                               |     r3 = r0;
    0x000239ac asrs r6, r7, 2                            |     r6 = r7 >> 2;
    0x000239ae movs r2, r0                               |     r2 = r0;
    0x000239b0 subs r2, 0xa                              |     r2 -= 0xa;
    0x000239b2 movs r2, r0                               |     r2 = r0;
    0x000239b4 subs r1, 0xd0                             |     r1 -= 0xd0;
    0x000239b6 movs r2, r0                               |     r2 = r0;
    0x000239b8 subs r1, 0x94                             |     r1 -= 0x94;
    0x000239ba movs r2, r0                               |     r2 = r0;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x245a4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_MD5SUM ()                               | void VFS_FILE_MD5SUM (int16_t arg_4000h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4000h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000245a4 blmi 0xfe076fac                                   |     __asm ("blmi 0xfe076fac");
    0x000245a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000245ac mov r4, r1                                        |     r4 = r1;
    0x000245ae vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000245b2 add r2, pc                                        |     r2 += pc;
    0x000245b4 sub.w sp, sp, 0x4000                              |     
    0x000245b8 mov r6, r0                                        |     r6 = r0;
    0x000245ba ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000245bc sub sp, 0x74                                      |     
    0x000245be add.w r1, sp, 0x4000                              |     r1 += arg_4000h;
    0x000245c2 ldr.w r8, [pc, 0x1ec]                             |     r8 = *(0x000247b0);
    0x000245c6 adds r1, 0x6c                                     |     r1 += 0x6c;
    0x000245c8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000245ca str r3, [r1]                                      |     *(r1) = r3;
    0x000245cc mov.w r3, 0                                       |     r3 = 0;
    0x000245d0 bl 0x34f20                                        |     zbx_time ();
    0x000245d4 ldr r5, [r6, 4]                                   |     r5 = *((r6 + 4));
    0x000245d6 add r8, pc                                        |     r8 += pc;
    0x000245d8 cmp r5, 1                                         |     
                                                                 |     if (r5 > 1) {
    0x000245da bgt 0x24634                                       |         goto label_2;
                                                                 |     }
                                                                 |     if (r5 == 1) {
    0x000245dc bne 0x245ea                                       |         
    0x000245de ldr r3, [r6, 8]                                   |         r3 = *((r6 + 8));
    0x000245e0 ldr r0, [r3]                                      |         r0 = *(r3);
                                                                 |         if (r0 == 0) {
    0x000245e2 cbz r0, 0x245ea                                   |             goto label_3;
                                                                 |         }
    0x000245e4 ldrb r3, [r0]                                     |         r3 = *(r0);
    0x000245e6 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x000245e8 bne 0x24654                                       |             goto label_4;
                                                                 |         }
                                                                 |     }
                                                                 | label_3:
    0x000245ea ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000245ec movs r5, 1                                        |     r5 = 1;
    0x000245ee ldr r3, [pc, 0x1c4]                               |     
    0x000245f0 movs r2, 0                                        |     r2 = 0;
    0x000245f2 mov.w r1, 0x28c                                   |     r1 = case.0x3207a.11;
    0x000245f6 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000245f8 movs r0, r4                                       |     r0 = r4;
    0x000245fa str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000245fc add r3, pc                                        |     r3 = 0x48db6;
    0x000245fe ldr r0, [pc, 0x1b8]                               |     
    0x00024600 add r0, pc                                        |     r0 = 0x48dbe;
    0x00024602 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024606 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_0:
    0x00024608 ldr r2, [pc, 0x1b0]                               |         
    0x0002460a add.w r1, sp, 0x4000                              |         r1 += arg_4000h;
    0x0002460e ldr r3, [pc, 0x19c]                               |         r3 = *(0x247ae);
    0x00024610 adds r1, 0x6c                                     |         r1 += 0x6c;
    0x00024612 add r2, pc                                        |         r2 = 0x48dd2;
    0x00024614 ldr r3, [r2, r3]                                  |         r3 = *(0x48dd2);
    0x00024616 ldr r2, [r3]                                      |         r2 = *(0x48dd2);
    0x00024618 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0002461a eors r2, r3                                       |         r2 ^= r3;
    0x0002461c mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00024620 bne.w 0x247a4                                     |             goto label_5;
                                                                 |         }
    0x00024624 mov r0, r5                                        |         r0 = r5;
    0x00024626 add.w sp, sp, 0x4000                              |         
    0x0002462a add sp, 0x74                                      |         
    0x0002462c vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x00024630 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x00024634 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00024636 movs r2, 0                                        |         r2 = 0;
    0x00024638 ldr r3, [pc, 0x184]                               |         
    0x0002463a mov.w r1, 0x284                                   |         r1 = case.0x3207a.11;
    0x0002463e movs r5, 1                                        |         r5 = 1;
    0x00024640 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00024644 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00024646 add r3, pc                                        |         r3 = 0x48e0a;
    0x00024648 ldr r0, [pc, 0x178]                               |         
    0x0002464a add r0, pc                                        |         r0 = 0x48e12;
    0x0002464c bl 0x35d28                                        |         zbx_strdup2 ();
    0x00024650 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00024652 b 0x24608                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00024654 movs r1, 0                                        |     r1 = 0;
    0x00024656 vmov.f64 d8, d0                                   |     __asm ("vmov.f64 d8, d0");
    0x0002465a blx 0xbfe4                                        |     r0 = puts (r0);
    0x0002465e adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00024660 mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r3 == r0) {
    0x00024662 beq.w 0x24782                                     |         goto label_6;
                                                                 |     }
    0x00024664 strh r6, [r1, 4]                                  |     *((r1 + 4)) = r6;
    0x00024666 ldr r3, [pc, 0x160]                               |     r3 = *(0x247ca);
    0x00024668 ldr.w sb, [r8, r3]                                |     sb = *((r8 + r3));
    0x0002466c vldr s15, [sb]                                    |     __asm ("vldr s15, [sb]");
    0x00024670 vcvt.f64.s32 d9, s15                              |     __asm ("vcvt.f64.s32 d9, s15");
    0x00024674 bl 0x34f20                                        |     zbx_time ();
    0x00024678 vsub.f64 d0, d0, d8                               |     __asm ("vsub.f64 d0, d0, d8");
    0x0002467c vcmpe.f64 d9, d0                                  |     __asm ("vcmpe.f64 d9, d0");
    0x00024680 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 < r0) {
    0x00024684 bmi 0x24722                                       |         goto label_7;
                                                                 |     }
    0x00024686 add.w r8, sp, 0x70                                |     r8 += var_70h;
    0x0002468a add r6, sp, 0x6c                                  |     r6 += var_6ch;
    0x0002468c sub.w sl, r8, 0x6c                                |     sl = r8 - 0x6c;
    0x00024690 mov r0, sl                                        |     r0 = sl;
    0x00024692 bl 0x3f424                                        |     zbx_md5_init ();
    0x00024696 b 0x246bc                                         |     
                                                                 |     while (fp > r0) {
    0x00024698 vldr s15, [sb]                                    |         __asm ("vldr s15, [sb]");
    0x0002469c vcvt.f64.s32 d9, s15                              |         __asm ("vcvt.f64.s32 d9, s15");
    0x000246a0 bl 0x34f20                                        |         zbx_time ();
    0x000246a4 vsub.f64 d0, d0, d8                               |         __asm ("vsub.f64 d0, d0, d8");
    0x000246a8 vcmpe.f64 d9, d0                                  |         __asm ("vcmpe.f64 d9, d0");
    0x000246ac vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r3 < r0) {
    0x000246b0 bmi 0x24764                                       |             goto label_8;
                                                                 |         }
    0x000246b2 mov r2, fp                                        |         r2 = fp;
    0x000246b4 mov r1, r6                                        |         r1 = r6;
    0x000246b6 mov r0, sl                                        |         r0 = sl;
    0x000246b8 bl 0x3f458                                        |         zbx_md5_append ();
    0x000246bc mov.w r2, 0x4000                                  |         r2 = case.0x3207a.11;
    0x000246c0 mov r1, r6                                        |         r1 = r6;
    0x000246c2 mov r0, r7                                        |         r0 = r7;
    0x000246c4 blx 0xbcac                                        |         r0 = fcn_0000bcac ();
    0x000246c8 subs.w fp, r0, 0                                  |         
    0x000246cc bgt 0x24698                                       |         
                                                                 |     }
    0x000246ce mov r0, sl                                        |     r0 = sl;
    0x000246d0 sub.w r1, r8, 0x14                                |     r1 = r8 - 0x14;
    0x000246d4 bl 0x3f51c                                        |     zbx_md5_finish ();
    0x000246d8 cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x000246dc bne 0x24746                                       |         goto label_9;
                                                                 |     }
    0x000246de ldr r0, [pc, 0xec]                                |     
    0x000246e0 movs r3, 0x21                                     |     r3 = 0x21;
    0x000246e2 ldr.w sb, [pc, 0xec]                              |     
    0x000246e6 mov r2, fp                                        |     r2 = fp;
    0x000246e8 mov.w r1, 0x2b4                                   |     r1 = case.0x3207a.11;
    0x000246ec movs r5, 0x21                                     |     r5 = 0x21;
    0x000246ee add r0, pc                                        |     r0 = 0x48ec0;
    0x000246f0 sub.w r8, r8, 0x15                                |     r8 -= 0x15;
    0x000246f4 bl 0x35c28                                        |     zbx_malloc2 ();
    0x000246f8 add sb, pc                                        |     sb = 0x48ece;
    0x000246fa mov sl, r0                                        |     sl = r0;
    0x000246fc adds r6, r0, r5                                   |     r6 = r0 + r5;
                                                                 |     do {
    0x000246fe mov r1, r5                                        |         r1 = r5;
    0x00024700 subs r0, r6, r5                                   |         r0 = r6 - r5;
    0x00024702 ldrb r3, [r8, 1]!                                 |         r3 = *((r8 += 1));
    0x00024704 subs r7, 1                                        |         r7--;
    0x00024706 subs r5, 2                                        |         r5 -= 2;
    0x00024708 mov r2, sb                                        |         r2 = sb;
    0x0002470a bl 0x38ea0                                        |         zbx_snprintf ();
    0x0002470e cmp r5, 1                                         |         
    0x00024710 bne 0x246fe                                       |         
                                                                 |     } while (r5 != 1);
    0x00024712 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00024714 movs r5, 0                                        |     r5 = 0;
    0x00024716 str.w sl, [r4, 0x18]                              |     __asm ("str.w sl, [r4, 0x18]");
    0x0002471a orr r3, r3, 4                                     |     r3 |= 4;
    0x0002471e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00024720 b 0x2473e                                         |     goto label_1;
                                                                 | label_7:
    0x00024722 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x00024724 mov.w r1, 0x298                                   |     r1 = case.0x3207a.11;
    0x00024728 ldr r3, [pc, 0xa8]                                |     
    0x0002472a ldr r0, [pc, 0xac]                                |     
    0x0002472c orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00024730 str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
    0x00024732 add r3, pc                                        |     r3 = 0x48f0a;
    0x00024734 add r0, pc                                        |     r0 = 0x48f12;
    0x00024736 movs r2, 0                                        |     r2 = 0;
    0x00024738 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002473c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_1:
    0x0002473e mov r0, r7                                        |         r0 = r7;
    0x00024740 blx 0xc47c                                        |         fcn_0000c47c ();
    0x00024744 b 0x24608                                         |         goto label_0;
                                                                 | label_9:
    0x00024746 ldr r2, [r4, 0x28]                                |         r2 = *((r4 + 0x28));
    0x00024748 movw r1, 0x2ad                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002474c ldr r3, [pc, 0x8c]                                |         
    0x0002474e ldr r0, [pc, 0x90]                                |         
    0x00024750 orr r2, r2, 0x20                                  |         r2 |= 0x20;
    0x00024754 str r2, [r4, 0x28]                                |         *((r4 + 0x28)) = r2;
    0x00024756 add r3, pc                                        |         r3 = 0x48f36;
    0x00024758 add r0, pc                                        |         r0 = 0x48f3e;
    0x0002475a movs r2, 0                                        |         r2 = 0;
    0x0002475c bl 0x35d28                                        |         zbx_strdup2 ();
    0x00024760 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00024762 b 0x2473e                                         |         
                                                                 |     } while (1);
                                                                 | label_8:
    0x00024764 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x00024766 movw r1, 0x2a2                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024768 movs r1, 0xa2                                     |     r1 = 0xa2;
    0x0002476a ldr r3, [pc, 0x78]                                |     
    0x0002476c ldr r0, [pc, 0x78]                                |     
    0x0002476e orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x00024772 str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
    0x00024774 add r3, pc                                        |     r3 = 0x48f5e;
    0x00024776 add r0, pc                                        |     r0 = 0x48f62;
    0x00024778 movs r2, 0                                        |     r2 = 0;
    0x0002477a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002477e str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00024780 b 0x2473e                                         |     goto label_1;
                                                                 | label_6:
    0x00024782 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00024784 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00024788 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002478a blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002478e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00024790 bl 0x26fdc                                        |     zbx_strerror ();
    0x00024794 ldr r1, [pc, 0x54]                                |     
    0x00024796 mov r2, r0                                        |     r2 = r0;
    0x00024798 movs r0, 0                                        |     r0 = 0;
    0x0002479a add r1, pc                                        |     r1 = 0x48f8a;
    0x0002479c bl 0x396b0                                        |     zbx_dsprintf ()
    0x000247a0 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000247a2 b 0x24608                                         |     goto label_0;
                                                                 | label_5:
    0x000247a4 blx 0xbe48                                        |     fcn_0000be48 ();
    0x000247a8 strh r2, [r7, 0x30]                               |     *((r7 + 0x30)) = r2;
    0x000247aa movs r3, r0                                       |     r3 = r0;
    0x000247ac lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000247ae movs r0, r0                                       |     
    0x000247b0 strh r6, [r2, 0x30]                               |     *((r2 + 0x30)) = r6;
    0x000247b2 movs r3, r0                                       |     r3 = r0;
    0x000247b4 lsls r0, r5, 0xf                                  |     r0 = r5 << 0xf;
    0x000247b6 movs r2, r0                                       |     r2 = r0;
    0x000247b8 cmp r5, 0x1c                                      |     
    0x000247ba movs r2, r0                                       |     r2 = r0;
    0x000247bc strh r2, [r3, 0x2e]                               |     *((r3 + 0x2e)) = r2;
    0x000247be movs r3, r0                                       |     r3 = r0;
    0x000247c0 lsls r6, r0, 0xe                                  |     r6 = r0 << 0xe;
    0x000247c2 movs r2, r0                                       |     r2 = r0;
    0x000247c4 cmp r4, 0xd2                                      |     
    0x000247c6 movs r2, r0                                       |     r2 = r0;
    0x000247c8 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x000247ca movs r0, r0                                       |     
    0x000247cc cmp r4, 0x2e                                      |     
    0x000247ce movs r2, r0                                       |     r2 = r0;
    0x000247d0 cmp r5, 0x14                                      |     
    0x000247d2 movs r2, r0                                       |     r2 = r0;
    0x000247d4 cmp r4, 0x3e                                      |     
    0x000247d6 movs r2, r0                                       |     r2 = r0;
    0x000247d8 cmp r3, 0xe8                                      |     
    0x000247da movs r2, r0                                       |     r2 = r0;
    0x000247dc subs r2, r1, r2                                   |     r2 = r1 - r2;
    0x000247de movs r2, r0                                       |     r2 = r0;
    0x000247e0 cmp r3, 0xc4                                      |     
    0x000247e2 movs r2, r0                                       |     r2 = r0;
    0x000247e4 cmp r3, 0xfc                                      |     
    0x000247e6 movs r2, r0                                       |     r2 = r0;
    0x000247e8 cmp r3, 0xa6                                      |     
    0x000247ea movs r2, r0                                       |     r2 = r0;
    0x000247ec cmp r3, 0xbe                                      |     
    0x000247ee movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23d84 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_REGEXP ()                               | void VFS_FILE_REGEXP (int16_t arg_4h, int16_t arg_8h, int16_t arg_10000h_2, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_4ch_2;
                                                                 |     int16_t var_50h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00023d84 blmi 0xffc36948                                   |     __asm ("blmi 0xffc36948");
    0x00023d88 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00023d8c mov r4, r1                                        |     r4 = r1;
    0x00023d8e vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x00023d92 add r2, pc                                        |     r2 += pc;
    0x00023d94 sub.w sp, sp, 0x10000                             |     
    0x00023d98 mov fp, r0                                        |     
    0x00023d9a ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00023d9c sub sp, 0x54                                      |     
    0x00023d9e add.w r1, sp, 0x10000                             |     r1 += arg_10000h_2;
    0x00023da2 add r5, sp, 0x50                                  |     r5 += var_50h;
    0x00023da4 movs r6, 0                                        |     r6 = 0;
    0x00023da6 adds r1, 0x4c                                     |     r1 += 0x4c;
    0x00023da8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00023daa str r3, [r1]                                      |     *(r1) = r3;
    0x00023dac mov.w r3, 0                                       |     r3 = 0;
    0x00023db0 str r6, [r5, -0x30]                               |     *((r5 - 0x30)) = r6;
    0x00023db4 bl 0x34f20                                        |     zbx_time ();
    0x00023db8 ldr.w r3, [fp, 4]                                 |     r3 = *(arg_4h);
    0x00023dbc ldr r7, [pc, 0x38c]                               |     
    0x00023dbe cmp r3, 6                                         |     
    0x00023dc0 add r7, pc                                        |     r7 = 0x47f10;
                                                                 |     if (r3 > 6) {
    0x00023dc2 bgt.w 0x23fa6                                     |         goto label_7;
                                                                 |     }
    0x00023dc6 cmp r3, 0                                         |     
    0x00023dc8 vmov.f64 d9, d0                                   |     __asm ("vmov.f64 d9, d0");
    0x00023dcc itt gt                                            |     
                                                                 |     if (r3 <= 0) {
    0x00023dce ldrgt r2, [fp, 8]                                 |         r2 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x00023dd2 ldr r6, [r2]                                      |         r6 = *(r2);
                                                                 |     }
    0x00023dd4 cmp r3, 1                                         |     
    0x00023dd6 itet gt                                           |     
                                                                 |     if (r3 <= 1) {
    0x00023dd8 ldrgt r2, [fp, 8]                                 |         r2 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 <= 1) {
    0x00023ddc movgt r2, 0                                       |         r2 = 0;
                                                                 |     }
                                                                 |     if (r3 > 1) {
    0x00023dde ldr r2, [r2, 4]                                   |         r2 = *((r2 + 4));
                                                                 |     }
    0x00023de0 cmp r3, 2                                         |     
    0x00023de2 it le                                             |     
                                                                 |     if (r3 > 2) {
    0x00023de4 movle r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x00023de6 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00023de8 itt gt                                            |     
                                                                 |     if (r3 <= 2) {
    0x00023dea ldrgt r2, [fp, 8]                                 |         r2 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 > 2) {
    0x00023dee ldr r1, [r2, 8]                                   |         r1 = *((r2 + 8));
                                                                 |     }
    0x00023df0 cmp r3, 3                                         |     
    0x00023df2 itet gt                                           |     
                                                                 |     if (r3 <= 3) {
    0x00023df4 ldrgt r2, [fp, 8]                                 |         r2 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 <= 3) {
    0x00023df8 movgt sl, 0                                       |         sl = 0;
                                                                 |     }
                                                                 |     if (r3 > 3) {
    0x00023dfc ldr.w sl, [r2, 0xc]                               |         sl = *((r2 + 0xc));
                                                                 |     }
    0x00023e00 cmp r3, 4                                         |     
    0x00023e02 itet gt                                           |     
                                                                 |     if (r3 <= 4) {
    0x00023e04 ldrgt r2, [fp, 8]                                 |         r2 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 <= 4) {
    0x00023e08 movgt sb, 0                                       |         sb = 0;
                                                                 |     }
                                                                 |     if (r3 > 4) {
    0x00023e0c ldr.w sb, [r2, 0x10]                              |         sb = *((r2 + 0x10));
                                                                 |     }
    0x00023e10 cmp r3, 6                                         |     
    0x00023e12 itet eq                                           |     
                                                                 |     if (r3 != 6) {
    0x00023e14 ldreq r3, [fp, 8]                                 |         r3 = *(arg_8h);
                                                                 |     }
                                                                 |     if (r3 != 6) {
    0x00023e18 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 == 6) {
    0x00023e1a ldr r3, [r3, 0x14]                                |         r3 = *((r3 + 0x14));
                                                                 |     }
    0x00023e1c str r3, [sp, 0x14]                                |     var_14h_2 = r3;
    0x00023e1e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00023e20 beq.w 0x23f5c                                     |         goto label_8;
                                                                 |     }
    0x00023e24 ldrb r3, [r6]                                     |     r3 = *(r6);
    0x00023e26 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00023e28 beq.w 0x23f5c                                     |         goto label_8;
                                                                 |     }
    0x00023e2c ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00023e2e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00023e30 beq.w 0x23fcc                                     |         goto label_9;
                                                                 |     }
    0x00023e34 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00023e36 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00023e38 beq.w 0x23fcc                                     |         goto label_9;
                                                                 |     }
    0x00023e3c cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00023e3e beq.w 0x23fc6                                     |         goto label_10;
                                                                 |     }
    0x00023e42 movs r2, 0x20                                     |     r2 = 0x20;
    0x00023e44 sub.w r0, r5, 0x24                                |     r0 = r5 - 0x24;
    0x00023e48 bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 | label_1:
    0x00023e4c cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00023e50 beq 0x23e5c                                       |         
    0x00023e52 ldrb.w r3, [sl]                                   |         r3 = *(sl);
    0x00023e56 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00023e58 bne.w 0x23fec                                     |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x00023e5c movs r3, 0                                        |     r3 = 0;
    0x00023e5e str r3, [r5, -0x2c]                               |     *((r5 - 0x2c)) = r3;
                                                                 | label_3:
    0x00023e62 cmp.w sb, 0                                       |     
                                                                 |     if (sb != 0) {
    0x00023e66 beq 0x23e72                                       |         
    0x00023e68 ldrb.w r3, [sb]                                   |         r3 = *(sb);
    0x00023e6c cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00023e6e bne.w 0x24032                                     |             goto label_12;
                                                                 |         }
                                                                 |     }
    0x00023e72 mov.w r3, -1                                      |     r3 = -1;
    0x00023e76 str r3, [r5, -0x28]                               |     *((r5 - 0x28)) = r3;
                                                                 | label_4:
    0x00023e7a mov r0, r6                                        |     r0 = r6;
    0x00023e7c movs r1, 0                                        |     r1 = 0;
    0x00023e7e blx 0xbfe4                                        |     puts (r0);
    0x00023e80 ldm.w r2!, {r4, r5, r7, r8, ip, sp, lr, pc}       |     return;
    0x00023e84 subs r7, 0xff                                     |     r7 -= 0xff;
    0x00023e86 mov sb, r0                                        |     sb = r0;
                                                                 |     if (r7 == 0xff) {
    0x00023e88 beq.w 0x240ae                                     |         goto label_13;
                                                                 |     }
    0x00023e8c ldr r3, [pc, 0x2c0]                               |     r3 = *(0x24150);
    0x00023e8e ldr.w r8, [r7, r3]                                |     r8 = *((r7 + r3));
    0x00023e92 vldr s15, [r8]                                    |     __asm ("vldr s15, [r8]");
    0x00023e96 vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x00023e9a bl 0x34f20                                        |     zbx_time ();
    0x00023e9e vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x00023ea2 vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x00023ea6 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r7 < 0xff) {
    0x00023eaa bmi.w 0x240d2                                     |         goto label_14;
                                                                 |     }
    0x00023eae ldr r3, [pc, 0x2a4]                               |     
    0x00023eb0 movs r6, 0                                        |     r6 = 0;
    0x00023eb2 add.w fp, sp, 0x2c                                |     
    0x00023eb6 add.w sl, sp, 0x4c                                |     sl += var_4ch_2;
    0x00023eba add r3, pc                                        |     r3 = 0x48014;
    0x00023ebc str r3, [sp, 0x18]                                |     var_18h_2 = r3;
    0x00023ebe sub.w r3, r5, 0x30                                |     r3 = r5 - 0x30;
    0x00023ec2 str r3, [sp, 0x1c]                                |     var_1ch_2 = r3;
                                                                 |     do {
                                                                 | label_0:
    0x00023ec4 mov r3, fp                                        |         r3 = fp;
    0x00023ec6 mov.w r2, 0x10000                                 |         r2 = case.0x3207a.11;
    0x00023eca mov r1, sl                                        |         r1 = sl;
    0x00023ecc mov r0, sb                                        |         r0 = sb;
    0x00023ece bl 0x34a50                                        |         r0 = zbx_read ();
    0x00023ed2 subs r7, r0, 0                                    |         r7 = r0 - 0;
                                                                 |         if (r7 <= r0) {
    0x00023ed4 ble.w 0x24080                                     |             goto label_15;
                                                                 |         }
    0x00023ed8 vldr s15, [r8]                                    |         __asm ("vldr s15, [r8]");
    0x00023edc vcvt.f64.s32 d8, s15                              |         __asm ("vcvt.f64.s32 d8, s15");
    0x00023ee0 bl 0x34f20                                        |         zbx_time ();
    0x00023ee4 vsub.f64 d0, d0, d9                               |         __asm ("vsub.f64 d0, d0, d9");
    0x00023ee8 vcmpe.f64 d8, d0                                  |         __asm ("vcmpe.f64 d8, d0");
    0x00023eec vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r7 < r0) {
    0x00023ef0 bmi.w 0x2408e                                     |             goto label_16;
                                                                 |         }
    0x00023ef4 ldr r3, [r5, -0x2c]                               |         r3 = *((r5 - 0x2c));
    0x00023ef8 adds r6, 1                                        |         r6++;
    0x00023efa cmp r3, r6                                        |         
    0x00023efc bhi 0x23ec4                                       |         
                                                                 |     } while (r3 > r6);
    0x00023efe mov r1, r7                                        |     r1 = r7;
    0x00023f00 mov r2, fp                                        |     r2 = fp;
    0x00023f02 mov r0, sl                                        |     r0 = sl;
    0x00023f04 bl 0x3a550                                        |     convert_to_utf8 ();
    0x00023f08 ldr r1, [sp, 0x18]                                |     r1 = var_18h_2;
    0x00023f0a mov r7, r0                                        |     r7 = r0;
    0x00023f0c bl 0x3936c                                        |     zbx_rtrim ();
    0x00023f10 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch_2;
    0x00023f12 mov r0, r7                                        |     r0 = r7;
    0x00023f14 ldrd r1, r2, [sp, 0x10]                           |     __asm ("ldrd r1, r2, [var_10h]");
    0x00023f18 bl 0x27f38                                        |     zbx_regexp_sub ();
                                                                 |     if (r7 != 0) {
    0x00023f1c cbz r7, 0x23f24                                   |         
    0x00023f1e mov r0, r7                                        |         r0 = r7;
    0x00023f20 blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
    0x00023f24 ldr r3, [r5, -0x30]                               |     r3 = *((r5 - 0x30));
    0x00023f28 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00023f2a bne.w 0x240f2                                     |         goto label_17;
                                                                 |     }
    0x00023f2e ldr r3, [r5, -0x28]                               |     r3 = *((r5 - 0x28));
    0x00023f32 cmp r3, r6                                        |     
                                                                 |     if (r3 > r6) {
    0x00023f34 bhi 0x23ec4                                       |         goto label_0;
                                                                 |     }
                                                                 | label_5:
    0x00023f36 ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x00023f38 movs r5, 0                                        |     r5 = 0;
    0x00023f3a ldr r3, [pc, 0x21c]                               |     
    0x00023f3c movs r2, 0                                        |     r2 = 0;
    0x00023f3e ldr r0, [pc, 0x21c]                               |     
    0x00023f40 orr r1, r1, 4                                     |     r1 |= 4;
    0x00023f44 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x00023f46 add r3, pc                                        |     r3 = 0x480a4;
    0x00023f48 add r0, pc                                        |     r0 = 0x480aa;
    0x00023f4a movw r1, 0x1fb                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023f4e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023f52 str r0, [r4, 0x18]                                |     *((r4 + 0x18)) = r0;
                                                                 | label_6:
    0x00023f54 mov r0, sb                                        |     r0 = sb;
    0x00023f56 blx 0xc47c                                        |     fcn_0000c47c ();
    0x00023f5a b 0x23f7a                                         |     goto label_2;
                                                                 | label_8:
    0x00023f5c ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00023f5e movs r5, 1                                        |     r5 = 1;
    0x00023f60 ldr r3, [pc, 0x1fc]                               |     
    0x00023f62 movs r2, 0                                        |     r2 = 0;
    0x00023f64 movw r1, 0x1a5                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023f68 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023f6c str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00023f6e add r3, pc                                        |     r3 = 0x480d2;
    0x00023f70 ldr r0, [pc, 0x1f0]                               |     
    0x00023f72 add r0, pc                                        |     r0 = 0x480da;
    0x00023f74 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023f78 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_2:
    0x00023f7a ldr r2, [pc, 0x1ec]                               |         
    0x00023f7c add.w r1, sp, 0x10000                             |         r1 += arg_10000h_2;
    0x00023f80 ldr r3, [pc, 0x1c4]                               |         r3 = *(0x24148);
    0x00023f82 adds r1, 0x4c                                     |         r1 += 0x4c;
    0x00023f84 add r2, pc                                        |         r2 = 0x480f2;
    0x00023f86 ldr r3, [r2, r3]                                  |         r3 = *(0x480f2);
    0x00023f88 ldr r2, [r3]                                      |         r2 = *(0x480f2);
    0x00023f8a ldr r3, [r1]                                      |         r3 = *(r1);
    0x00023f8c eors r2, r3                                       |         r2 ^= r3;
    0x00023f8e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00023f92 bne.w 0x24140                                     |             goto label_18;
                                                                 |         }
    0x00023f94 strh r5, [r2, 6]                                  |         *((r2 + 6)) = r5;
    0x00023f96 mov r0, r5                                        |         r0 = r5;
    0x00023f98 add.w sp, sp, 0x10000                             |         
    0x00023f9c add sp, 0x54                                      |         
    0x00023f9e vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x00023fa2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x00023fa6 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00023fa8 mov r2, r6                                        |         r2 = r6;
    0x00023faa ldr r3, [pc, 0x1c0]                               |         
    0x00023fac mov.w r1, 0x198                                   |         r1 = case.0x3207a.11;
    0x00023fb0 movs r5, 1                                        |         r5 = 1;
    0x00023fb2 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00023fb6 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00023fb8 add r3, pc                                        |         r3 = 0x4812a;
    0x00023fba ldr r0, [pc, 0x1b4]                               |         
    0x00023fbc add r0, pc                                        |         r0 = 0x48132;
    0x00023fbe bl 0x35d28                                        |         zbx_strdup2 ();
    0x00023fc0 cdp2 p2, 0xb, c6, c3, c0, 1                       |         __asm ("cdp2 p2, 0xb, c6, c3, c0, 1");
    0x00023fc4 b 0x23f7a                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x00023fc6 strb r1, [r5, -0x24]                              |     *((r5 - 0x24)) = r1;
    0x00023fca b 0x23e4c                                         |     goto label_1;
                                                                 | label_9:
    0x00023fcc ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00023fce movs r2, 0                                        |     r2 = 0;
    0x00023fd0 ldr r3, [pc, 0x1a0]                               |     
    0x00023fd2 movw r1, 0x1ab                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00023fd6 movs r5, 1                                        |     r5 = 1;
    0x00023fd8 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00023fdc str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00023fde add r3, pc                                        |     r3 = 0x48156;
    0x00023fe0 ldr r0, [pc, 0x194]                               |     
    0x00023fe2 add r0, pc                                        |     r0 = 0x4815e;
    0x00023fe4 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00023fe8 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00023fea b 0x23f7a                                         |     goto label_2;
                                                                 | label_11:
    0x00023fec vmov.i64 d17, 0xffffffff                          |     __asm ("vmov.i64 d17, case.0x3207a.11");
    0x00023ff0 mov r0, sl                                        |     r0 = sl;
    0x00023ff2 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00023ff6 movs r3, 4                                        |     r3 = 4;
    0x00023ff8 sub.w r2, r5, 0x2c                                |     r2 = r5 - 0x2c;
    0x00023ffc mov.w r1, -1                                      |     r1 = -1;
    0x00024000 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x00024004 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00024008 bl 0x367c8                                        |     is_uint_n_range ();
    0x0002400c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x0002400e bne.w 0x23e62                                     |         goto label_3;
                                                                 |     }
    0x00024012 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00024014 movs r2, 0                                        |     r2 = 0;
    0x00024016 ldr r3, [pc, 0x164]                               |     
    0x00024018 mov.w r1, 0x1b8                                   |     r1 = case.0x3207a.11;
    0x0002401c movs r5, 1                                        |     r5 = 1;
    0x0002401e orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00024022 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00024024 add r3, pc                                        |     r3 = 0x481a6;
    0x00024026 ldr r0, [pc, 0x158]                               |     
    0x00024028 add r0, pc                                        |     r0 = 0x481ae;
    0x0002402a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002402e str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00024030 b 0x23f7a                                         |     goto label_2;
                                                                 | label_12:
    0x00024032 vmov.i64 d17, 0xffffffff                          |     __asm ("vmov.i64 d17, case.0x3207a.11");
    0x00024036 mov r0, sb                                        |     r0 = sb;
    0x00024038 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x0002403c movs r3, 4                                        |     r3 = 4;
    0x0002403e sub.w r2, r5, 0x28                                |     r2 = r5 - 0x28;
    0x00024042 mov.w r1, -1                                      |     r1 = -1;
    0x00024046 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x0002404a vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x0002404e bl 0x367c8                                        |     is_uint_n_range ();
    0x00024052 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00024054 beq 0x24120                                       |         goto label_19;
                                                                 |     }
    0x00024056 ldrd r2, r3, [r5, -0x2c]                          |     __asm ("ldrd r2, r3, [r5, -0x2c]");
    0x0002405a cmp r2, r3                                        |     
                                                                 |     if (r2 < r3) {
    0x0002405c bls.w 0x23e7a                                     |         goto label_4;
                                                                 |     }
    0x00024060 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00024062 movs r2, 0                                        |     r2 = 0;
    0x00024064 ldr r3, [pc, 0x11c]                               |     
    0x00024066 mov.w r1, 0x1c6                                   |     r1 = case.0x3207a.11;
    0x0002406a movs r5, 1                                        |     r5 = 1;
    0x0002406c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00024070 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00024072 add r3, pc                                        |     r3 = 0x481fa;
    0x00024074 ldr r0, [pc, 0x110]                               |     
    0x00024076 add r0, pc                                        |     r0 = 0x48202;
    0x00024078 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002407c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002407e b 0x23f7a                                         |     goto label_2;
                                                                 | label_15:
    0x00024080 adds r3, r7, 1                                    |     r3 = r7 + 1;
                                                                 |     if (r3 == r7) {
    0x00024082 beq 0x24100                                       |         goto label_20;
                                                                 |     }
    0x00024084 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00024086 beq.w 0x23f36                                     |         goto label_5;
                                                                 |     }
    0x0002408a movs r5, 0                                        |     r5 = 0;
    0x0002408c b 0x23f54                                         |     goto label_6;
                                                                 | label_16:
    0x0002408e ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x00024090 movs r2, 0                                        |     r2 = 0;
    0x00024092 ldr r3, [pc, 0xf8]                                |     
    0x00024094 movs r5, 1                                        |     r5 = 1;
    0x00024096 ldr r0, [pc, 0xf8]                                |     
    0x00024098 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x0002409c str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x0002409e add r3, pc                                        |     r3 = 0x48230;
    0x000240a0 add r0, pc                                        |     r0 = 0x48236;
    0x000240a2 mov.w r1, 0x1da                                   |     r1 = case.0x3207a.11;
    0x000240a6 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000240aa str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000240ac b 0x23f54                                         |     goto label_6;
                                                                 | label_13:
    0x000240ae ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x000240b0 movs r5, 1                                        |     r5 = 1;
    0x000240b2 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000240b6 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x000240b8 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000240bc ldr r0, [r0]                                      |     r0 = *(r0);
    0x000240be bl 0x26fdc                                        |     zbx_strerror ();
    0x000240c2 ldr r1, [pc, 0xd0]                                |     
    0x000240c4 mov r2, r0                                        |     r2 = r0;
    0x000240c6 movs r0, 0                                        |     r0 = 0;
    0x000240c8 add r1, pc                                        |     r1 = 0x48262;
    0x000240ca bl 0x396b0                                        |     zbx_dsprintf ()
    0x000240ce str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000240d0 b 0x23f7a                                         |     goto label_2;
                                                                 | label_14:
    0x000240d2 ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x000240d4 movs r2, 0                                        |     r2 = 0;
    0x000240d6 ldr r3, [pc, 0xc0]                                |     
    0x000240d8 movs r5, 1                                        |     r5 = 1;
    0x000240da ldr r0, [pc, 0xc0]                                |     
    0x000240dc orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000240e0 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x000240e2 add r3, pc                                        |     r3 = 0x48280;
    0x000240e4 add r0, pc                                        |     r0 = 0x48286;
    0x000240e6 mov.w r1, 0x1d2                                   |     r1 = case.0x3207a.11;
    0x000240ea bl 0x35d28                                        |     zbx_strdup2 ();
    0x000240ee str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000240f0 b 0x23f54                                         |     goto label_6;
                                                                 | label_17:
    0x000240f2 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x000240f4 movs r5, 0                                        |     r5 = 0;
    0x000240f6 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x000240f8 orr r2, r2, 4                                     |     r2 |= 4;
    0x000240fc str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
    0x000240fe b 0x23f54                                         |     goto label_6;
                                                                 | label_20:
    0x00024100 ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x00024102 movs r2, 0                                        |     r2 = 0;
    0x00024104 ldr r3, [pc, 0x98]                                |     
    0x00024106 movs r5, 1                                        |     r5 = 1;
    0x00024108 ldr r0, [pc, 0x98]                                |     
    0x0002410a orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x0002410e str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x00024110 add r3, pc                                        |     r3 = 0x482b4;
    0x00024112 add r0, pc                                        |     r0 = 0x482ba;
    0x00024114 mov.w r1, 0x1f6                                   |     r1 = case.0x3207a.11;
    0x00024118 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002411c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002411e b 0x23f54                                         |     goto label_6;
                                                                 | label_19:
    0x00024120 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00024122 movs r2, 0                                        |     r2 = 0;
    0x00024124 ldr r3, [pc, 0x80]                                |     
    0x00024126 mov.w r1, 0x1c0                                   |     r1 = case.0x3207a.11;
    0x0002412a movs r5, 1                                        |     r5 = 1;
    0x0002412c orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00024130 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00024132 add r3, pc                                        |     r3 = 0x482de;
    0x00024134 ldr r0, [pc, 0x74]                                |     
    0x00024136 add r0, pc                                        |     r0 = 0x482e6;
    0x00024138 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002413c str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002413e b 0x23f7a                                         |     goto label_2;
                                                                 | label_18:
    0x00024140 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00024144 ldrh r2, [r3, 0x32]                               |     r2 = *((r3 + 0x32));
    0x00024146 movs r3, r0                                       |     r3 = r0;
    0x00024148 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0002414a movs r0, r0                                       |     
    0x0002414c ldrh r4, [r5, 0x30]                               |     r4 = *((r5 + 0x30));
    0x0002414e movs r3, r0                                       |     r3 = r0;
    0x00024150 lsls r0, r4, 0xf                                  |     r0 = r4 << 0xf;
    0x00024152 movs r0, r0                                       |     
    0x00024154 ldrb r2, [r3, 2]                                  |     r2 = *((r3 + 2));
    0x00024156 movs r2, r0                                       |     r2 = r0;
    0x00024158 adds r2, r7, 3                                    |     r2 = r7 + 3;
    0x0002415a movs r2, r0                                       |     r2 = r0;
    0x0002415c adds r3, 0xd4                                     |     r3 += 0xd4;
    0x0002415e movs r2, r0                                       |     r2 = r0;
    0x00024160 lsrs r6, r6, 9                                    |     r6 >>= 9;
    0x00024162 movs r2, r0                                       |     r2 = r0;
    0x00024164 adds r3, 0xaa                                     |     r3 += 0xaa;
    0x00024166 movs r2, r0                                       |     r2 = r0;
    0x00024168 ldrh r0, [r5, 0x22]                               |     r0 = *((r5 + 0x22));
    0x0002416a movs r3, r0                                       |     r3 = r0;
    0x0002416c lsrs r4, r2, 8                                    |     r4 = r2 >> 8;
    0x0002416e movs r2, r0                                       |     r2 = r0;
    0x00024170 adds r3, 0x60                                     |     r3 += 0x60;
    0x00024172 movs r2, r0                                       |     r2 = r0;
    0x00024174 asrs r2, r2, 5                                    |     r2 >>= 5;
    0x00024176 movs r2, r0                                       |     r2 = r0;
    0x00024178 adds r3, 0x3a                                     |     r3 += 0x3a;
    0x0002417a movs r2, r0                                       |     r2 = r0;
    0x0002417c lsrs r4, r1, 8                                    |     r4 = r1 >> 8;
    0x0002417e movs r2, r0                                       |     r2 = r0;
    0x00024180 adds r2, 0xf4                                     |     r2 += 0xf4;
    0x00024182 movs r2, r0                                       |     r2 = r0;
    0x00024184 adds r3, 0x42                                     |     r3 += 0x42;
    0x00024186 movs r2, r0                                       |     r2 = r0;
    0x00024188 adds r2, 0xa6                                     |     r2 += 0xa6;
    0x0002418a movs r2, r0                                       |     r2 = r0;
    0x0002418c adds r2, 0xd2                                     |     r2 += 0xd2;
    0x0002418e movs r2, r0                                       |     r2 = r0;
    0x00024190 adds r2, 0x7c                                     |     r2 += 0x7c;
    0x00024192 movs r2, r0                                       |     r2 = r0;
    0x00024194 adds r2, 0x90                                     |     r2 += 0x90;
    0x00024196 movs r2, r0                                       |     r2 = r0;
    0x00024198 adds r2, 0x8e                                     |     r2 += 0x8e;
    0x0002419a movs r2, r0                                       |     r2 = r0;
    0x0002419c adds r2, 0x38                                     |     r2 += 0x38;
    0x0002419e movs r2, r0                                       |     r2 = r0;
    0x000241a0 movs r0, 0xd0                                     |     r0 = 0xd0;
    0x000241a2 movs r2, r0                                       |     r2 = r0;
    0x000241a4 adds r2, 0xa                                      |     r2 += 0xa;
    0x000241a6 movs r2, r0                                       |     r2 = r0;
    0x000241a8 lsrs r2, r3, 4                                    |     r2 = r3 >> 4;
    0x000241aa movs r2, r0                                       |     r2 = r0;
    0x000241ac adds r1, 0xe6                                     |     r1 += 0xe6;
    0x000241ae movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x241b0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.VFS_FILE_REGMATCH ()                             | void VFS_FILE_REGMATCH (int16_t arg_10000h_3, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000241b0 blmi 0xff936d44                                   |     __asm ("blmi 0xff936d44");
    0x000241b4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000241b8 mov r4, r1                                        |     r4 = r1;
    0x000241ba vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000241be add r2, pc                                        |     r2 += pc;
    0x000241c0 sub.w sp, sp, 0x10000                             |     
    0x000241c4 mov r5, r0                                        |     r5 = r0;
    0x000241c6 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000241c8 sub sp, 0x54                                      |     
    0x000241ca add.w r1, sp, 0x10000                             |     r1 += arg_10000h_3;
    0x000241ce ldr.w sb, [pc, 0x378]                             |     sb = *(0x00024548);
    0x000241d0 str r3, [sp, 0x1e0]                               |     r3 = case.0x3207a.11;
    0x000241d2 adds r1, 0x4c                                     |     r1 += 0x4c;
    0x000241d4 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000241d6 str r3, [r1]                                      |     *(r1) = r3;
    0x000241d8 mov.w r3, 0                                       |     r3 = 0;
    0x000241dc bl 0x34f20                                        |     zbx_time ();
    0x000241e0 ldr r3, [r5, 4]                                   |     r3 = *((r5 + 4));
    0x000241e2 add sb, pc                                        |     sb += pc;
    0x000241e4 cmp r3, 5                                         |     
                                                                 |     if (r3 > 5) {
    0x000241e6 bgt.w 0x243a0                                     |         goto label_7;
                                                                 |     }
    0x000241ea cmp r3, 0                                         |     
    0x000241ec vmov.f64 d9, d0                                   |     __asm ("vmov.f64 d9, d0");
    0x000241f0 itet gt                                           |     
                                                                 |     if (r3 <= 0) {
    0x000241f2 ldrgt r2, [r5, 8]                                 |         r2 = *((r5 + 8));
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x000241f4 movle r8, 0                                       |         r8 = 0;
                                                                 |     }
                                                                 |     if (r3 > 0) {
    0x000241f8 ldr.w r8, [r2]                                    |         r8 = *(r2);
                                                                 |     }
    0x000241fc cmp r3, 1                                         |     
    0x000241fe itet gt                                           |     
                                                                 |     if (r3 <= 1) {
    0x00024200 ldrgt r2, [r5, 8]                                 |         r2 = *((r5 + 8));
                                                                 |     }
                                                                 |     if (r3 > 1) {
    0x00024202 movle r7, 0                                       |         r7 = 0;
                                                                 |     }
                                                                 |     if (r3 <= 1) {
    0x00024204 ldrgt r7, [r2, 4]                                 |         r7 = *((r2 + 4));
                                                                 |     }
    0x00024206 cmp r3, 2                                         |     
    0x00024208 itet gt                                           |     
                                                                 |     if (r3 <= 2) {
    0x0002420a ldrgt r2, [r5, 8]                                 |         r2 = *((r5 + 8));
                                                                 |     }
                                                                 |     if (r3 > 2) {
    0x0002420c movle r1, 0                                       |         r1 = 0;
                                                                 |     }
                                                                 |     if (r3 <= 2) {
    0x0002420e ldrgt r1, [r2, 8]                                 |         r1 = *((r2 + 8));
                                                                 |     }
    0x00024210 cmp r3, 3                                         |     
    0x00024212 itet gt                                           |     
                                                                 |     if (r3 <= 3) {
    0x00024214 ldrgt r2, [r5, 8]                                 |         r2 = *((r5 + 8));
                                                                 |     }
                                                                 |     if (r3 > 3) {
    0x00024216 movle sl, 0                                       |         sl = 0;
                                                                 |     }
                                                                 |     if (r3 > 3) {
    0x0002421a ldr.w sl, [r2, 0xc]                               |         sl = *((r2 + 0xc));
                                                                 |     }
    0x0002421e cmp r3, 5                                         |     
    0x00024220 itet eq                                           |     
                                                                 |     if (r3 != 5) {
    0x00024222 ldreq r3, [r5, 8]                                 |         r3 = *((r5 + 8));
                                                                 |     }
                                                                 |     if (r3 == 5) {
    0x00024224 movne r5, 0                                       |         r5 = 0;
                                                                 |     }
                                                                 |     if (r3 != 5) {
    0x00024226 ldreq r5, [r3, 0x10]                              |         r5 = *((r3 + 0x10));
                                                                 |     }
    0x00024228 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0002422c beq.w 0x24356                                     |         goto label_8;
                                                                 |     }
    0x00024230 ldrb.w r3, [r8]                                   |     r3 = *(r8);
    0x00024234 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024236 beq.w 0x24356                                     |         goto label_8;
                                                                 |     }
    0x0002423a cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0002423c beq.w 0x243c6                                     |         goto label_9;
                                                                 |     }
    0x00024240 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x00024242 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00024244 beq.w 0x243c6                                     |         goto label_9;
                                                                 |     }
    0x00024248 add r6, sp, 0x50                                  |     r6 += var_50h_2;
    0x0002424a cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0002424c beq.w 0x243c0                                     |         goto label_10;
                                                                 |     }
    0x00024250 movs r2, 0x20                                     |     r2 = 0x20;
    0x00024252 sub.w r0, r6, 0x24                                |     r0 = r6 - 0x24;
    0x00024256 bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 | label_1:
    0x0002425a cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x0002425e beq 0x2426a                                       |         
    0x00024260 ldrb.w r3, [sl]                                   |         r3 = *(sl);
    0x00024264 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024266 bne.w 0x243e6                                     |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x0002426a movs r3, 0                                        |     r3 = 0;
    0x0002426c str r3, [r6, -0x2c]                               |     *((r6 - 0x2c)) = r3;
                                                                 |     if (r5 != 0) {
                                                                 | label_3:
    0x00024270 cbz r5, 0x2427a                                   |         
    0x00024272 ldrb r3, [r5]                                     |         r3 = *(r5);
    0x00024274 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00024276 bne.w 0x2442c                                     |             goto label_12;
                                                                 |         }
                                                                 |     }
    0x0002427a mov.w r3, -1                                      |     r3 = -1;
    0x0002427e str r3, [r6, -0x28]                               |     *((r6 - 0x28)) = r3;
                                                                 | label_4:
    0x00024282 mov r0, r8                                        |     r0 = r8;
    0x00024284 movs r1, 0                                        |     r1 = 0;
    0x00024286 blx 0xbfe4                                        |     r0 = puts (r0);
    0x0002428a cmp.w r0, -1                                      |     
    0x0002428e mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r0 == -1) {
    0x00024290 beq.w 0x2447a                                     |         goto label_13;
                                                                 |     }
    0x00024294 ldr r3, [pc, 0x2b4]                               |     r3 = *(0x2454c);
    0x00024296 ldr.w fp, [sb, r3]                                |     fp = *((sb + r3));
    0x0002429a vldr s15, [fp]                                    |     __asm ("vldr s15, [fp]");
    0x0002429e vcvt.f64.s32 d8, s15                              |     __asm ("vcvt.f64.s32 d8, s15");
    0x000242a2 bl 0x34f20                                        |     zbx_time ();
    0x000242a6 vsub.f64 d0, d0, d9                               |     __asm ("vsub.f64 d0, d0, d9");
    0x000242aa vcmpe.f64 d8, d0                                  |     __asm ("vcmpe.f64 d8, d0");
    0x000242ae vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < -1) {
    0x000242b2 bmi.w 0x244c0                                     |         goto label_14;
                                                                 |     }
    0x000242b6 ldr r3, [pc, 0x298]                               |     
    0x000242b8 movs r5, 0                                        |     r5 = 0;
    0x000242ba add.w sl, sp, 0x2c                                |     sl += var_2ch;
    0x000242bc lsrs r4, r5, 8                                    |     r4 = r5 >> 8;
    0x000242be add.w sb, sp, 0x4c                                |     sb += var_4ch;
    0x000242c2 str r4, [sp, 0x1c]                                |     var_1ch = r4;
    0x000242c4 add r3, pc                                        |     r3 = 0x4881a;
    0x000242c6 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x000242c8 mov r3, sl                                        |         r3 = sl;
    0x000242ca mov.w r2, 0x10000                                 |         r2 = case.0x3207a.11;
    0x000242ce mov r1, sb                                        |         r1 = sb;
    0x000242d0 mov r0, r8                                        |         r0 = r8;
    0x000242d2 bl 0x34a50                                        |         r0 = zbx_read ();
    0x000242d6 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 <= r0) {
    0x000242d8 ble.w 0x244ee                                     |             goto label_15;
                                                                 |         }
    0x000242dc vldr s15, [fp]                                    |         __asm ("vldr s15, [fp]");
    0x000242e0 vcvt.f64.s32 d8, s15                              |         __asm ("vcvt.f64.s32 d8, s15");
    0x000242e4 bl 0x34f20                                        |         zbx_time ();
    0x000242e8 vsub.f64 d0, d0, d9                               |         __asm ("vsub.f64 d0, d0, d9");
    0x000242ec vcmpe.f64 d8, d0                                  |         __asm ("vcmpe.f64 d8, d0");
    0x000242f0 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r4 < r0) {
    0x000242f4 bmi.w 0x2449e                                     |             goto label_16;
                                                                 |         }
    0x000242f8 ldr r3, [r6, -0x2c]                               |         r3 = *((r6 - 0x2c));
    0x000242fc adds r5, 1                                        |         r5++;
    0x000242fe cmp r3, r5                                        |         
    0x00024300 bhi 0x242c8                                       |         
                                                                 |     } while (r3 > r5);
    0x00024302 mov r1, r4                                        |     r1 = r4;
    0x00024304 mov r2, sl                                        |     r2 = sl;
    0x00024306 mov r0, sb                                        |     r0 = sb;
    0x00024308 bl 0x3a550                                        |     convert_to_utf8 ();
    0x0002430c ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0002430e mov r4, r0                                        |     r4 = r0;
    0x00024310 bl 0x3936c                                        |     zbx_rtrim ();
    0x00024314 movs r2, 0                                        |     r2 = 0;
    0x00024316 mov r1, r7                                        |     r1 = r7;
    0x00024318 mov r0, r4                                        |     r0 = r4;
    0x0002431a bl 0x27e94                                        |     r0 = zbx_regexp_match ();
    0x0002431e mov r2, r0                                        |     r2 = r0;
                                                                 |     if (r4 != 0) {
    0x00024320 cbz r4, 0x2432c                                   |         
    0x00024322 str r0, [sp, 0x18]                                |         var_18h = r0;
    0x00024324 mov r0, r4                                        |         r0 = r4;
    0x00024326 blx 0xbd14                                        |         gai_strerror ();
    0x0002432a ldr r2, [sp, 0x18]                                |         r2 = var_18h;
                                                                 |     }
    0x0002432c ldr r3, [r6, -0x28]                               |     r3 = *((r6 - 0x28));
    0x00024330 cmp r3, r5                                        |     
                                                                 |     if (r3 < r5) {
    0x00024332 bls.w 0x244e0                                     |         goto label_17;
                                                                 |     }
    0x00024336 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00024338 beq 0x242c8                                       |         goto label_0;
                                                                 |     }
    0x0002433a ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x0002433c movs r2, 1                                        |     r2 = 1;
    0x0002433e movs r1, 0                                        |     r1 = 0;
    0x00024340 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
                                                                 | label_6:
    0x00024342 movs r5, 0                                        |     r5 = 0;
    0x00024344 orr r3, r3, 1                                     |     r3 |= 1;
    0x00024348 str r2, [r4, 8]                                   |     *((r4 + 8)) = r2;
    0x0002434a str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x0002434c str r1, [r4, 0xc]                                 |     *((r4 + 0xc)) = r1;
                                                                 | label_5:
    0x0002434e mov r0, r8                                        |     r0 = r8;
    0x00024350 blx 0xc47c                                        |     fcn_0000c47c ();
    0x00024354 b 0x24374                                         |     goto label_2;
                                                                 | label_8:
    0x00024356 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00024358 movs r5, 1                                        |     r5 = 1;
    0x0002435a ldr r3, [pc, 0x1f8]                               |     
    0x0002435c movs r2, 0                                        |     r2 = 0;
    0x0002435e movw r1, 0x21d                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024362 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x00024366 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00024368 add r3, pc                                        |     r3 = 0x488c2;
    0x0002436a ldr r0, [pc, 0x1ec]                               |     
    0x0002436c add r0, pc                                        |     r0 = 0x488ca;
    0x0002436e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024372 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
                                                                 |     do {
                                                                 | label_2:
    0x00024374 ldr r2, [pc, 0x1e4]                               |         
    0x00024376 add.w r1, sp, 0x10000                             |         r1 += arg_10000h_3;
    0x0002437a ldr r3, [pc, 0x1c8]                               |         r3 = *(0x24546);
    0x0002437c adds r1, 0x4c                                     |         r1 += 0x4c;
    0x0002437e add r2, pc                                        |         r2 = 0x488de;
    0x00024380 ldr r3, [r2, r3]                                  |         r3 = *(0x488de);
    0x00024382 ldr r2, [r3]                                      |         r2 = *(0x488de);
    0x00024384 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00024386 eors r2, r3                                       |         r2 ^= r3;
    0x00024388 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002438c bne.w 0x24536                                     |             goto label_18;
                                                                 |         }
    0x00024390 mov r0, r5                                        |         r0 = r5;
    0x00024392 add.w sp, sp, 0x10000                             |         
    0x00024396 add sp, 0x54                                      |         
    0x00024398 vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x0002439c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x000243a0 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x000243a2 movs r2, 0                                        |         r2 = 0;
    0x000243a4 ldr r3, [pc, 0x1b8]                               |         
    0x000243a6 movw r1, 0x211                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000243aa movs r5, 1                                        |         r5 = 1;
    0x000243ac orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x000243b0 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x000243b2 add r3, pc                                        |         r3 = 0x48916;
    0x000243b4 ldr r0, [pc, 0x1ac]                               |         
    0x000243b6 add r0, pc                                        |         r0 = 0x4891e;
    0x000243b8 bl 0x35d28                                        |         zbx_strdup2 ();
    0x000243bc str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x000243be b 0x24374                                         |         
                                                                 |     } while (1);
                                                                 | label_10:
    0x000243c0 strb r1, [r6, -0x24]                              |     *((r6 - 0x24)) = r1;
    0x000243c4 b 0x2425a                                         |     goto label_1;
                                                                 | label_9:
    0x000243c6 ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000243c8 movs r2, 0                                        |     r2 = 0;
    0x000243ca ldr r3, [pc, 0x19c]                               |     
    0x000243cc movw r1, 0x223                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000243d0 movs r5, 1                                        |     r5 = 1;
    0x000243d2 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x000243d4 movs r0, r4                                       |     r0 = r4;
    0x000243d6 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000243d8 add r3, pc                                        |     r3 = 0x48946;
    0x000243da ldr r0, [pc, 0x190]                               |     
    0x000243dc add r0, pc                                        |     r0 = 0x4894e;
    0x000243de bl 0x35d28                                        |     zbx_strdup2 ();
    0x000243e2 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000243e4 b 0x24374                                         |     goto label_2;
                                                                 | label_11:
    0x000243e6 vmov.i64 d17, 0xffffffff                          |     __asm ("vmov.i64 d17, case.0x3207a.11");
    0x000243ea mov r0, sl                                        |     r0 = sl;
    0x000243ec vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000243f0 movs r3, 4                                        |     r3 = 4;
    0x000243f2 sub.w r2, r6, 0x2c                                |     r2 = r6 - 0x2c;
    0x000243f6 mov.w r1, -1                                      |     r1 = -1;
    0x000243fa vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x000243fe vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00024402 bl 0x367c8                                        |     is_uint_n_range ();
    0x00024406 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x00024408 bne.w 0x24270                                     |         goto label_3;
                                                                 |     }
    0x0002440c ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002440e movs r2, 0                                        |     r2 = 0;
    0x00024410 ldr r3, [pc, 0x15c]                               |     
    0x00024412 mov.w r1, 0x230                                   |     r1 = case.0x3207a.11;
    0x00024416 movs r5, 1                                        |     r5 = 1;
    0x00024418 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002441c str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002441e add r3, pc                                        |     r3 = 0x48992;
    0x00024420 ldr r0, [pc, 0x150]                               |     
    0x00024422 add r0, pc                                        |     r0 = 0x4899a;
    0x00024424 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024428 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002442a b 0x24374                                         |     goto label_2;
                                                                 | label_12:
    0x0002442c vmov.i64 d17, 0xffffffff                          |     __asm ("vmov.i64 d17, case.0x3207a.11");
    0x00024430 mov r0, r5                                        |     r0 = r5;
    0x00024432 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00024436 movs r3, 4                                        |     r3 = 4;
    0x00024438 sub.w r2, r6, 0x28                                |     r2 = r6 - 0x28;
    0x0002443c mov.w r1, -1                                      |     r1 = -1;
    0x00024440 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x00024444 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00024448 bl 0x367c8                                        |     is_uint_n_range ();
    0x0002444c adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x0002444e beq 0x24516                                       |         goto label_19;
                                                                 |     }
    0x00024450 ldrd r2, r3, [r6, -0x2c]                          |     __asm ("ldrd r2, r3, [r6, -0x2c]");
    0x00024454 cmp r2, r3                                        |     
                                                                 |     if (r2 < r3) {
    0x00024456 bls.w 0x24282                                     |         goto label_4;
                                                                 |     }
    0x00024458 add r7, sp, 0x50                                  |     r7 = sp + 0x50;
    0x0002445a ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x0002445c movs r2, 0                                        |     r2 = 0;
    0x0002445e ldr r3, [pc, 0x118]                               |     
    0x00024460 movw r1, 0x23e                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024464 movs r5, 1                                        |     r5 = 1;
    0x00024466 orr r0, r0, 0x20                                  |     r0 |= 0x20;
    0x0002446a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x0002446c add r3, pc                                        |     r3 = 0x489ea;
    0x0002446e ldr r0, [pc, 0x10c]                               |     
    0x00024470 add r0, pc                                        |     r0 = 0x489f2;
    0x00024472 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00024476 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00024478 b 0x24374                                         |     goto label_2;
                                                                 | label_13:
    0x0002447a ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x0002447c movs r5, 1                                        |     r5 = 1;
    0x0002447e orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00024482 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00024484 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00024488 ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002448a bl 0x26fdc                                        |     zbx_strerror ();
    0x0002448e ldr r1, [pc, 0xf0]                                |     
    0x00024490 mov r2, r0                                        |     r2 = r0;
    0x00024492 movs r0, 0                                        |     r0 = 0;
    0x00024494 add r1, pc                                        |     r1 = 0x48a1a;
    0x00024496 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0002449a str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x0002449c b 0x24374                                         |     goto label_2;
                                                                 | label_16:
    0x0002449e ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x000244a0 movs r2, 0                                        |     r2 = 0;
    0x000244a2 ldr r3, [pc, 0xe0]                                |     
    0x000244a4 movs r5, 1                                        |     r5 = 1;
    0x000244a6 ldr r0, [pc, 0xe0]                                |     
    0x000244a8 ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x000244aa add r3, pc                                        |     r3 = 0x48a34;
    0x000244ac add r0, pc                                        |     r0 = 0x48a3a;
    0x000244ae orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000244b2 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x000244b4 mov.w r1, 0x254                                   |     r1 = case.0x3207a.11;
    0x000244b8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000244bc str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000244be b 0x2434e                                         |     goto label_5;
                                                                 | label_14:
    0x000244c0 ldr r1, [r4, 0x28]                                |     r1 = *((r4 + 0x28));
    0x000244c2 movs r2, 0                                        |     r2 = 0;
    0x000244c4 ldr r3, [pc, 0xc4]                                |     
    0x000244c6 movs r5, 1                                        |     r5 = 1;
    0x000244c8 ldr r0, [pc, 0xc4]                                |     
    0x000244ca orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000244ce str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x000244d0 add r3, pc                                        |     r3 = 0x48a60;
    0x000244d2 add r0, pc                                        |     r0 = 0x48a66;
    0x000244d4 movw r1, 0x24a                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000244d8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000244dc str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x000244de b 0x2434e                                         |     goto label_5;
                                                                 | label_17:
    0x000244e0 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x000244e2 subs r2, 0                                        |     
    0x000244e4 it ne                                             |     
                                                                 |     if (r2 == 0) {
    0x000244e6 movne r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x000244e8 movs r1, 0                                        |     r1 = 0;
    0x000244ea ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x000244ec b 0x24342                                         |     goto label_6;
                                                                 | label_15:
    0x000244ee mov r1, r4                                        |     r1 = r4;
    0x000244f0 ldr r4, [sp, 0x1c]                                |     r4 = var_1ch;
    0x000244f2 adds r1, 1                                        |     r1++;
    0x000244f4 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
                                                                 |     if (r1 == 1) {
    0x000244f6 bne 0x2453a                                       |         
    0x000244f8 orr r1, r3, 0x20                                  |         r1 = r3 | 0x20;
    0x000244fc ldr r0, [pc, 0x94]                                |         
    0x000244fe ldr r3, [pc, 0x98]                                |         
    0x00024500 movs r2, 0                                        |         r2 = 0;
    0x00024502 str r1, [r4, 0x28]                                |         *((r4 + 0x28)) = r1;
    0x00024504 movw r1, 0x267                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00024508 add r0, pc                                        |         r0 = 0x48aa0;
    0x0002450a movs r5, 1                                        |         r5 = 1;
    0x0002450c add r3, pc                                        |         r3 = 0x48aaa;
    0x0002450e bl 0x35d28                                        |         zbx_strdup2 ();
    0x00024512 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00024514 b 0x2434e                                         |         goto label_5;
                                                                 | label_19:
    0x00024516 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00024518 movs r2, 0                                        |         r2 = 0;
    0x0002451a ldr r3, [pc, 0x80]                                |         
    0x0002451c mov.w r1, 0x238                                   |         r1 = case.0x3207a.11;
    0x00024520 movs r5, 1                                        |         r5 = 1;
    0x00024522 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00024526 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00024528 add r3, pc                                        |         r3 = 0x48aca;
    0x0002452a ldr r0, [pc, 0x74]                                |         
    0x0002452c add r0, pc                                        |         r0 = 0x48ad2;
    0x0002452e bl 0x35d28                                        |         zbx_strdup2 ();
    0x00024532 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00024534 b 0x24374                                         |         goto label_2;
                                                                 | label_18:
    0x00024536 blx 0xbe48                                        |         fcn_0000be48 ();
                                                                 |     }
    0x0002453a movs r2, 0                                        |     r2 = 0;
    0x0002453c mov r1, r2                                        |     r1 = r2;
    0x0002453e b 0x24342                                         |     goto label_6;
                                                                 | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23568 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.VFS_FILE_SIZE ()         | void VFS_FILE_SIZE (int16_t arg_e8h, int16_t arg_1e8h, int16_t arg1, int16_t arg2) {
                                         |     int16_t var_1ch;
                                         |     int16_t var_0h;
                                         |     int16_t var_6ch;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x00023568 ldr r2, [pc, 0xbc]        |     
    0x0002356a ldr r3, [pc, 0xc0]        |     r3 = *(0x2362e);
    0x0002356c push {r4, r5, lr}         |     
    0x0002356e sub sp, 0x74              |     
    0x00023570 ldr r5, [r0, 4]           |     r5 = *((r0 + 4));
    0x00023572 add r2, pc                |     r2 = 0x46b9e;
    0x00023574 mov r4, r1                |     r4 = r1;
    0x00023576 ldr r3, [r2, r3]          |     
    0x00023578 cmp r5, 1                 |     
    0x0002357a ldr r3, [r3]              |     r3 = *(0x46b9e);
    0x0002357c str r3, [sp, 0x6c]        |     var_6ch = r3;
    0x0002357e mov.w r3, 0               |     r3 = 0;
                                         |     if (r5 > 1) {
    0x00023582 bgt 0x235c6               |         goto label_1;
                                         |     }
                                         |     if (r5 == 1) {
    0x00023584 bne 0x23590               |         
    0x00023586 ldr r3, [r0, 8]           |         r3 = *((r0 + 8));
    0x00023588 ldr r0, [r3]              |         r0 = *(r3);
                                         |         if (r0 == 0) {
    0x0002358a cbz r0, 0x23590           |             goto label_2;
                                         |         }
    0x0002358c ldrb r3, [r0]             |         r3 = *(r0);
                                         |         if (r3 != 0) {
    0x0002358e cbnz r3, 0x235e6          |             goto label_3;
                                         |         }
                                         |     }
                                         | label_2:
    0x00023590 ldr r0, [r4, 0x28]        |     r0 = *((r4 + 0x28));
    0x00023592 movs r2, 0                |     r2 = 0;
    0x00023594 ldr r3, [pc, 0x98]        |     
    0x00023596 movs r1, 0x30             |     r1 = 0x30;
    0x00023598 orr r0, r0, 0x20          |     r0 |= 0x20;
    0x0002359c str r0, [r4, 0x28]        |     *((r4 + 0x28)) = r0;
    0x0002359e add r3, pc                |     r3 = 0x46bd2;
    0x000235a0 ldr r0, [pc, 0x90]        |     
    0x000235a2 add r0, pc                |     r0 = 0x46bda;
    0x000235a4 bl 0x35d28                |     r0 = zbx_strdup2 ();
    0x000235a8 mov r3, r0                |     r3 = r0;
    0x000235aa movs r0, 1                |     r0 = 1;
    0x000235ac str r3, [r4, 0x20]        |     *((r4 + 0x20)) = r3;
                                         |     do {
                                         | label_0:
    0x000235ae ldr r2, [pc, 0x88]        |         
    0x000235b0 ldr r3, [pc, 0x78]        |         r3 = *(0x2362c);
    0x000235b2 add r2, pc                |         r2 = 0x46bf0;
    0x000235b4 ldr r3, [r2, r3]          |         r3 = *(0x46bf0);
    0x000235b6 ldr r2, [r3]              |         r2 = *(0x46bf0);
    0x000235b8 ldr r3, [sp, 0x6c]        |         r3 = var_6ch;
    0x000235ba eors r2, r3               |         r2 ^= r3;
    0x000235bc mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000235c0 bne 0x23624               |             goto label_4;
                                         |         }
    0x000235c2 add sp, 0x74              |         
    0x000235c4 pop {r4, r5, pc}          |         
                                         | label_1:
    0x000235c6 ldr r0, [r1, 0x28]        |         r0 = *((r1 + 0x28));
    0x000235c8 movs r2, 0                |         r2 = 0;
    0x000235ca ldr r3, [pc, 0x70]        |         
    0x000235cc movs r1, 0x28             |         r1 = 0x28;
    0x000235ce orr r0, r0, 0x20          |         r0 |= 0x20;
    0x000235d2 str r0, [r4, 0x28]        |         *((r4 + 0x28)) = r0;
    0x000235d4 add r3, pc                |         r3 = 0x46c16;
    0x000235d6 ldr r0, [pc, 0x68]        |         
    0x000235d8 add r0, pc                |         r0 = 0x46c1e;
    0x000235da bl 0x35d28                |         r0 = zbx_strdup2 ();
    0x000235de mov r3, r0                |         r3 = r0;
    0x000235e0 movs r0, 1                |         r0 = 1;
    0x000235e2 str r3, [r4, 0x20]        |         *((r4 + 0x20)) = r3;
    0x000235e4 b 0x235ae                 |         
                                         |     } while (1);
                                         | label_3:
    0x000235e6 mov r1, sp                |     r1 = sp;
    0x000235e8 blx 0xbe7c                |     unlink (r0);
    0x000235ec ldr r3, [r4, 0x28]        |     r3 = *((r4 + 0x28));
                                         |     if (r0 == 0) {
    0x000235ee cbnz r0, 0x23600          |         
    0x000235f0 vldr d16, [sp, 0x30]      |         __asm ("vldr d16, [sp, 0x30]");
    0x000235f4 orr r3, r3, 1             |         r3 |= 1;
    0x000235f8 str r3, [r4, 0x28]        |         *((r4 + 0x28)) = r3;
    0x000235fa vstr d16, [r4, 8]         |         __asm ("vstr d16, [r4, 8]");
    0x000235fe b 0x235ae                 |         goto label_0;
                                         |     }
    0x00023600 orr r3, r3, 0x20          |     r3 |= 0x20;
    0x00023604 str r3, [r4, 0x28]        |     *((r4 + 0x28)) = r3;
    0x00023606 blx 0xc15c                |     r0 = fcn_0000c15c ();
    0x0002360a ldr r0, [r0]              |     r0 = *(r0);
    0x0002360c bl 0x26fdc                |     zbx_strerror ();
    0x00023610 ldr r1, [pc, 0x30]        |     
    0x00023612 mov r2, r0                |     r2 = r0;
    0x00023614 movs r0, 0                |     r0 = 0;
    0x00023616 add r1, pc                |     r1 = 0x46c5e;
    0x00023618 bl 0x396b0                |     r0 = zbx_dsprintf ()
    0x0002361c mov r3, r0                |     r3 = r0;
    0x0002361e mov r0, r5                |     r0 = r5;
    0x00023620 str r3, [r4, 0x20]        |     *((r4 + 0x20)) = r3;
    0x00023622 b 0x235ae                 |     goto label_0;
                                         | label_4:
    0x00023624 blx 0xbe48                |     fcn_0000be48 ();
    0x00023628 str r6, [sp, 0x1e8]       |     *(arg_1e8h) = r6;
    0x0002362a movs r3, r0               |     r3 = r0;
    0x0002362c lsls r4, r2, 0xc          |     r4 = r2 << 0xc;
    0x0002362e movs r0, r0               |     
    0x00023630 asrs r6, r0, 0x11         |     r6 = r0 >> 0x11;
    0x00023632 movs r2, r0               |     r2 = r0;
    0x00023634 subs r5, 0x7a             |     r5 -= 0x7a;
    0x00023636 movs r2, r0               |     r2 = r0;
    0x00023638 str r6, [sp, 0xe8]        |     *(arg_e8h) = r6;
    0x0002363a movs r3, r0               |     r3 = r0;
    0x0002363c asrs r0, r7, 0xf          |     r0 = r7 >> 0xf;
    0x0002363e movs r2, r0               |     r2 = r0;
    0x00023640 subs r5, 0x44             |     r5 -= 0x44;
    0x00023642 movs r2, r0               |     r2 = r0;
    0x00023644 subs r5, 0xe              |     r5 -= 0xe;
    0x00023646 movs r2, r0               |     r2 = r0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x23648 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.VFS_FILE_TIME ()             | void VFS_FILE_TIME (int16_t arg_38h, int16_t arg_270h, int16_t arg1, int16_t arg2) {
                                             |     int16_t var_6ch;
                                             |     int16_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int16_t var_8h;
                                             |     int32_t var_8h_2;
                                             |     int16_t var_10h;
                                             |     int32_t var_10h_2;
                                             |     int16_t var_1ch;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00023648 blmi 0x13f5f88                |     __asm ("blmi sym.zbx_strlcpy_utf8");
    0x0002364c push {r4, r5, r6, r7, lr}     |     
    0x0002364e sub sp, 0x24                  |     
    0x00023650 add r2, pc                    |     r2 += pc;
    0x00023652 mov r4, r1                    |     r4 = r1;
    0x00023654 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x00023656 ldr r3, [r3]                  |     r3 = *(r3);
    0x00023658 str r3, [sp, 0x1c]            |     var_1ch = r3;
    0x0002365a mov.w r3, 0                   |     r3 = 0;
    0x0002365e ldr r3, [r0, 4]               |     r3 = *((r0 + 4));
    0x00023660 cmp r3, 2                     |     
                                             |     if (r3 > 2) {
    0x00023662 bgt 0x23704                   |         goto label_1;
                                             |     }
    0x00023664 cmp r3, 0                     |     
                                             |     if (r3 > 0) {
    0x00023666 ble 0x236be                   |         
    0x00023668 ldr r2, [r0, 8]               |         r2 = *((r0 + 8));
    0x0002366a cmp r3, 2                     |         
    0x0002366c it ne                         |         
                                             |         if (r3 == 2) {
    0x0002366e movne r7, 0                   |             r7 = 0;
                                             |         }
    0x00023670 ldr r0, [r2]                  |         r0 = *(r2);
    0x00023672 it eq                         |         
                                             |         if (r3 != 2) {
    0x00023674 ldreq r7, [r2, 4]             |             r7 = *((r2 + 4));
                                             |         }
                                             |         if (r0 != 0) {
    0x00023676 cbz r0, 0x236be               |             
    0x00023678 ldrb r3, [r0]                 |             r3 = *(r0);
                                             |             if (r3 == 0) {
    0x0002367a cbz r3, 0x236be               |                 goto label_2;
                                             |             }
    0x0002367c mov r1, sp                    |             r1 = sp;
    0x0002367e bl 0x34bc4                    |             r0 = zbx_get_file_time ();
    0x00023682 mov r5, r0                    |             r5 = r0;
    0x00023684 cmp r0, 0                     |             
                                             |             if (r0 != 0) {
    0x00023686 bne 0x23722                   |                 goto label_3;
                                             |             }
    0x00023688 ldr r6, [r4, 0x28]            |             r6 = *((r4 + 0x28));
    0x0002368a cmp r7, 0                     |             
                                             |             if (r7 == 0) {
    0x0002368c beq 0x236f4                   |                 goto label_4;
                                             |             }
    0x0002368e ldrb r3, [r7]                 |             r3 = *(r7);
                                             |             if (r3 == 0) {
    0x00023690 cbz r3, 0x236f4               |                 goto label_4;
                                             |             }
    0x00023692 ldr r1, [pc, 0xf8]            |             
    0x00023694 mov r0, r7                    |             r0 = r7;
    0x00023696 add r1, pc                    |             r1 = "vfs.dir.size";
    0x00023698 blx 0xbc58                    |             r0 = fcn_0000bc58 ();
                                             |             if (r0 == 0) {
    0x0002369c cbz r0, 0x236f4               |                 goto label_4;
                                             |             }
    0x0002369e ldr r1, [pc, 0xf0]            |             
    0x000236a0 mov r0, r7                    |             r0 = r7;
    0x000236a2 add r1, pc                    |             r1 = "/var/log";
    0x000236a4 blx 0xbc58                    |             r0 = fcn_0000bc58 ();
    0x000236a8 mov r5, r0                    |             r5 = r0;
    0x000236aa cmp r0, 0                     |             
                                             |             if (r0 != 0) {
    0x000236ac bne 0x23746                   |                 goto label_5;
                                             |             }
    0x000236ae ldrd r2, r3, [sp, 8]          |             __asm ("ldrd r2, r3, [var_8h]");
    0x000236b2 orr r6, r6, 1                 |             r6 |= 1;
    0x000236b6 str r6, [r4, 0x28]            |             *((r4 + 0x28)) = r6;
    0x000236b8 strd r2, r3, [r4, 8]          |             __asm ("strd r2, r3, [r4, 8]");
    0x000236bc b 0x236da                     |             
                                             |         }
                                             |     } else {
                                             | label_2:
    0x000236be ldr r0, [r4, 0x28]            |         r0 = *((r4 + 0x28));
    0x000236c0 movs r5, 1                    |         r5 = 1;
    0x000236c2 ldr r3, [pc, 0xd0]            |         
    0x000236c4 movs r2, 0                    |         r2 = 0;
    0x000236c6 movs r1, 0x52                 |         r1 = 0x52;
    0x000236c8 orr r0, r0, 0x20              |         r0 |= 0x20;
    0x000236cc str r0, [r4, 0x28]            |         *((r4 + 0x28)) = r0;
    0x000236ce add r3, pc                    |         r3 = "net.dns.record";
    0x000236d0 ldr r0, [pc, 0xc4]            |         
    0x000236d2 add r0, pc                    |         r0 = 0x46e6e;
    0x000236d4 bl 0x35d28                    |         zbx_strdup2 ();
    0x000236d8 str r0, [r4, 0x20]            |         *((r4 + 0x20)) = r0;
                                             |     }
                                             |     do {
                                             | label_0:
    0x000236da ldr r2, [pc, 0xc0]            |         
    0x000236dc ldr r3, [pc, 0xa8]            |         r3 = *(0x23788);
    0x000236de add r2, pc                    |         r2 = 0x46e80;
    0x000236e0 ldr r3, [r2, r3]              |         r3 = *(0x46e80);
    0x000236e2 ldr r2, [r3]                  |         r2 = *(0x46e80);
    0x000236e4 ldr r3, [sp, 0x1c]            |         r3 = var_1ch;
    0x000236e6 eors r2, r3                   |         r2 ^= r3;
    0x000236e8 mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x000236ec bne 0x23780                   |             goto label_6;
                                             |         }
    0x000236ee mov r0, r5                    |         r0 = r5;
    0x000236f0 add sp, 0x24                  |         
    0x000236f2 pop {r4, r5, r6, r7, pc}      |         
                                             | label_4:
    0x000236f4 ldrd r2, r3, [sp]             |         __asm ("ldrd r2, r3, [sp]");
    0x000236f8 orr r6, r6, 1                 |         r6 |= 1;
    0x000236fc str r6, [r4, 0x28]            |         *((r4 + 0x28)) = r6;
    0x000236fe strd r2, r3, [r4, 8]          |         __asm ("strd r2, r3, [r4, 8]");
    0x00023702 b 0x236da                     |         
                                             |     } while (1);
                                             | label_1:
    0x00023704 ldr r0, [r1, 0x28]            |     r0 = *((r1 + 0x28));
    0x00023706 movs r2, 0                    |     r2 = 0;
    0x00023708 ldr r3, [pc, 0x94]            |     
    0x0002370a movs r1, 0x49                 |     r1 = 0x49;
    0x0002370c movs r5, 1                    |     r5 = 1;
    0x0002370e orr r0, r0, 0x20              |     r0 |= 0x20;
    0x00023712 str r0, [r4, 0x28]            |     *((r4 + 0x28)) = r0;
    0x00023714 add r3, pc                    |     r3 = 0x46eb8;
    0x00023716 ldr r0, [pc, 0x8c]            |     
    0x00023718 add r0, pc                    |     r0 = 0x46ec2;
    0x0002371a bl 0x35d28                    |     zbx_strdup2 ();
    0x0002371e str r0, [r4, 0x20]            |     *((r4 + 0x20)) = r0;
    0x00023720 b 0x236da                     |     goto label_0;
                                             | label_3:
    0x00023722 ldr r3, [r4, 0x28]            |     r3 = *((r4 + 0x28));
    0x00023724 movs r5, 1                    |     r5 = 1;
    0x00023726 orr r3, r3, 0x20              |     r3 |= 0x20;
    0x0002372a str r3, [r4, 0x28]            |     *((r4 + 0x28)) = r3;
    0x0002372c blx 0xc15c                    |     r0 = fcn_0000c15c ();
    0x00023730 ldr r0, [r0]                  |     r0 = *(r0);
    0x00023732 bl 0x26fdc                    |     zbx_strerror ();
    0x00023736 ldr r1, [pc, 0x70]            |     
    0x00023738 mov r2, r0                    |     r2 = r0;
    0x0002373a movs r0, 0                    |     r0 = 0;
    0x0002373c add r1, pc                    |     r1 = 0x46eea;
    0x0002373e bl 0x396b0                    |     zbx_dsprintf ()
    0x00023742 str r0, [r4, 0x20]            |     *((r4 + 0x20)) = r0;
    0x00023744 b 0x236da                     |     goto label_0;
                                             | label_5:
    0x00023746 ldr r1, [pc, 0x64]            |     
    0x00023748 mov r0, r7                    |     r0 = r7;
    0x0002374a add r1, pc                    |     r1 = 0x46efc;
    0x0002374c blx 0xbc58                    |     r0 = fcn_0000bc58 ();
    0x00023750 mov r5, r0                    |     r5 = r0;
                                             |     if (r0 == 0) {
    0x00023752 cbnz r0, 0x23764              |         
    0x00023754 ldrd r2, r3, [sp, 0x10]       |         __asm ("ldrd r2, r3, [var_10h]");
    0x00023758 orr r6, r6, 1                 |         r6 |= 1;
    0x0002375c str r6, [r4, 0x28]            |         *((r4 + 0x28)) = r6;
    0x0002375e strd r2, r3, [r4, 8]          |         __asm ("strd r2, r3, [r4, 8]");
    0x00023762 b 0x236da                     |         goto label_0;
                                             |     }
    0x00023764 ldr r3, [pc, 0x48]            |     
    0x00023766 orr r6, r6, 0x20              |     r6 |= 0x20;
    0x0002376a ldr r0, [pc, 0x48]            |     
    0x0002376c movs r2, 0                    |     r2 = 0;
    0x0002376e movs r1, 0x64                 |     r1 = 0x64;
    0x00023770 str r6, [r4, 0x28]            |     *((r4 + 0x28)) = r6;
    0x00023772 add r3, pc                    |     r3 = 0x46f26;
    0x00023774 movs r5, 1                    |     r5 = 1;
    0x00023776 add r0, pc                    |     r0 = 0x46f30;
    0x00023778 bl 0x35d28                    |     zbx_strdup2 ();
    0x0002377c str r0, [r4, 0x20]            |     *((r4 + 0x20)) = r0;
    0x0002377e b 0x236da                     |     goto label_0;
                                             | label_6:
    0x00023780 blx 0xbe48                    |     fcn_0000be48 ();
    0x00023784 str r5, [sp, 0x270]           |     *(arg_270h) = r5;
    0x00023786 movs r3, r0                   |     r3 = r0;
    0x00023788 lsls r4, r2, 0xc              |     r4 = r2 << 0xc;
    0x0002378a movs r0, r0                   |     
    0x0002378c adds r7, 0xa                  |     r7 += 0xa;
    0x0002378e movs r2, r0                   |     r2 = r0;
    0x00023790 subs r4, 0xa6                 |     r4 -= 0xa6;
    0x00023792 movs r2, r0                   |     r2 = r0;
    0x00023794 asrs r6, r2, 0xc              |     r6 = r2 >> 0xc;
    0x00023796 movs r2, r0                   |     r2 = r0;
    0x00023798 subs r4, 0x4a                 |     r4 -= 0x4a;
    0x0002379a movs r2, r0                   |     r2 = r0;
    0x0002379c str r5, [sp, 0x38]            |     *(arg_38h) = r5;
    0x0002379e movs r3, r0                   |     r3 = r0;
    0x000237a0 asrs r0, r7, 0xa              |     r0 = r7 >> 0xa;
    0x000237a2 movs r2, r0                   |     r2 = r0;
    0x000237a4 subs r4, 4                    |     r4 -= 4;
    0x000237a6 movs r2, r0                   |     r2 = r0;
    0x000237a8 subs r3, 0xe8                 |     r3 -= 0xe8;
    0x000237aa movs r2, r0                   |     r2 = r0;
    0x000237ac subs r4, 6                    |     r4 -= 6;
    0x000237ae movs r2, r0                   |     r2 = r0;
    0x000237b0 adds r6, r7, r6               |     r6 = r7 + r6;
    0x000237b2 movs r2, r0                   |     r2 = r0;
    0x000237b4 subs r3, 0xa6                 |     r3 -= 0xa6;
    0x000237b6 movs r2, r0                   |     r2 = r0;
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x1f438 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.VFS_FS_DISCOVERY ()                                  | void VFS_FS_DISCOVERY (int16_t arg2) {
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_1020h;
                                                                     |     int16_t var_1820h;
                                                                     |     int32_t var_0h;
                                                                     |     r1 = arg2;
    0x0001f438 blmi 0x1571d90                                        |     __asm ("blmi 0x1571d90");
    0x0001f43c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0001f440 sub.w sp, sp, 0x1820                                  |     
    0x0001f444 sub sp, 0xc                                           |     
    0x0001f446 add r2, pc                                            |     r2 += pc;
    0x0001f448 mov r8, r1                                            |     r8 = r1;
    0x0001f44a add.w r4, sp, 0x1820                                  |     r4 += var_1820h;
    0x0001f44e ldr r0, [pc, 0x144]                                   |     
    0x0001f450 adds r4, 4                                            |     r4 += 4;
    0x0001f452 ldr r1, [pc, 0x144]                                   |     
    0x0001f454 str.w r8, [sp, 4]                                     |     __asm ("str.w r8, [var_4h]");
    0x0001f458 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0001f45a add r0, pc                                            |     r0 = 0x3e9f4;
    0x0001f45c add r1, pc                                            |     r1 = 0x3e9fa;
    0x0001f45e ldr r3, [r3]                                          |     r3 = *(r3);
    0x0001f460 str r3, [r4]                                          |     *(r4) = r3;
    0x0001f462 mov.w r3, 0                                           |     r3 = 0;
    0x0001f466 blx 0xc39c                                            |     r0 = fcn_0000c39c ();
    0x0001f46a mov r7, r0                                            |     r7 = r0;
    0x0001f46c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f46e beq 0x1f55e                                           |         goto label_4;
                                                                     |     }
    0x0001f470 ldr.w sl, [pc, 0x128]                                 |     
    0x0001f474 add.w r6, sp, 0x1020                                  |     r6 += var_1020h;
    0x0001f478 ldr.w sb, [pc, 0x124]                                 |     
    0x0001f47c add r5, sp, 0xc                                       |     r5 += var_ch;
    0x0001f47e adds r6, 4                                            |     r6 += 4;
    0x0001f480 mov.w r1, 0x1000                                      |     r1 = case.0x3207a.11;
    0x0001f484 add sl, pc                                            |     sl = 0x3ea24;
    0x0001f486 mov r0, r5                                            |     r0 = r5;
    0x0001f488 add sb, pc                                            |     sb = 0x3ea2c;
    0x0001f48a bl 0x2ff78                                            |     zbx_json_initarray ();
                                                                     |     do {
                                                                     | label_0:
    0x0001f48e mov r2, r7                                            |         r2 = r7;
    0x0001f490 mov.w r1, 0x800                                       |         r1 = case.0x3207a.11;
    0x0001f494 mov r0, r6                                            |         r0 = r6;
    0x0001f496 blx 0xbd2c                                            |         r0 = ferror (r0);
    0x0001f49a mov r4, r0                                            |         r4 = r0;
                                                                     |         if (r0 == 0) {
    0x0001f49c cbz r0, 0x1f50c                                       |             goto label_5;
                                                                     |         }
                                                                     | label_1:
    0x0001f49e movs r1, 0x20                                         |         r1 = 0x20;
    0x0001f4a0 mov r0, r6                                            |         r0 = r6;
    0x0001f4a2 blx 0xc138                                            |         r0 = fcn_0000c138 ();
    0x0001f4a6 cmp r0, 0                                             |         
    0x0001f4a8 beq 0x1f48e                                           |         
                                                                     |     } while (r0 == 0);
    0x0001f4aa add.w fp, r0, 1                                       |     
    0x0001f4ae movs r1, 0x20                                         |     r1 = 0x20;
    0x0001f4b0 mov r0, fp                                            |     r0 = fp;
    0x0001f4b2 blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0001f4b6 mov r4, r0                                            |     r4 = r0;
    0x0001f4b8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f4ba beq 0x1f48e                                           |         goto label_0;
                                                                     |     }
    0x0001f4bc mov.w r8, 0                                           |     r8 = 0;
    0x0001f4c0 movs r1, 0x20                                         |     r1 = 0x20;
    0x0001f4c2 strb r8, [r4], 1                                      |     *(r4) = r8;
                                                                     |     r4++;
    0x0001f4c6 mov r0, r4                                            |     r0 = r4;
    0x0001f4c8 blx 0xc138                                            |     r0 = fcn_0000c138 ();
    0x0001f4cc cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0001f4ce beq 0x1f48e                                           |         goto label_0;
                                                                     |     }
    0x0001f4d0 mov r1, r8                                            |     r1 = r8;
    0x0001f4d2 strb.w r8, [r0]                                       |     *(r0) = r8;
    0x0001f4d6 mov r0, r5                                            |     r0 = r5;
    0x0001f4d8 bl 0x300ac                                            |     zbx_json_addobject ();
                                                                     | label_2:
    0x0001f4dc movs r3, 1                                            |     r3 = 1;
    0x0001f4de mov r2, fp                                            |     r2 = fp;
    0x0001f4e0 mov r1, sl                                            |     r1 = sl;
    0x0001f4e2 mov r0, r5                                            |     r0 = r5;
    0x0001f4e4 bl 0x300b4                                            |     zbx_json_addstring ();
    0x0001f4e8 mov r2, r4                                            |     r2 = r4;
    0x0001f4ea movs r3, 1                                            |     r3 = 1;
    0x0001f4ec mov r1, sb                                            |     r1 = sb;
    0x0001f4ee mov r0, r5                                            |     r0 = r5;
    0x0001f4f0 bl 0x300b4                                            |     zbx_json_addstring ();
    0x0001f4f4 mov r0, r5                                            |     r0 = r5;
    0x0001f4f6 bl 0x30384                                            |     zbx_json_close ();
    0x0001f4fa mov r2, r7                                            |     r2 = r7;
                                                                     | label_3:
    0x0001f4fc mov.w r1, 0x800                                       |     r1 = case.0x3207a.11;
    0x0001f500 mov r0, r6                                            |     r0 = r6;
    0x0001f502 blx 0xbd2c                                            |     r0 = ferror (r0);
    0x0001f506 mov r4, r0                                            |     r4 = r0;
    0x0001f508 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0001f50a bne 0x1f49e                                           |         goto label_1;
                                                                     |     }
                                                                     | label_5:
    0x0001f50c mov r0, r7                                            |     r0 = r7;
    0x0001f50e blx 0xc248                                            |     munmap (r0, r1);
    0x0001f512 mov r0, r5                                            |     r0 = r5;
    0x0001f514 bl 0x30384                                            |     zbx_json_close ();
    0x0001f518 ldr r6, [sp, 4]                                       |     r6 = var_4h;
    0x0001f51a movs r1, 0xaf                                         |     r1 = 0xaf;
    0x0001f51c ldr r0, [pc, 0x84]                                    |     
    0x0001f51e ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0001f520 ldr r2, [r6, 0x28]                                    |     r2 = *((r6 + 0x28));
    0x0001f522 add r0, pc                                            |     r0 = 0x3eaca;
    0x0001f524 orr r2, r2, 4                                         |     r2 |= 4;
    0x0001f528 str r2, [r6, 0x28]                                    |     *((r6 + 0x28)) = r2;
    0x0001f52a mov r2, r4                                            |     r2 = r4;
    0x0001f52c bl 0x35d28                                            |     zbx_strdup2 ();
    0x0001f530 str r0, [r6, 0x18]                                    |     *((r6 + 0x18)) = r0;
    0x0001f532 mov r0, r5                                            |     r0 = r5;
    0x0001f534 bl 0x3002c                                            |     zbx_json_free ();
    0x0001f538 mov r0, r4                                            |     r0 = r4;
                                                                     |     do {
    0x0001f53a ldr r2, [pc, 0x6c]                                    |         
    0x0001f53c add.w r1, sp, 0x1820                                  |         r1 += var_1820h;
    0x0001f540 ldr r3, [pc, 0x4c]                                    |         r3 = *(0x1f590);
    0x0001f542 adds r1, 4                                            |         r1 += 4;
    0x0001f544 add r2, pc                                            |         r2 = 0x3eaf2;
    0x0001f546 ldr r3, [r2, r3]                                      |         r3 = *(0x3eaf2);
    0x0001f548 ldr r2, [r3]                                          |         r2 = *(0x3eaf2);
    0x0001f54a ldr r3, [r1]                                          |         r3 = *(r1);
    0x0001f54c eors r2, r3                                           |         r2 ^= r3;
    0x0001f54e mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0001f552 bne 0x1f586                                           |             goto label_6;
                                                                     |         }
    0x0001f554 add.w sp, sp, 0x1820                                  |         
    0x0001f558 add sp, 0xc                                           |         
    0x0001f55a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_4:
    0x0001f55e ldr r4, [sp, 4]                                       |         r4 = var_4h;
    0x0001f560 ldr r3, [r4, 0x28]                                    |         r3 = *((r4 + 0x28));
    0x0001f562 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0001f566 str r3, [r4, 0x28]                                    |         *((r4 + 0x28)) = r3;
    0x0001f568 blx 0xc15c                                            |         r0 = fcn_0000c15c ();
    0x0001f56c ldr r0, [r0]                                          |         r0 = *(r0);
    0x0001f56e bl 0x26fdc                                            |         zbx_strerror ();
    0x0001f572 ldr r1, [pc, 0x38]                                    |         
    0x0001f574 mov r2, r0                                            |         r2 = r0;
    0x0001f576 mov r0, r7                                            |         r0 = r7;
    0x0001f578 add r1, pc                                            |         r1 = 0x3eb2a;
    0x0001f57a bl 0x396b0                                            |         r0 = zbx_dsprintf ()
    0x0001f57e mov r3, r0                                            |         r3 = r0;
    0x0001f580 movs r0, 1                                            |         r0 = 1;
    0x0001f582 str r3, [r4, 0x20]                                    |         *((r4 + 0x20)) = r3;
    0x0001f584 b 0x1f53a                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x0001f586 blx 0xbe48                                            |     fcn_0000be48 ();
    0x0001f58a nop                                                   |     
    0x0001f58c bvc 0x1f4dc                                           |     __asm ("bvc case.0x3207a.11");
                                                                     |     goto label_2;
    0x0001f58e movs r3, r0                                           |     r3 = r0;
    0x0001f590 lsls r4, r2, 0xc                                      |     r4 = r2 << 0xc;
    0x0001f592 movs r0, r0                                           |     
    0x0001f594 strb r6, [r3, 6]                                      |     *((r3 + 6)) = r6;
    0x0001f596 movs r2, r0                                           |     r2 = r0;
    0x0001f598 str r0, [r4, 0xc]                                     |     *((r4 + 0xc)) = r0;
    0x0001f59a movs r2, r0                                           |     r2 = r0;
    0x0001f59c strb r4, [r7, 6]                                      |     *((r7 + 6)) = r4;
    0x0001f59e movs r2, r0                                           |     r2 = r0;
    0x0001f5a0 strb r4, [r0, 7]                                      |     *((r0 + 7)) = r4;
    0x0001f5a2 movs r2, r0                                           |     r2 = r0;
    0x0001f5a4 strb r2, [r0, 2]                                      |     *((r0 + 2)) = r2;
    0x0001f5a6 movs r2, r0                                           |     r2 = r0;
    0x0001f5a8 bvs 0x1f4fc                                           |     __asm ("bvs case.0x3207a.11");
                                                                     |     goto label_3;
    0x0001f5aa movs r3, r0                                           |     r3 = r0;
    0x0001f5ac strb r0, [r2, 2]                                      |     *((r2 + 2)) = r0;
    0x0001f5ae movs r2, r0                                           |     r2 = r0;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x191a8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.VM_MEMORY_SIZE ()                            | void VM_MEMORY_SIZE (int16_t arg1, int16_t arg2) {
                                                             |     int16_t var_74h_2;
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_34h;
                                                             |     int16_t var_44h;
                                                             |     int16_t var_48h;
                                                             |     int16_t var_50h;
                                                             |     int16_t var_68h;
                                                             |     int16_t var_74h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             | label_2:
    0x000190e8 ldr r2, [pc, 0xa0]                            |     
    0x000190ea ldr r3, [pc, 0xa4]                            |     r3 = *(0x19192);
    0x000190ec push {r4, r5, r6, lr}                         |     
    0x000190ee mov r5, r0                                    |     r5 = r0;
    0x000190f0 add r2, pc                                    |     r2 = 0x32280;
    0x000190f2 ldr r0, [pc, 0xa0]                            |     
    0x000190f4 mov r4, r1                                    |     r4 = r1;
    0x000190f6 sub sp, 0x10                                  |     
    0x000190f8 ldr r1, [pc, 0x9c]                            |     
    0x000190fa ldr r3, [r2, r3]                              |     
    0x000190fc add r0, pc                                    |     r0 = 0x32296;
    0x000190fe add r1, pc                                    |     r1 = 0x3229a;
    0x00019100 ldr r3, [r3]                                  |     r3 = *(0x32280);
    0x00019102 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00019104 mov.w r3, 0                                   |     r3 = 0;
    0x00019108 blx 0xc39c                                    |     r0 = fcn_0000c39c ();
    0x0001910c mov r6, r0                                    |     r6 = r0;
                                                             |     if (r0 == 0) {
    0x0001910e cbz r0, 0x19164                               |         goto label_7;
                                                             |     }
    0x00019110 mov r3, sp                                    |     r3 = sp;
    0x00019112 mov r1, r5                                    |     r1 = r5;
    0x00019114 movs r2, 0                                    |     r2 = 0;
    0x00019116 bl 0x1b050                                    |     byte_value_from_proc_file ();
    0x0001911a ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001911c mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 != 0) {
    0x0001911e cbnz r0, 0x1914e                              |         goto label_8;
                                                             |     }
    0x00019120 orr r3, r3, 1                                 |     r3 |= 1;
    0x00019124 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00019126 ldrd r2, r3, [sp]                             |     __asm ("ldrd r2, r3, [sp]");
    0x0001912a strd r2, r3, [r4, 8]                          |     __asm ("strd r2, r3, [r4, 8]");
    0x0001912c movs r3, 2                                    |     r3 = 2;
                                                             |     do {
    0x0001912e mov r0, r6                                    |         r0 = r6;
    0x00019130 blx 0xc248                                    |         munmap (r0, r1);
                                                             | label_0:
    0x00019134 ldr r2, [pc, 0x64]                            |         
    0x00019136 ldr r3, [pc, 0x58]                            |         r3 = *(0x19192);
    0x00019138 add r2, pc                                    |         r2 = 0x322d8;
    0x0001913a ldr r3, [r2, r3]                              |         r3 = *(0x322d8);
    0x0001913c ldr r2, [r3]                                  |         r2 = *(0x322d8);
    0x0001913e ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00019140 eors r2, r3                                   |         r2 ^= r3;
    0x00019142 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00019146 bne 0x19188                                   |             goto label_9;
                                                             |         }
    0x00019148 mov r0, r5                                    |         r0 = r5;
    0x0001914a add sp, 0x10                                  |         
    0x0001914c pop {r4, r5, r6, pc}                          |         
                                                             | label_8:
    0x0001914e ldr r1, [pc, 0x50]                            |         
    0x00019150 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x00019154 movs r0, 0                                    |         r0 = 0;
    0x00019156 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x00019158 movs r5, 1                                    |         r5 = 1;
    0x0001915a add r1, pc                                    |         r1 = 0x32300;
    0x0001915c bl 0x396b0                                    |         zbx_dsprintf ()
    0x00019160 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x00019162 b 0x1912e                                     |         
                                                             |     } while (1);
                                                             | label_7:
    0x00019164 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00019166 movs r5, 1                                    |     r5 = 1;
    0x00019168 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x0001916c str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001916e blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x00019172 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00019174 bl 0x26fdc                                    |     zbx_strerror ();
    0x00019178 ldr r1, [pc, 0x28]                            |     
    0x0001917a mov r2, r0                                    |     r2 = r0;
    0x0001917c mov r0, r6                                    |     r0 = r6;
    0x0001917e add r1, pc                                    |     r1 = 0x32326;
    0x00019180 bl 0x396b0                                    |     zbx_dsprintf ()
    0x00019184 str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x00019186 b 0x19134                                     |     goto label_0;
                                                             | label_9:
    0x00019188 blx 0xbe48                                    |     fcn_0000be48 ();
    0x0001918c subs r2, 0xfc                                 |     r2 -= 0xfc;
    0x0001918e movs r4, r0                                   |     r4 = r0;
    0x00019190 lsls r4, r2, 0xc                              |     r4 = r2 << 0xc;
    0x00019192 movs r0, r0                                   |     
    0x00019194 stm r4!, {r3, r4, r5, r6, r7}                 |     *(r4!) = r3;
                                                             |     *((r4! + 4)) = r4;
                                                             |     *((r4! + 8)) = r5;
                                                             |     *((r4! + 12)) = r6;
                                                             |     *((r4! + 16)) = r7;
    0x00019196 movs r2, r0                                   |     r2 = r0;
    0x00019198 stm r4!, {r1, r2, r3, r4, r5}                 |     *(r4!) = r1;
                                                             |     *((r4! + 4)) = r2;
                                                             |     *((r4! + 8)) = r3;
                                                             |     *((r4! + 12)) = r4;
                                                             |     *((r4! + 16)) = r5;
    0x0001919a movs r2, r0                                   |     r2 = r0;
    0x0001919c subs r2, 0xb4                                 |     r2 -= 0xb4;
    0x0001919e movs r4, r0                                   |     r4 = r0;
    0x000191a0 stm r5!, {r1, r3, r7}                         |     *(r5!) = r1;
                                                             |     *((r5! + 4)) = r3;
                                                             |     *((r5! + 8)) = r7;
    0x000191a2 movs r2, r0                                   |     r2 = r0;
    0x000191a4 stm r4!, {r1, r2, r7}                         |     *(r4!) = r1;
                                                             |     *((r4! + 4)) = r2;
                                                             |     *((r4! + 8)) = r7;
    0x000191a6 movs r2, r0                                   |     r2 = r0;
    0x000191a8 ldr.w r2, [pc, 0x48c]                         |     
    0x000191ac ldr.w r3, [pc, 0x48c]                         |     r3 = *(0x1963c);
    0x000191b0 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x000191b4 mov r4, r1                                    |     r4 = r1;
    0x000191b6 ldr r6, [r0, 4]                               |     r6 = *((r0 + 4));
    0x000191b8 add r2, pc                                    |     r2 = 0x327f4;
    0x000191ba vpush {d8}                                    |     __asm ("vpush {d8}");
    0x000191be sub sp, 0x78                                  |     
    0x000191c0 ldr r3, [r2, r3]                              |     
    0x000191c2 cmp r6, 1                                     |     
    0x000191c4 ldr r3, [r3]                                  |     r3 = *(0x327f4);
    0x000191c6 str r3, [sp, 0x74]                            |     var_74h = r3;
    0x000191c8 mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r6 > 1) {
    0x000191cc bgt 0x19224                                   |         goto label_10;
                                                             |     }
                                                             |     if (r6 == 1) {
    0x000191ce bne 0x191dc                                   |         
    0x000191d0 ldr r3, [r0, 8]                               |         r3 = *((r0 + 8));
    0x000191d2 ldr r5, [r3]                                  |         r5 = *(r3);
                                                             |         if (r5 == 0) {
    0x000191d4 cbz r5, 0x191dc                               |             goto label_1;
                                                             |         }
    0x000191d6 ldrb r3, [r5]                                 |         r3 = *(r5);
    0x000191d8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000191da bne 0x19246                                   |             goto label_11;
                                                             |         }
                                                             |     }
                                                             | label_1:
    0x000191dc add r0, sp, 0x34                              |     r0 += var_34h;
    0x000191de blx 0xc018                                    |     fcn_0000c018 ();
    0x000191e2 ldr r2, [sp, 0x44]                            |     r2 = var_44h;
    0x000191e4 mov r5, r0                                    |     r5 = r0;
    0x000191e6 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000191e8 bne.w 0x19346                                 |         goto label_12;
                                                             |     }
                                                             | label_4:
    0x000191ec ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x000191ee ldr r1, [r4, 0x28]                            |     r1 = *((r4 + 0x28));
    0x000191f0 umull r2, r3, r2, r3                          |     r2:r3 = r2 * r3;
    0x000191f4 orr r1, r1, 1                                 |     r1 |= 1;
    0x000191f8 str r1, [r4, 0x28]                            |     *((r4 + 0x28)) = r1;
    0x000191fa strd r2, r3, [r4, 8]                          |     __asm ("strd r2, r3, [r4, 8]");
                                                             |     do {
                                                             | label_3:
    0x000191fe ldr.w r2, [pc, 0x440]                         |         r2 = *(0x00019640);
    0x00019202 ldr.w r3, [pc, 0x438]                         |         r3 = *(0x1963e);
    0x00019206 add r2, pc                                    |         r2 += pc;
    0x00019208 ldr r3, [r2, r3]                              |         r3 = *((r2 + r3));
    0x0001920a ldr r2, [r3]                                  |         r2 = *(0x1963e);
    0x0001920c ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001920e eors r2, r3                                   |         r2 ^= r3;
    0x00019210 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00019214 bne.w 0x195d6                                 |             goto label_13;
                                                             |         }
    0x00019218 mov r0, r5                                    |         r0 = r5;
    0x0001921a add sp, 0x78                                  |         
    0x0001921c vpop {d8}                                     |         __asm ("vpop {d8}");
    0x00019220 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_10:
    0x00019224 ldr r0, [r1, 0x28]                            |         r0 = *((r1 + 0x28));
    0x00019226 movs r2, 0                                    |         r2 = 0;
    0x00019228 ldr.w r3, [pc, 0x418]                         |         r3 = *(0x00019644);
    0x0001922c movs r1, 0xf9                                 |         r1 = 0xf9;
    0x0001922e movs r5, 1                                    |         r5 = 1;
    0x00019230 orr r0, r0, 0x20                              |         r0 |= 0x20;
    0x00019234 str r0, [r4, 0x28]                            |         *((r4 + 0x28)) = r0;
    0x00019236 add r3, pc                                    |         r3 += pc;
    0x00019238 ldr.w r0, [pc, 0x40c]                         |         
    0x0001923c add r0, pc                                    |         r0 = 0x32888;
    0x0001923e bl 0x35d28                                    |         zbx_strdup2 ();
    0x00019242 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x00019244 b 0x191fe                                     |         
                                                             |     } while (1);
                                                             | label_11:
    0x00019246 ldr.w r1, [pc, 0x404]                         |     
    0x0001924a mov r0, r5                                    |     r0 = r5;
    0x0001924c add r1, pc                                    |     r1 = 0x3289e;
    0x0001924e blx 0xbc58                                    |     r0 = fcn_0000bc58 ();
    0x00019252 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019254 beq 0x191dc                                   |         goto label_1;
                                                             |     }
    0x00019256 ldr r1, [pc, 0x3f8]                           |     
    0x00019258 mov r0, r5                                    |     r0 = r5;
    0x0001925a add r1, pc                                    |     r1 = 0x328b0;
    0x0001925c blx 0xbc58                                    |     r0 = fcn_0000bc58 ();
    0x00019260 mov r7, r0                                    |     r7 = r0;
    0x00019262 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00019264 beq.w 0x1936a                                 |         
    0x00019268 ldr r1, [pc, 0x3e8]                           |         
    0x0001926a mov r0, r5                                    |         r0 = r5;
    0x0001926c add r1, pc                                    |         r1 = 0x328c4;
    0x0001926e blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x00019272 mov r7, r0                                    |         r7 = r0;
    0x00019274 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019276 beq.w 0x1939e                                 |             goto label_14;
                                                             |         }
    0x0001927a ldr r1, [pc, 0x3dc]                           |         
    0x0001927c mov r0, r5                                    |         r0 = r5;
    0x0001927e add r1, pc                                    |         r1 = 0x328dc;
    0x00019280 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x00019284 mov r7, r0                                    |         r7 = r0;
    0x00019286 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019288 beq.w 0x193d2                                 |             goto label_15;
                                                             |         }
    0x0001928c ldr r1, [pc, 0x3cc]                           |         
    0x0001928e mov r0, r5                                    |         r0 = r5;
    0x00019290 add r1, pc                                    |         r1 = zbx_vector_var_remove;
    0x00019292 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x00019296 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019298 beq.w 0x193f8                                 |             goto label_16;
                                                             |         }
    0x0001929c ldr r1, [pc, 0x3c0]                           |         
    0x0001929e mov r0, r5                                    |         r0 = r5;
    0x000192a0 add r1, pc                                    |         r1 = 0x32904;
    0x000192a2 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192a6 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192a8 beq.w 0x1943c                                 |             goto label_17;
                                                             |         }
    0x000192ac ldr r1, [pc, 0x3b4]                           |         
    0x000192ae mov r0, r5                                    |         r0 = r5;
    0x000192b0 add r1, pc                                    |         r1 = 0x32918;
    0x000192b2 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192b6 mov r7, r0                                    |         r7 = r0;
    0x000192b8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192ba beq.w 0x19460                                 |             goto label_18;
                                                             |         }
    0x000192be ldr r1, [pc, 0x3a8]                           |         
    0x000192c0 mov r0, r5                                    |         r0 = r5;
    0x000192c2 add r1, pc                                    |         r1 = 0x32930;
    0x000192c4 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192c8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192ca beq.w 0x194ee                                 |             goto label_19;
                                                             |         }
    0x000192ce ldr r1, [pc, 0x39c]                           |         
    0x000192d0 mov r0, r5                                    |         r0 = r5;
    0x000192d2 add r1, pc                                    |         r1 = 0x32944;
    0x000192d4 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192d8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192da beq.w 0x19530                                 |             goto label_20;
                                                             |         }
    0x000192de ldr r1, [pc, 0x390]                           |         
    0x000192e0 mov r0, r5                                    |         r0 = r5;
    0x000192e2 add r1, pc                                    |         r1 = 0x32958;
    0x000192e4 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192e8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192ea beq.w 0x19588                                 |             goto label_21;
                                                             |         }
    0x000192ee ldr r1, [pc, 0x384]                           |         
    0x000192f0 mov r0, r5                                    |         r0 = r5;
    0x000192f2 add r1, pc                                    |         r1 = 0x3296c;
    0x000192f4 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x000192f8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000192fa beq.w 0x195a2                                 |             goto label_22;
                                                             |         }
    0x000192fe ldr r1, [pc, 0x378]                           |         
    0x00019300 mov r0, r5                                    |         r0 = r5;
    0x00019302 add r1, pc                                    |         r1 = 0x32980;
    0x00019304 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x00019308 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0001930a beq.w 0x195bc                                 |             goto label_23;
                                                             |         }
    0x0001930e ldr r1, [pc, 0x36c]                           |         
    0x00019310 mov r0, r5                                    |         r0 = r5;
    0x00019312 add r1, pc                                    |         r1 = 0x32994;
    0x00019314 blx 0xbc58                                    |         r0 = fcn_0000bc58 ();
    0x00019318 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001931a bne.w 0x195da                                 |             goto label_24;
                                                             |         }
    0x0001931e ldr r2, [pc, 0x360]                           |         
    0x00019320 ldr r3, [pc, 0x318]                           |         r3 = *(0x1963c);
    0x00019322 add r2, pc                                    |         r2 = 0x329a8;
    0x00019324 ldr r3, [r2, r3]                              |         r3 = *(0x329a8);
    0x00019326 ldr r2, [r3]                                  |         r2 = *(0x329a8);
    0x00019328 ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001932a eors r2, r3                                   |         r2 ^= r3;
    0x0001932c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00019330 bne.w 0x195d6                                 |             goto label_13;
                                                             |         }
    0x00019334 ldr r0, [pc, 0x34c]                           |         
    0x00019336 add r0, pc                                    |         r0 = 0x329be;
                                                             | label_5:
    0x00019338 mov r1, r4                                    |         r1 = r4;
    0x0001933a add sp, 0x78                                  |         
    0x0001933c vpop {d8}                                     |         __asm ("vpop {d8}");
    0x00019340 pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |         
    0x00019344 b 0x190e8                                     |         goto label_2;
                                                             | label_12:
    0x00019346 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x00019348 movs r5, 1                                    |         r5 = 1;
    0x0001934a orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x0001934e str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x00019350 blx 0xc15c                                    |         r0 = fcn_0000c15c ();
    0x00019354 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00019356 bl 0x26fdc                                    |         zbx_strerror ();
    0x0001935a ldr r1, [pc, 0x32c]                           |         
    0x0001935c mov r2, r0                                    |         r2 = r0;
    0x0001935e movs r0, 0                                    |         r0 = 0;
    0x00019360 add r1, pc                                    |         r1 = 0x329ee;
    0x00019362 bl 0x396b0                                    |         zbx_dsprintf ()
    0x00019366 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x00019368 b 0x191fe                                     |         goto label_3;
                                                             |     }
    0x0001936a add r0, sp, 0x34                              |     r0 += var_34h;
    0x0001936c blx 0xc018                                    |     fcn_0000c018 ();
    0x00019370 ldr r2, [sp, 0x48]                            |     r2 = var_48h;
    0x00019372 mov r5, r0                                    |     r5 = r0;
    0x00019374 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00019376 beq.w 0x191ec                                 |         goto label_4;
                                                             |     }
    0x0001937a ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001937c mov r5, r6                                    |     r5 = r6;
    0x0001937e orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00019382 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00019384 blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x00019388 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0001938a bl 0x26fdc                                    |     zbx_strerror ();
    0x0001938c mcr2 p9, 1, r4, c7, c15, 5                    |     __asm ("mcr2 p9, 1, r4, c7, c15, 5");
    0x00019390 mov r2, r0                                    |     r2 = r0;
    0x00019392 mov r0, r7                                    |     r0 = r7;
    0x00019394 add r1, pc                                    |     r1 += pc;
    0x00019396 bl 0x396b0                                    |     zbx_dsprintf ()
    0x0001939a str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001939c b 0x191fe                                     |     goto label_3;
                                                             | label_14:
    0x0001939e add r0, sp, 0x34                              |     r0 += var_34h;
    0x000193a0 blx 0xc018                                    |     fcn_0000c018 ();
    0x000193a4 ldr r2, [sp, 0x50]                            |     r2 = var_50h;
    0x000193a6 mov r5, r0                                    |     r5 = r0;
    0x000193a8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000193aa beq.w 0x191ec                                 |         goto label_4;
                                                             |     }
    0x000193ae ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x000193b0 mov r5, r6                                    |     r5 = r6;
    0x000193b2 orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x000193b6 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x000193b8 blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x000193bc ldr r0, [r0]                                  |     r0 = *(r0);
    0x000193be bl 0x26fdc                                    |     zbx_strerror ();
    0x000193c2 ldr r1, [pc, 0x2cc]                           |     
    0x000193c4 mov r2, r0                                    |     r2 = r0;
    0x000193c6 mov r0, r7                                    |     r0 = r7;
    0x000193c8 add r1, pc                                    |     r1 = 0x32a5e;
    0x000193ca bl 0x396b0                                    |     zbx_dsprintf ()
    0x000193ce str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x000193d0 b 0x191fe                                     |     goto label_3;
                                                             | label_15:
    0x000193d2 add r0, sp, 0x34                              |     r0 += var_34h;
    0x000193d4 blx 0xc018                                    |     r0 = fcn_0000c018 ();
    0x000193d8 mov r5, r0                                    |     r5 = r0;
    0x000193da cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000193dc bne 0x194ca                                   |         goto label_25;
                                                             |     }
    0x000193de ldrd r3, r0, [sp, 0x44]                       |     __asm ("ldrd r3, r0, [var_44h]");
    0x000193e2 ldr r2, [sp, 0x68]                            |     r2 = var_68h;
    0x000193e4 ldr r1, [r4, 0x28]                            |     r1 = *((r4 + 0x28));
    0x000193e6 subs r3, r3, r0                               |     r3 -= r0;
    0x000193e8 umull r3, r2, r3, r2                          |     r3:r2 = r3 * r2;
    0x000193ec orr r1, r1, 1                                 |     r1 |= 1;
    0x000193f0 str r1, [r4, 0x28]                            |     *((r4 + 0x28)) = r1;
    0x000193f2 strd r3, r2, [r4, 8]                          |     __asm ("strd r3, r2, [r4, 8]");
    0x000193f6 b 0x191fe                                     |     goto label_3;
                                                             | label_16:
    0x000193f8 add r0, sp, 0x34                              |     r0 += var_34h;
    0x000193fa blx 0xc018                                    |     r0 = fcn_0000c018 ();
    0x000193fe mov r5, r0                                    |     r5 = r0;
    0x00019400 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00019402 bne.w 0x1950c                                 |         goto label_26;
                                                             |     }
    0x00019404 strh r3, [r0, 4]                              |     *((r0 + 4)) = r3;
    0x00019406 ldr r2, [sp, 0x44]                            |     r2 = var_44h;
    0x00019408 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001940a cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0001940c beq.w 0x1956e                                 |         goto label_27;
                                                             |     }
    0x00019410 ldr r1, [sp, 0x48]                            |     r1 = var_48h;
    0x00019412 orr r3, r3, 2                                 |     r3 |= 2;
    0x00019416 vmov s15, r2                                  |     __asm ("vmov s15, r2");
    0x0001941a vcvt.f64.u32 d19, s15                         |     __asm ("vcvt.f64.u32 d19, s15");
    0x0001941c subs r3, 0x67                                 |     r3 -= 0x67;
    0x0001941e subs r2, r2, r1                               |     r2 -= r1;
    0x00019420 vldr d18, [pc, 0x20c]                         |     __asm ("vldr d18, case.0x3207a.11");
    0x00019424 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00019426 vmov s15, r2                                  |     __asm ("vmov s15, r2");
    0x0001942a vcvt.f64.u32 d16, s15                         |     __asm ("vcvt.f64.u32 d16, s15");
    0x0001942e vdiv.f64 d17, d16, d19                        |     __asm ("vdiv.f64 d17, d16, d19");
    0x00019432 vmul.f64 d17, d17, d18                        |     __asm ("vmul.f64 d17, d17, d18");
    0x00019436 vstr d17, [r4, 0x10]                          |     __asm ("vstr d17, [r4, 0x10]");
    0x00019438 subs r4, r0, r4                               |     r4 = r0 - r4;
    0x0001943a b 0x191fe                                     |     goto label_3;
                                                             | label_17:
    0x0001943c ldr r2, [pc, 0x254]                           |     
    0x0001943e ldr r3, [pc, 0x1fc]                           |     r3 = *(0x1963e);
    0x00019440 add r2, pc                                    |     r2 = 0x32ad8;
    0x00019442 ldr r3, [r2, r3]                              |     r3 = *(0x32ad8);
    0x00019444 ldr r2, [r3]                                  |     r2 = *(0x32ad8);
    0x00019446 ldr r3, [sp, 0x74]                            |     r3 = var_74h;
    0x00019448 eors r2, r3                                   |     r2 ^= r3;
    0x0001944a mov.w r3, 0                                   |     r3 = 0;
                                                             |     if (r2 != r3) {
    0x0001944e bne.w 0x195d6                                 |         goto label_13;
                                                             |     }
    0x00019452 mov r0, r4                                    |     r0 = r4;
    0x00019454 add sp, 0x78                                  |     
    0x00019456 vpop {d8}                                     |     __asm ("vpop {d8}");
    0x0001945a pop.w {r4, r5, r6, r7, r8, sb, sl, lr}        |     
    0x0001945e b 0x18f70                                     |     void (*0x18f70)() ();
                                                             | label_18:
    0x00019460 add r0, sp, 0x34                              |     r0 += var_34h;
    0x00019462 blx 0xc018                                    |     r0 = fcn_0000c018 ();
    0x00019466 mov sl, r0                                    |     sl = r0;
    0x00019468 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001946a bne 0x1954a                                   |         goto label_28;
                                                             |     }
    0x0001946c mov r7, sp                                    |     r7 = sp;
    0x0001946e mov r0, r7                                    |     r0 = r7;
    0x00019470 bl 0x16eb8                                    |     init_result ();
    0x00019474 mov r0, r7                                    |     r0 = r7;
    0x00019476 bl 0x18f70                                    |     r0 = fcn_00018f70 (r0);
    0x0001947a cmp r0, 1                                     |     
    0x0001947c mov r5, r0                                    |     r5 = r0;
                                                             |     if (r0 == 1) {
    0x0001947e beq.w 0x19616                                 |         goto label_29;
                                                             |     }
    0x00019482 ldr r1, [sp, 0x44]                            |     r1 = var_44h;
    0x00019484 ldr r3, [sp, 0x68]                            |     r3 = var_68h;
    0x00019486 umull sb, r8, r1, r3                          |     sb:r8 = r1 * r3;
    0x0001948a ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x0001948c ldrd r0, r1, [sp, 8]                          |     __asm ("ldrd r0, r1, [var_8h]");
    0x00019490 orrs.w ip, sb, r8                             |     
                                                             |     if (ip == sb) {
    0x00019494 beq.w 0x195fa                                 |         goto label_30;
                                                             |     }
    0x00019498 orr r3, r3, 2                                 |     r3 |= 2;
    0x0001949c str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x0001949e bl 0x4152c                                    |     r0 = fcn_0004152c (r0, r1, r2);
    0x000194a2 vmov d8, r0, r1                               |     __asm ("vmov d8, r0, r1");
    0x000194a6 mov r0, sb                                    |     r0 = sb;
    0x000194a8 mov r1, r8                                    |     r1 = r8;
    0x000194aa bl 0x4152c                                    |     r0 = fcn_0004152c (r0, r1, r2);
    0x000194ae vmov d16, r0, r1                              |     __asm ("vmov d16, r0, r1");
    0x000194b2 vldr d17, [pc, 0x17c]                         |     __asm ("vldr d17, case.0x3207a.11");
    0x000194b6 vdiv.f64 d16, d8, d16                         |     __asm ("vdiv.f64 d16, d8, d16");
    0x000194ba vmul.f64 d16, d16, d17                        |     __asm ("vmul.f64 d16, d16, d17");
    0x000194be vstr d16, [r4, 0x10]                          |     __asm ("vstr d16, [r4, 0x10]");
                                                             |     do {
                                                             | label_6:
    0x000194c2 mov r0, r7                                    |         r0 = r7;
    0x000194c4 bl 0x16ee0                                    |         free_result ();
    0x000194c8 b 0x191fe                                     |         goto label_3;
                                                             | label_25:
    0x000194ca ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x000194cc mov r5, r6                                    |         r5 = r6;
    0x000194ce orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x000194d2 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x000194d4 blx 0xc15c                                    |         r0 = fcn_0000c15c ();
    0x000194d8 ldr r0, [r0]                                  |         r0 = *(r0);
    0x000194da bl 0x26fdc                                    |         zbx_strerror ();
    0x000194de ldr r1, [pc, 0x1b8]                           |         
    0x000194e0 mov r2, r0                                    |         r2 = r0;
    0x000194e2 mov r0, r7                                    |         r0 = r7;
    0x000194e4 add r1, pc                                    |         r1 = 0x32b82;
    0x000194e6 bl 0x396b0                                    |         zbx_dsprintf ()
    0x000194ea str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x000194ec b 0x191fe                                     |         goto label_3;
                                                             | label_19:
    0x000194ee ldr r1, [r4, 0x28]                            |         r1 = *((r4 + 0x28));
    0x000194f0 mov r2, r0                                    |         r2 = r0;
    0x000194f2 ldr r3, [pc, 0x1a8]                           |         
    0x000194f4 mov r5, r6                                    |         r5 = r6;
    0x000194f6 ldr r0, [pc, 0x1a8]                           |         
    0x000194f8 orr r1, r1, 0x20                              |         r1 |= 0x20;
    0x000194fc str r1, [r4, 0x28]                            |         *((r4 + 0x28)) = r1;
    0x000194fe add r3, pc                                    |         r3 = 0x32ba0;
    0x00019500 add r0, pc                                    |         r0 = 0x32ba6;
    0x00019502 movs r1, 0xd4                                 |         r1 = 0xd4;
    0x00019504 bl 0x35d28                                    |         zbx_strdup2 ();
    0x00019508 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001950a b 0x191fe                                     |         goto label_3;
                                                             | label_26:
    0x0001950c ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0001950e mov r5, r6                                    |         r5 = r6;
    0x00019510 orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x00019514 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x00019516 blx 0xc15c                                    |         fcn_0000c15c ();
    0x00019518 cdp p8, 2, c6, c2, c0, 0                      |         __asm ("cdp p8, 2, c6, c2, c0, 0");
    0x0001951c bl 0x26fdc                                    |         zbx_strerror ();
    0x00019520 ldr r1, [pc, 0x180]                           |         
    0x00019522 mov r2, r0                                    |         r2 = r0;
    0x00019524 movs r0, 0                                    |         r0 = 0;
    0x00019526 add r1, pc                                    |         r1 = 0x32bce;
    0x00019528 bl 0x396b0                                    |         zbx_dsprintf ()
    0x0001952c str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x0001952e b 0x191fe                                     |         goto label_3;
                                                             | label_20:
    0x00019530 ldr r2, [pc, 0x174]                           |         
    0x00019532 ldr r3, [pc, 0x108]                           |         r3 = *(0x1963e);
    0x00019534 add r2, pc                                    |         r2 = 0x32be0;
    0x00019536 ldr r3, [r2, r3]                              |         r3 = *(0x32be0);
    0x00019538 ldr r2, [r3]                                  |         r2 = *(0x32be0);
    0x0001953a ldr r3, [sp, 0x74]                            |         r3 = var_74h;
    0x0001953c eors r2, r3                                   |         r2 ^= r3;
    0x0001953e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 == r3) {
    0x00019542 bne 0x195d6                                   |             
    0x00019544 ldr r0, [pc, 0x164]                           |             
    0x00019546 add r0, pc                                    |             r0 = 0x32bf6;
    0x00019548 b 0x19338                                     |             goto label_5;
                                                             | label_28:
    0x0001954a ldr r3, [r4, 0x28]                            |             r3 = *((r4 + 0x28));
    0x0001954c mov r5, r6                                    |             r5 = r6;
    0x0001954e orr r3, r3, 0x20                              |             r3 |= 0x20;
    0x00019552 str r3, [r4, 0x28]                            |             *((r4 + 0x28)) = r3;
    0x00019554 blx 0xc15c                                    |             r0 = fcn_0000c15c ();
    0x00019558 ldr r0, [r0]                                  |             r0 = *(r0);
    0x0001955a bl 0x26fdc                                    |             zbx_strerror ();
    0x0001955e ldr r1, [pc, 0x150]                           |             
    0x00019560 mov r2, r0                                    |             r2 = r0;
    0x00019562 mov r0, r7                                    |             r0 = r7;
    0x00019564 add r1, pc                                    |             r1 = 0x32c1a;
    0x00019566 bl 0x396b0                                    |             zbx_dsprintf ()
    0x0001956a str r0, [r4, 0x20]                            |             *((r4 + 0x20)) = r0;
    0x0001956c b 0x191fe                                     |             goto label_3;
                                                             | label_27:
    0x0001956e orr r1, r3, 0x20                              |             r1 = r3 | 0x20;
    0x00019572 ldr r0, [pc, 0x140]                           |             
    0x00019574 ldr r3, [pc, 0x140]                           |             
    0x00019576 mov r5, r6                                    |             r5 = r6;
    0x00019578 str r1, [r4, 0x28]                            |             *((r4 + 0x28)) = r1;
    0x0001957a movs r1, 0x61                                 |             r1 = 0x61;
    0x0001957c add r0, pc                                    |             r0 = 0x32c36;
    0x0001957e add r3, pc                                    |             r3 = 0x32c3a;
    0x00019580 bl 0x35d28                                    |             zbx_strdup2 ();
    0x00019584 str r0, [r4, 0x20]                            |             *((r4 + 0x20)) = r0;
    0x00019586 b 0x191fe                                     |             goto label_3;
                                                             | label_21:
    0x00019588 ldr r2, [pc, 0x130]                           |             
    0x0001958a ldr r3, [pc, 0xb0]                            |             r3 = *(0x1963e);
    0x0001958c add r2, pc                                    |             r2 = 0x32c4c;
    0x0001958e ldr r3, [r2, r3]                              |             r3 = *(0x32c4c);
    0x00019590 ldr r2, [r3]                                  |             r2 = *(0x32c4c);
    0x00019592 ldr r3, [sp, 0x74]                            |             r3 = var_74h;
    0x00019594 eors r2, r3                                   |             r2 ^= r3;
    0x00019596 mov.w r3, 0                                   |             r3 = 0;
                                                             |             if (r2 != r3) {
    0x0001959a bne 0x195d6                                   |                 goto label_13;
                                                             |             }
    0x0001959c ldr r0, [pc, 0x120]                           |             
    0x0001959e add r0, pc                                    |             r0 = 0x32c62;
    0x000195a0 b 0x19338                                     |             goto label_5;
                                                             | label_22:
    0x000195a2 ldr r2, [pc, 0x120]                           |             
    0x000195a4 ldr r3, [pc, 0x94]                            |             r3 = *(0x1963c);
    0x000195a6 add r2, pc                                    |             r2 = 0x32c70;
    0x000195a8 ldr r3, [r2, r3]                              |             r3 = *(0x32c70);
    0x000195aa ldr r2, [r3]                                  |             r2 = *(0x32c70);
    0x000195ac ldr r3, [sp, 0x74]                            |             r3 = var_74h;
    0x000195ae eors r2, r3                                   |             r2 ^= r3;
    0x000195b0 mov.w r3, 0                                   |             r3 = 0;
                                                             |             if (r2 != r3) {
    0x000195b4 bne 0x195d6                                   |                 goto label_13;
                                                             |             }
    0x000195b6 ldr r0, [pc, 0x110]                           |             
    0x000195b8 add r0, pc                                    |             r0 = 0x32c86;
    0x000195ba b 0x19338                                     |             goto label_5;
                                                             | label_23:
    0x000195bc ldr r2, [pc, 0x10c]                           |             
    0x000195be ldr r3, [pc, 0x7c]                            |             r3 = *(0x1963e);
    0x000195c0 add r2, pc                                    |             r2 = 0x32c90;
    0x000195c2 ldr r3, [r2, r3]                              |             r3 = *(0x32c90);
    0x000195c4 ldr r2, [r3]                                  |             r2 = *(0x32c90);
    0x000195c6 ldr r3, [sp, 0x74]                            |             r3 = var_74h;
    0x000195c8 eors r2, r3                                   |             r2 ^= r3;
    0x000195ca mov.w r3, 0                                   |             r3 = 0;
    0x000195cc lsls r0, r0, 0xc                              |             r0 <<= 0xc;
                                                             |             if (r0 != r0) {
    0x000195ce bne 0x195d6                                   |                 goto label_13;
                                                             |             }
    0x000195d0 ldr r0, [pc, 0xfc]                            |             
    0x000195d2 add r0, pc                                    |             r0 = 0x32ca6;
    0x000195d4 b 0x19338                                     |             goto label_5;
                                                             |         }
                                                             | label_13:
    0x000195d6 blx 0xbe48                                    |         fcn_0000be48 ();
                                                             | label_24:
    0x000195da ldr r1, [r4, 0x28]                            |         r1 = *((r4 + 0x28));
    0x000195dc movs r2, 0                                    |         r2 = 0;
    0x000195de ldr r3, [pc, 0xf4]                            |         
    0x000195e0 mov r5, r6                                    |         r5 = r6;
    0x000195e2 ldr r0, [pc, 0xf4]                            |         
    0x000195e4 orr r1, r1, 0x20                              |         r1 |= 0x20;
    0x000195e8 str r1, [r4, 0x28]                            |         *((r4 + 0x28)) = r1;
    0x000195ea add r3, pc                                    |         r3 = 0x32cc4;
    0x000195ec add r0, pc                                    |         r0 = 0x32cca;
    0x000195ee movw r1, 0x11b                                |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000195f2 bl 0x35d28                                    |         zbx_strdup2 ();
    0x000195f6 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x000195f8 b 0x191fe                                     |         goto label_3;
                                                             | label_30:
    0x000195fa orr r3, r3, 0x20                              |         r3 |= 0x20;
    0x000195fe ldr r0, [pc, 0xdc]                            |         
    0x00019600 str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
    0x00019602 mov r2, sl                                    |         r2 = sl;
    0x00019604 ldr r3, [pc, 0xd8]                            |         
    0x00019606 movs r1, 0xb9                                 |         r1 = 0xb9;
    0x00019608 add r0, pc                                    |         r0 = 0x32cea;
    0x0001960a mov r5, r6                                    |         r5 = r6;
    0x0001960c add r3, pc                                    |         r3 = 0x32cf0;
    0x0001960e bl 0x35d28                                    |         zbx_strdup2 ();
    0x00019612 str r0, [r4, 0x20]                            |         *((r4 + 0x20)) = r0;
    0x00019614 b 0x194c2                                     |         
                                                             |     } while (1);
                                                             | label_29:
    0x00019616 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00019618 mov r2, sl                                    |     r2 = sl;
    0x0001961a ldr r0, [pc, 0xc8]                            |     
    0x0001961c movs r1, 0xb0                                 |     r1 = 0xb0;
    0x0001961e orr r3, r3, 0x20                              |     r3 |= 0x20;
    0x00019622 str r3, [r4, 0x28]                            |     *((r4 + 0x28)) = r3;
    0x00019624 add r0, pc                                    |     r0 = 0x32d0e;
    0x00019626 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00019628 bl 0x35d28                                    |     zbx_strdup2 ();
    0x0001962c str r0, [r4, 0x20]                            |     *((r4 + 0x20)) = r0;
    0x0001962e b 0x194c2                                     |     goto label_6;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x170cc */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.add_user_parameter ()                            | void add_user_parameter (int16_t arg_24h, int16_t arg_2ch, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_65h, int16_t arg_7ch, int16_t arg_28h, int16_t arg_30h, int16_t arg_87ch, uint32_t arg1, uint32_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_18h_2;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000170cc push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000170d0 mov r5, r2                                        |     r5 = r2;
    0x000170d2 ldr r2, [pc, 0xd0]                                |     
    0x000170d4 mov fp, r3                                        |     
    0x000170d6 sub sp, 0x3c                                      |     
    0x000170d8 movs r4, 0                                        |     r4 = 0;
    0x000170da ldr r3, [pc, 0xcc]                                |     r3 = *(0x171aa);
    0x000170dc add.w r8, sp, 0x10                                |     r8 += var_ch;
    0x000170e0 add r2, pc                                        |     r2 = 0x2e28a;
    0x000170e2 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000170e6 ldr.w sl, [pc, 0xc4]                              |     sl = *(0x000171ac);
    0x000170ea mov r6, r1                                        |     r6 = r1;
    0x000170ec ldr r3, [r2, r3]                                  |     
    0x000170ee mov r1, r8                                        |     r1 = r8;
    0x000170f0 mov r7, r0                                        |     r7 = r0;
    0x000170f2 add sl, pc                                        |     sl += pc;
    0x000170f4 ldr r3, [r3]                                      |     r3 = *(0x2e28a);
    0x000170f6 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x000170f8 mov.w r3, 0                                       |     r3 = 0;
    0x000170fc vstr d16, [sp, 0x20]                              |     __asm ("vstr d16, [sp, 0x20]");
    0x00017100 strd r4, r4, [sp, 0x10]                           |     __asm ("strd r4, r4, [sp, 0x10]");
    0x00017104 str r4, [sp, 0x18]                                |     var_18h_2 = r4;
    0x00017106 strd r4, r4, [sp, 0x28]                           |     __asm ("strd r4, r4, [sp, 0x28]");
    0x0001710a bl 0x16fa4                                        |     r0 = parse_item_key ();
                                                                 |     if (r0 == 0) {
    0x0001710e cbz r0, 0x17154                                   |         goto label_34;
                                                                 |     }
    0x00017110 ldr.w sb, [sp, 0x10]                              |     sb = var_ch;
    0x00017114 mov r4, r0                                        |     r4 = r0;
                                                                 | label_0:
    0x00017116 ldr r1, [pc, 0x98]                                |     
    0x00017118 mov r2, fp                                        |     r2 = fp;
    0x0001711a mov r0, r5                                        |     r0 = r5;
    0x0001711c add r1, pc                                        |     r1 = 0x2e2d2;
    0x0001711e bl 0x394f0                                        |     zbx_strlcpy ();
                                                                 |     do {
    0x00017122 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00017126 beq 0x17132                                       |             
    0x00017128 mov r0, sb                                        |             r0 = sb;
    0x0001712a blx 0xbd14                                        |             gai_strerror ();
    0x0001712e movs r3, 0                                        |             r3 = 0;
    0x00017130 str r3, [sp, 0x10]                                |             var_ch = r3;
                                                                 |         }
    0x00017132 mov r0, r8                                        |         r0 = r8;
    0x00017134 bl 0x1642c                                        |         fcn_0001642c (r0);
    0x00017138 ldr r2, [pc, 0x78]                                |         
    0x0001713a ldr r3, [pc, 0x6c]                                |         r3 = *(0x171aa);
    0x0001713c add r2, pc                                        |         r2 = 0x2e2f4;
    0x0001713e ldr r3, [r2, r3]                                  |         r3 = *(0x2e2f4);
    0x00017140 ldr r2, [r3]                                      |         r2 = *(0x2e2f4);
    0x00017142 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00017144 eors r2, r3                                       |         r2 ^= r3;
    0x00017146 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0001714a bne 0x1719e                                       |             goto label_35;
                                                                 |         }
    0x0001714c mov r0, r4                                        |         r0 = r4;
    0x0001714e add sp, 0x3c                                      |         
    0x00017150 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_34:
    0x00017154 ldrd sb, r3, [sp, 0x10]                           |         __asm ("ldrd sb, r3, [var_ch]");
    0x00017158 cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x0001715a beq 0x17186                                       |             goto label_36;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0001715c cbnz r3, 0x17180                                  |             goto label_37;
                                                                 |         }
    0x0001715e movs r3, 4                                        |         r3 = 4;
                                                                 | label_1:
    0x00017160 ldr r1, [pc, 0x54]                                |         r1 = *(0x171b8);
    0x00017162 mov r2, r5                                        |         r2 = r5;
    0x00017164 strd sb, r3, [sp]                                 |         __asm ("strd sb, r3, [sp]");
    0x00017168 mov r3, fp                                        |         r3 = fp;
    0x0001716a ldr r0, [pc, 0x50]                                |         
    0x0001716c ldr.w r1, [sl, r1]                                |         r1 = *((sl + r1));
    0x00017170 add r0, pc                                        |         r0 = 0x2e332;
    0x00017172 strd r1, r6, [sp, 8]                              |         __asm ("strd r1, r6, [sp, 8]");
    0x00017176 mov r1, sp                                        |         r1 = sp;
    0x00017178 bl 0x16358                                        |         r0 = fcn_00016358 (r0, r1, r2, r3);
    0x0001717c mov r4, r0                                        |         r4 = r0;
    0x0001717e b 0x17122                                         |         
                                                                 |     } while (1);
                                                                 |     do {
                                                                 | label_37:
    0x00017180 mov.w r4, -1                                      |         r4 = -1;
    0x00017184 b 0x17116                                         |         goto label_0;
                                                                 | label_36:
    0x00017186 mov r0, sb                                        |         r0 = sb;
    0x00017188 blx 0xc114                                        |         r0 = fcn_0000c114 ();
    0x0001718c adds r1, r7, r0                                   |         r1 = r7 + r0;
    0x0001718e ldr r0, [pc, 0x30]                                |         
    0x00017190 add r0, pc                                        |         r0 = 0x2e356;
    0x00017192 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00017196 cmp r0, 0                                         |         
    0x00017198 bne 0x17180                                       |         
                                                                 |     } while (r0 != 0);
    0x0001719a movs r3, 5                                        |     r3 = 5;
    0x0001719c b 0x17160                                         |     goto label_1;
                                                                 | label_35:
    0x0001719e blx 0xbe48                                        |     fcn_0000be48 ();
    0x000171a2 nop                                               |     
    0x000171a4 ldrh r4, [r1, r4]                                 |     r4 = *((r1 + r4));
    0x000171a6 movs r4, r0                                       |     r4 = r0;
    0x000171a8 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000171aa movs r0, r0                                       |     
                                                                 |     do {
    0x000171ac ldrh r2, [r7, r3]                                 |         r2 = *((r7 + r3));
    0x000171ae movs r4, r0                                       |         r4 = r0;
                                                                 |         if (r4 > r0) {
    0x000171b0 bgt 0x1728c                                       |             goto label_38;
                                                                 |         }
    0x000171b2 movs r2, r0                                       |         r2 = r0;
    0x000171b4 ldrh r0, [r6, r2]                                 |         r0 = *((r6 + r2));
    0x000171b6 movs r4, r0                                       |         r4 = r0;
    0x000171b8 lsls r0, r1, 0xf                                  |         r0 = r1 << 0xf;
    0x000171ba movs r0, r0                                       |         
    0x000171bc str r0, [r2, 0x74]                                |         *((r2 + 0x74)) = r0;
    0x000171be movs r4, r0                                       |         r4 = r0;
    0x000171c0 blt 0x171ac                                       |         
                                                                 |     } while (r4 < r0);
    0x000171c2 movs r2, r0                                       |     r2 = r0;
                                                                 | label_38:
    0x0001728c cdp2 p8, 8, c2, c11, c0, 0                        |     __asm ("cdp2 p8, 8, c2, c11, c0, 0");
                                                                 |     if (r2 != r0) {
    0x00017290 bne.w 0x1762c                                     |         goto label_9;
                                                                 |     }
    0x00017294 lsls r6, r7, 0x1f                                 |     r6 = r7 << 0x1f;
                                                                 |     if (r6 >= r7) {
    0x00017296 bpl 0x17366                                       |         goto label_39;
                                                                 |     }
    0x00017298 ldr.w r3, [pc, 0x444]                             |     
    0x0001729c add r3, pc                                        |     r3 = 0x2e980;
    0x0001729e ldr r4, [r3, 4]                                   |     r4 = *(0x2e984);
    0x000172a0 ldr r0, [r4]                                      |     r0 = *(0x2e984);
    0x000172a2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000172a4 beq 0x1738e                                       |         goto label_40;
                                                                 |     }
    0x000172a6 ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x000172aa b 0x172b4                                         |     
                                                                 |     while (r0 != 0) {
    0x000172ac ldr r0, [r4, 0x10]!                               |         r0 = *((r4 += 0x10));
    0x000172b0 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000172b2 beq 0x1738e                                       |             goto label_40;
                                                                 |         }
    0x000172b4 mov r1, r8                                        |         r1 = r8;
    0x000172b6 mov r6, r4                                        |         r6 = r4;
    0x000172b8 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000172bc cmp r0, 0                                         |         
    0x000172be bne 0x172ac                                       |         
                                                                 |     }
                                                                 | label_4:
    0x000172c0 ldr r3, [r6]                                      |     r3 = *(r6);
    0x000172c2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000172c4 beq.w 0x17588                                     |         goto label_41;
                                                                 |     }
    0x000172c8 lsls r4, r7, 0x1e                                 |     r4 = r7 << 0x1e;
    0x000172ca ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
                                                                 |     if (r4 < r7) {
    0x000172cc bpl 0x172d6                                       |         
    0x000172ce ands r2, r3, 2                                    |         r2 = r3 & 2;
                                                                 |         if (r2 == r3) {
    0x000172d2 beq.w 0x175d0                                     |             goto label_42;
                                                                 |         }
                                                                 |     }
    0x000172d6 ands r2, r3, 1                                    |     r2 = r3 & 1;
                                                                 |     if (r2 == r3) {
    0x000172da beq 0x173ba                                       |         goto label_43;
                                                                 |     }
    0x000172dc lsls r2, r3, 0x1d                                 |     r2 = r3 << 0x1d;
                                                                 |     if (r2 >= r3) {
    0x000172de bpl.w 0x173e4                                     |         goto label_8;
                                                                 |     }
    0x000172e2 movs r3, 0                                        |     r3 = 0;
    0x000172e4 ldr r2, [r6, 0xc]                                 |     r2 = *((r6 + 0xc));
    0x000172e6 str r3, [sp, 0x28]                                |     *((sp + 0x28)) = r3;
    0x000172e8 add r7, sp, 0x28                                  |     r7 = sp + 0x28;
    0x000172ea str r3, [sp, 0x2c]                                |     *(arg_2ch) = r3;
    0x000172ec add.w sb, sp, 0x2c                                |     sb += arg_2ch;
    0x000172f0 str r3, [sp, 0x30]                                |     *((sp + 0x30)) = r3;
    0x000172f2 add.w r8, sp, 0x30                                |     r8 = sp + 0x30;
    0x000172f6 ldr r3, [pc, 0x3ec]                               |     
    0x000172f8 mov sl, r2                                        |     sl = r2;
    0x000172fa str r2, [sp, 0x14]                                |     var_14h = r2;
    0x000172fc str r6, [sp, 0x24]                                |     *(arg_24h) = r6;
    0x000172fe add r3, pc                                        |     r3 = 0x2e9e8;
    0x00017300 str r3, [sp, 0x20]                                |     *((sp + 0x20)) = r3;
    0x00017302 add r3, sp, 0x64                                  |     r3 += var_8h;
    0x00017304 str r3, [sp, 8]                                   |     *((sp + 8)) = r3;
    0x00017306 b 0x17328                                         |     
                                                                 |     while (r3 == 0) {
    0x00017308 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0001730a cmp r3, 0x30                                      |         
                                                                 |         if (r3 == 0x30) {
    0x0001730c beq 0x17358                                       |             goto label_44;
                                                                 |         }
                                                                 | label_2:
    0x0001730e sub.w r2, r3, 0x31                                |         r2 = r3 - 0x31;
    0x00017312 cmp r2, 8                                         |         
                                                                 |         if (r2 > 8) {
    0x00017314 bhi.w 0x17428                                     |             goto label_45;
                                                                 |         }
    0x00017318 ldr r2, [r5, 4]                                   |         r2 = *((r5 + 4));
    0x0001731a sub.w r1, r3, 0x30                                |         r1 = r3 - 0x30;
    0x0001731e cmp r1, r2                                        |         
                                                                 |         if (r1 <= r2) {
    0x00017320 ble.w 0x17446                                     |             goto label_46;
                                                                 |         }
                                                                 | label_3:
    0x00017324 add.w sl, r4, 1                                   |         sl = r4 + 1;
    0x00017328 movs r1, 0x24                                     |         r1 = 0x24;
    0x0001732a mov r0, sl                                        |         r0 = sl;
    0x0001732c blx 0xc138                                        |         r0 = fcn_0000c138 ();
    0x00017330 mov r4, r0                                        |         r4 = r0;
    0x00017332 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00017334 beq.w 0x175b2                                     |             goto label_47;
                                                                 |         }
    0x00017338 sub.w r3, r4, sl                                  |         r3 = r4 - sl;
    0x0001733c mov r2, r8                                        |         r2 = r8;
    0x0001733e str r3, [sp]                                      |         *(sp) = r3;
    0x00017340 mov r1, sb                                        |         r1 = sb;
    0x00017342 mov r3, sl                                        |         r3 = sl;
    0x00017344 mov r0, r7                                        |         r0 = r7;
    0x00017346 bl 0x3905c                                        |         zbx_strncpy_alloc ();
    0x0001734a ldrb r3, [r4, 1]                                  |         r3 = *((r4 + 1));
    0x0001734c cmp r3, 0                                         |         
    0x0001734e beq 0x17308                                       |         
                                                                 |     }
    0x00017350 cmp r3, 0x30                                      |     
    0x00017352 add.w r4, r4, 1                                   |     r4++;
                                                                 |     if (r3 != 0x30) {
    0x00017356 bne 0x1730e                                       |         goto label_2;
                                                                 |     }
                                                                 | label_44:
    0x00017358 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0001735a mov r2, r8                                        |     r2 = r8;
    0x0001735c mov r1, sb                                        |     r1 = sb;
    0x0001735e mov r0, r7                                        |     r0 = r7;
    0x00017360 bl 0x39168                                        |     zbx_strcpy_alloc ();
    0x00017364 b 0x17324                                         |     goto label_3;
                                                                 | label_39:
    0x00017366 mov r0, r5                                        |     r0 = r5;
    0x00017368 bl 0x16c4c                                        |     r0 = check_request_access_rules ();
    0x0001736c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001736e bne.w 0x17650                                     |         goto label_48;
                                                                 |     }
    0x00017372 ldr r3, [pc, 0x374]                               |     
    0x00017374 ldr r2, [sp, 0x10]                                |     r2 = *((sp + 0x10));
    0x00017376 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017378 ldr r3, [r3]                                      |     r3 = *(0x176ea);
    0x0001737a cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0001737c beq 0x1738e                                       |         
    0x0001737e ldr r1, [pc, 0x36c]                               |         
    0x00017380 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00017382 add r1, pc                                        |         r1 = 0x2ea74;
    0x00017384 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00017388 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001738a beq.w 0x175f2                                     |             goto label_49;
                                                                 |         }
                                                                 |     }
                                                                 | label_40:
    0x0001738e ldr r3, [pc, 0x360]                               |     
    0x00017390 add r3, pc                                        |     r3 = 0x2ea86;
    0x00017392 ldr r4, [r3]                                      |     r4 = *(0x2ea86);
    0x00017394 ldr r0, [r4]                                      |     r0 = *(0x2ea86);
    0x00017396 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00017398 beq.w 0x17588                                     |         goto label_41;
                                                                 |     }
    0x0001739c ldr.w r8, [r5]                                    |     r8 = *(r5);
    0x000173a0 b 0x173ac                                         |     
                                                                 |     while (r0 != 0) {
    0x000173a2 ldr r0, [r4, 0x10]!                               |         r0 = *((r4 += 0x10));
    0x000173a6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000173a8 beq.w 0x17588                                     |             goto label_41;
                                                                 |         }
    0x000173ac mov r1, r8                                        |         r1 = r8;
    0x000173ae mov r6, r4                                        |         r6 = r4;
    0x000173b0 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000173b4 cmp r0, 0                                         |         
    0x000173b6 bne 0x173a2                                       |         
                                                                 |     }
    0x000173b8 b 0x172c0                                         |     goto label_4;
                                                                 | label_43:
    0x000173ba ldr r4, [r5, 4]                                   |     r4 = *((r5 + 4));
    0x000173bc cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000173be bne.w 0x17680                                     |         goto label_50;
                                                                 |     }
    0x000173c2 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 < r3) {
    0x000173c4 bpl 0x173e4                                       |         
    0x000173c6 mov r0, r5                                        |         r0 = r5;
    0x000173c8 bl 0x1642c                                        |         fcn_0001642c (r0);
    0x000173cc ldr r0, [pc, 0x324]                               |         
    0x000173ce movw r1, 0x492                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000173d2 ldr r3, [r6, 0xc]                                 |         r3 = *((r6 + 0xc));
    0x000173d4 mov r2, r4                                        |         r2 = r4;
    0x000173d6 add r0, pc                                        |         r0 = 0x2eace;
    0x000173d8 bl 0x35d28                                        |         r0 = zbx_strdup2 ();
    0x000173dc mov r1, r0                                        |         r1 = r0;
    0x000173de mov r0, r5                                        |         r0 = r5;
    0x000173e0 bl 0x16474                                        |         fcn_00016474 (r0, r1);
                                                                 |     }
                                                                 | label_8:
    0x000173e4 ldr r3, [r6, 8]                                   |     r3 = *((r6 + 8));
    0x000173e6 mov r0, r5                                        |     r0 = r5;
    0x000173e8 ldr r1, [sp, 0xc]                                 |     r1 = *((sp + 0xc));
    0x000173ea blx r3                                            |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x000173ec mov r4, r0                                        |     r4 = r0;
    0x000173ee cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000173f0 bne.w 0x17616                                     |         goto label_51;
                                                                 |     }
                                                                 | label_6:
    0x000173f4 ldr r0, [r5]                                      |     r0 = *(r5);
                                                                 |     if (r0 != 0) {
    0x000173f6 cbz r0, 0x17400                                   |         
    0x000173f8 blx 0xbd14                                        |         gai_strerror ();
    0x000173fc movs r3, 0                                        |         r3 = 0;
    0x000173fe str r3, [r5]                                      |         *(r5) = r3;
                                                                 |     }
    0x00017400 mov r0, r5                                        |     r0 = r5;
    0x00017402 bl 0x1642c                                        |     fcn_0001642c (r0);
    0x00017406 ldr r2, [pc, 0x2f0]                               |     
    0x00017408 ldr r3, [pc, 0x2d0]                               |     r3 = *(0x176dc);
    0x0001740a add r2, pc                                        |     r2 = 0x2eb08;
    0x0001740c ldr r3, [r2, r3]                                  |     r3 = *(0x2eb08);
    0x0001740e ldr r2, [r3]                                      |     r2 = *(0x2eb08);
    0x00017410 ldr.w r3, [sp, 0x87c]                             |     r3 = *(arg_87ch);
    0x00017414 eors r2, r3                                       |     r2 ^= r3;
    0x00017416 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0001741a bne.w 0x176d0                                     |         goto label_52;
                                                                 |     }
    0x0001741e mov r0, r4                                        |     r0 = r4;
    0x00017420 addw sp, sp, 0x884                                |     __asm ("addw sp, sp, case.0x3207a.11");
    0x00017424 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_45:
    0x00017428 cmp r3, 0x24                                      |     
                                                                 |     if (r3 != 0x24) {
    0x0001742a beq 0x1743a                                       |         
    0x0001742c movs r3, 0x24                                     |         r3 = 0x24;
    0x0001742e mov r2, r8                                        |         r2 = r8;
    0x00017430 mov r1, sb                                        |         r1 = sb;
    0x00017432 mov r0, r7                                        |         r0 = r7;
    0x00017434 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017438 ldrb r3, [r4]                                     |         r3 = *(r4);
                                                                 |     }
    0x0001743a mov r2, r8                                        |     r2 = r8;
    0x0001743c mov r1, sb                                        |     r1 = sb;
    0x0001743e mov r0, r7                                        |     r0 = r7;
    0x00017440 bl 0x39190                                        |     zbx_chrcpy_alloc ();
    0x00017444 b 0x17324                                         |     goto label_3;
                                                                 | label_46:
    0x00017446 ldr r2, [r5, 8]                                   |     r2 = *((r5 + 8));
    0x00017448 add.w r3, r3, 0x40000000                          |     r3 += case.0x3207a.11;
    0x0001744c subs r3, 0x31                                     |     r3 -= 0x31;
    0x0001744e ldr.w ip, [sp, 0x20]                              |     ip = *((sp + 0x20));
    0x00017450 stm r0!, {r5}                                     |     *(r0!) = r5;
    0x00017452 add.w sl, sp, 0x38                                |     sl += arg_38h;
    0x00017456 ldr r6, [sp, 8]                                   |     r6 = *((sp + 8));
    0x00017458 ldr.w fp, [r2, r3, lsl 2]                         |     offset_0 = r3 << 2;
                                                                 |     fp = *((r2 + offset_0));
    0x0001745c add r2, sp, 0x34                                  |     r2 += arg_34h;
    0x0001745e str r2, [sp, 0x1c]                                |     *((sp + 0x1c)) = r2;
    0x00017460 movs r2, 0x80                                     |     r2 = 0x80;
    0x00017462 movs r3, 0                                        |     r3 = 0;
    0x00017464 str.w r2, [sl]                                    |     __asm ("str.w r2, [sl]");
    0x00017468 add r2, sp, 0x3c                                  |     r2 += arg_3ch;
    0x0001746a str r3, [sp, 0x34]                                |     *(arg_34h) = r3;
    0x0001746c str r2, [sp, 0x18]                                |     *((sp + 0x18)) = r2;
    0x0001746e str r3, [sp, 0x3c]                                |     *(arg_3ch) = r3;
    0x00017470 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x00017474 ldr.w lr, [pc, 0x284]                             |     lr = *(0x176fc);
    0x00017478 stm r6!, {r0, r1, r2, r3}                         |     *(r6!) = r0;
                                                                 |     *((r6! + 4)) = r1;
                                                                 |     *((r6! + 8)) = r2;
                                                                 |     *((r6! + 12)) = r3;
    0x0001747a ldm.w ip, {r0, r1}                                |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
    0x0001747e ldr r3, [sp, 0x10]                                |     r3 = *((sp + 0x10));
    0x00017480 stm.w r6, {r0, r1}                                |     *(r6) = r0;
                                                                 |     *((r6 + 4)) = r1;
    0x00017484 ldr.w r3, [r3, lr]                                |     r3 = *((r3 + lr));
    0x00017488 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001748a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001748c bne 0x1757a                                       |         goto label_53;
                                                                 |     }
    0x0001748e ldr r6, [sp, 8]                                   |     r6 = *((sp + 8));
    0x00017490 movs r1, 0x5c                                     |     r1 = 0x5c;
                                                                 | label_7:
    0x00017492 mov r0, fp                                        |     r0 = fp;
    0x00017494 blx 0xc138                                        |     r0 = fcn_0000c138 ();
    0x00017498 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001749a beq 0x17572                                       |         goto label_54;
                                                                 |     }
    0x0001749c ldr r0, [pc, 0x260]                               |     
    0x0001749e movs r3, 0x80                                     |     r3 = 0x80;
    0x000174a0 ldr.w fp, [sp, 0x1c]                              |     fp = *((sp + 0x1c));
    0x000174a4 movs r2, 0                                        |     r2 = 0;
    0x000174a6 movw r1, 0x3e2                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000174aa ldr.w sb, [pc, 0x258]                             |     
    0x000174ae add r0, pc                                        |     r0 = 0x2ebb2;
    0x000174b0 add.w r6, sp, 0x65                                |     r6 += arg_65h;
    0x000174b4 bl 0x35c28                                        |     zbx_malloc2 ();
    0x000174b8 str.w r0, [fp]                                    |     __asm ("str.w r0, [fp]");
    0x000174bc add sb, pc                                        |     sb = 0x2ebc6;
    0x000174be blx 0xc0d4                                        |     feof (r0);
    0x000174c2 ldr r2, [pc, 0x244]                               |     
    0x000174c4 mov r8, r0                                        |     r8 = r0;
    0x000174c6 str r7, [sp, 0x10]                                |     *((sp + 0x10)) = r7;
    0x000174c8 movs r4, 0x27                                     |     r4 = 0x27;
    0x000174ca ldr r7, [sp, 0x18]                                |     r7 = *((sp + 0x18));
    0x000174cc movs r3, 0x5c                                     |     r3 = 0x5c;
    0x000174ce add r2, pc                                        |     r2 = 0x2ebdc;
    0x000174d0 str r5, [sp, 0x14]                                |     var_14h = r5;
    0x000174d2 mov r5, r2                                        |     r5 = r2;
    0x000174d4 mov r2, sb                                        |     r2 = sb;
    0x000174d6 mov sb, sl                                        |     sb = sl;
    0x000174d8 mov sl, r2                                        |     sl = r2;
                                                                 |     do {
    0x000174da ldr.w r2, [r8]                                    |         r2 = *(r8);
    0x000174de sxth.w ip, r3                                     |         __asm ("sxth.w ip, r3");
    0x000174e2 ldrh.w r2, [r2, ip, lsl 1]                        |         offset_1 = ip << 1;
                                                                 |         r2 = *((r2 + offset_1));
    0x000174e6 lsls r0, r2, 0x11                                 |         r0 = r2 << 0x11;
                                                                 |         if (r0 >= r2) {
    0x000174e8 bpl 0x17510                                       |             goto label_55;
                                                                 |         }
    0x000174ea mov r2, r7                                        |         r2 = r7;
    0x000174ec mov r1, sb                                        |         r1 = sb;
    0x000174ee mov r0, fp                                        |         r0 = fp;
    0x000174f0 bl 0x39190                                        |         zbx_chrcpy_alloc ();
                                                                 |         if (r4 == 0) {
    0x000174f4 cbz r4, 0x17522                                   |             goto label_56;
                                                                 |         }
                                                                 | label_5:
    0x000174f6 ldr r3, [sp, 8]                                   |         r3 = *((sp + 8));
    0x000174f8 cmp r3, r6                                        |         
                                                                 |         if (r3 != r6) {
    0x000174fa beq 0x17508                                       |             
    0x000174fc mov r3, sl                                        |             r3 = sl;
    0x000174fe mov r2, r7                                        |             r2 = r7;
    0x00017500 mov r1, sb                                        |             r1 = sb;
    0x00017502 mov r0, fp                                        |             r0 = fp;
    0x00017504 bl 0x39168                                        |             zbx_strcpy_alloc ();
                                                                 |         }
    0x00017508 mov r3, r4                                        |         r3 = r4;
    0x0001750a ldrb r4, [r6, 1]!                                 |         r4 = *((r6 += 1));
    0x0001750e b 0x174da                                         |         
                                                                 |     } while (1);
                                                                 | label_55:
    0x00017510 str r3, [sp]                                      |     *(sp) = r3;
    0x00017512 mov r2, r7                                        |     r2 = r7;
    0x00017514 mov r3, r5                                        |     r3 = r5;
    0x00017516 mov r1, sb                                        |     r1 = sb;
    0x00017518 mov r0, fp                                        |     r0 = fp;
    0x0001751a bl 0x38f1c                                        |     zbx_snprintf_alloc ();
    0x0001751e cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x00017520 bne 0x174f6                                       |         goto label_5;
                                                                 |     }
                                                                 | label_56:
    0x00017522 ldr r2, [pc, 0x1e8]                               |     
    0x00017524 add r4, sp, 0x7c                                  |     r4 += arg_7ch;
    0x00017526 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x0001752a mov.w r1, 0x800                                   |     r1 = case.0x3207a.11;
    0x0001752e mov r0, r4                                        |     r0 = r4;
    0x00017530 ldrd r7, r5, [sp, 0x10]                           |     __asm ("ldrd r7, r5, [sp, 0x10]");
    0x00017534 add r2, pc                                        |     r2 = 0x2ec46;
    0x00017536 bl 0x38ea0                                        |     zbx_snprintf ();
    0x0001753a ldr.w r0, [fp]                                    |     r0 = *(fp);
                                                                 |     if (r0 != 0) {
    0x0001753e cbz r0, 0x17544                                   |         
    0x00017540 blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
    0x00017544 ldr r0, [r7]                                      |     r0 = *(r7);
                                                                 |     if (r0 != 0) {
    0x00017546 cbz r0, 0x17550                                   |         
    0x00017548 blx 0xbd14                                        |         gai_strerror ();
    0x0001754c movs r3, 0                                        |         r3 = 0;
    0x0001754e str r3, [r7]                                      |         *(r7) = r3;
                                                                 |     }
    0x00017550 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x00017552 mov r3, r4                                        |     r3 = r4;
    0x00017554 ldr r0, [pc, 0x1b8]                               |     
    0x00017556 movs r2, 0                                        |     r2 = 0;
    0x00017558 mvn r4, 1                                         |     r4 = ~1;
    0x0001755c ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x0001755e add r0, pc                                        |     r0 = 0x2ec72;
    0x00017560 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017564 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x00017566 mov.w r1, 0x488                                   |     r1 = case.0x3207a.11;
    0x0001756a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0001756e str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x00017570 b 0x173f4                                         |     goto label_6;
                                                                 | label_54:
    0x00017572 ldrb r1, [r6, 1]!                                 |     r1 = *((r6 += 1));
    0x00017576 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00017578 bne 0x17492                                       |         goto label_7;
                                                                 |     }
                                                                 | label_53:
    0x0001757a mov r3, fp                                        |     r3 = fp;
    0x0001757c mov r2, r8                                        |     r2 = r8;
    0x0001757e mov r1, sb                                        |     r1 = sb;
    0x00017580 mov r0, r7                                        |     r0 = r7;
    0x00017582 bl 0x39168                                        |     zbx_strcpy_alloc ();
    0x00017586 b 0x17324                                         |     goto label_3;
                                                                 | label_41:
    0x00017588 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x0001758a movs r2, 0                                        |     r2 = 0;
    0x0001758c ldr r3, [pc, 0x184]                               |     
    0x0001758e mvn r4, 1                                         |     r4 = ~1;
    0x00017592 ldr r0, [pc, 0x184]                               |     
    0x00017594 ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x00017596 add r3, pc                                        |     r3 = 0x2ecae;
    0x00017598 add r0, pc                                        |     r0 = 0x2ecb6;
    0x0001759a orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x0001759e str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x000175a0 movw r1, 0x46e                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000175a4 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000175a8 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000175aa b 0x173f4                                         |     goto label_6;
                                                                 | label_47:
    0x000175b2 mov r1, sb                                        |     r1 = sb;
    0x000175b4 mov r3, sl                                        |     r3 = sl;
    0x000175b6 mov r2, r8                                        |     r2 = r8;
    0x000175b8 mov r0, r7                                        |     r0 = r7;
    0x000175ba ldr r6, [sp, 0x24]                                |     r6 = *(arg_24h);
    0x000175bc bl 0x39168                                        |     zbx_strcpy_alloc ();
    0x000175c0 mov r0, r5                                        |     r0 = r5;
    0x000175c2 bl 0x1642c                                        |     fcn_0001642c (r0);
    0x000175c6 ldr r1, [r7]                                      |     r1 = *(r7);
    0x000175c8 mov r0, r5                                        |     r0 = r5;
    0x000175ca bl 0x16474                                        |     fcn_00016474 (r0, r1);
    0x000175ce b 0x173e4                                         |     goto label_8;
                                                                 | label_42:
    0x000175d0 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x000175d2 mvn r4, 1                                         |     r4 = ~1;
    0x000175d6 ldr r3, [pc, 0x144]                               |     
    0x000175d8 ldr r0, [pc, 0x144]                               |     
    0x000175da ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x000175dc add r3, pc                                        |     r3 = 0x2ecfe;
    0x000175de add r0, pc                                        |     r0 = 0x2ed02;
    0x000175e0 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x000175e4 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x000175e6 movw r1, 0x475                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000175ea bl 0x35d28                                        |     zbx_strdup2 ();
    0x000175ee str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x000175f0 b 0x173f4                                         |     goto label_6;
                                                                 | label_49:
    0x000175f2 ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x000175f4 mov r2, r0                                        |     r2 = r0;
    0x000175f6 ldr r3, [pc, 0x12c]                               |     
    0x000175f8 mvn r4, 1                                         |     r4 = ~1;
    0x000175fc ldr r0, [pc, 0x128]                               |     
    0x000175fe ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x00017600 add r3, pc                                        |     r3 = 0x2ed2a;
    0x00017602 add r0, pc                                        |     r0 = 0x2ed2e;
    0x00017604 orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017608 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x0001760a movw r1, 0x455                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001760e bl 0x35d28                                        |     zbx_strdup2 ();
    0x00017612 str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x00017614 b 0x173f4                                         |     goto label_6;
                                                                 | label_51:
    0x00017616 ldr r3, [r6, 4]                                   |     r3 = *((r6 + 4));
    0x00017618 lsls r1, r3, 0x1e                                 |     r1 = r3 << 0x1e;
                                                                 |     if (r1 < r3) {
    0x0001761a bpl 0x17626                                       |         
    0x0001761c ldr r3, [sp, 0xc]                                 |         r3 = *((sp + 0xc));
    0x0001761e ldr r1, [r3, 0x28]                                |         r1 = *((r3 + 0x28));
    0x00017620 ands r2, r1, 0x20                                 |         r2 = r1 & 0x20;
                                                                 |         if (r2 == r1) {
    0x00017624 beq 0x176a2                                       |             goto label_57;
                                                                 |         }
                                                                 |     }
    0x00017626 mvn r4, 1                                         |     r4 = ~1;
    0x0001762a b 0x173f4                                         |     goto label_6;
                                                                 | label_9:
    0x0001762c ldr r6, [sp, 0xc]                                 |     r6 = *((sp + 0xc));
    0x0001762e movs r2, 0                                        |     r2 = 0;
    0x00017630 ldr r3, [pc, 0xf8]                                |     
    0x00017632 mvn r4, 1                                         |     r4 = ~1;
    0x00017636 ldr r0, [pc, 0xf8]                                |     
    0x00017638 ldr r1, [r6, 0x28]                                |     r1 = *((r6 + 0x28));
    0x0001763a add r3, pc                                        |     r3 = 0x2ed6a;
    0x0001763c add r0, pc                                        |     r0 = 0x2ed72;
    0x0001763e orr r1, r1, 0x20                                  |     r1 |= 0x20;
    0x00017642 str r1, [r6, 0x28]                                |     *((r6 + 0x28)) = r1;
    0x00017644 movw r1, 0x446                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017648 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0001764c str r0, [r6, 0x20]                                |     *((r6 + 0x20)) = r0;
    0x0001764e b 0x173f4                                         |     goto label_6;
                                                                 | label_48:
    0x00017650 ldr r3, [pc, 0xe0]                                |     
    0x00017652 ldr r2, [sp, 0x10]                                |     r2 = *((sp + 0x10));
    0x00017654 ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00017656 ldr r3, [r3]                                      |     r3 = *(0x17734);
    0x00017658 cmp r3, 3                                         |     
    0x0001765a bgt 0x176c2                                       |     
                                                                 |     while (1) {
    0x0001765c ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x0001765e movs r2, 0                                        |         r2 = 0;
    0x00017660 ldr r3, [pc, 0xd4]                                |         
    0x00017662 mvn r4, 1                                         |         r4 = ~1;
    0x00017666 ldr r0, [pc, 0xd4]                                |         r0 = *(0x1773e);
    0x00017668 ldr r1, [r6, 0x28]                                |         r1 = *((r6 + 0x28));
    0x0001766a add r3, pc                                        |         r3 = 0x2eda6;
                                                                 | label_13:
    0x0001766c add r0, pc                                        |         r0 += pc;
    0x0001766e orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00017672 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x00017674 movw r1, 0x44d                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017678 bl 0x35d28                                        |         zbx_strdup2 ();
    0x0001767c str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x0001767e b 0x173f4                                         |         goto label_6;
                                                                 | label_50:
    0x00017680 ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x00017682 mvn r4, 1                                         |         r4 = ~1;
    0x00017686 ldr r3, [pc, 0xb8]                                |         
    0x00017688 ldr r0, [pc, 0xb8]                                |         
    0x0001768a ldr r1, [r6, 0x28]                                |         r1 = *((r6 + 0x28));
    0x0001768c add r3, pc                                        |         r3 = 0x2edd2;
    0x0001768e add r0, pc                                        |         r0 = 0x2edd6;
    0x00017690 orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x00017694 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x00017696 movw r1, 0x47c                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001769a bl 0x35d28                                        |         zbx_strdup2 ();
    0x0001769e str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x000176a0 b 0x173f4                                         |         goto label_6;
                                                                 | label_57:
    0x000176a2 ldr r6, [sp, 0xc]                                 |         r6 = *((sp + 0xc));
    0x000176a4 orr r1, r1, 0x20                                  |         r1 |= 0x20;
    0x000176a8 ldr r3, [pc, 0x9c]                                |         
    0x000176aa mvn r4, 1                                         |         r4 = ~1;
    0x000176ae ldr r0, [pc, 0x9c]                                |         r0 = *(0x1774e);
    0x000176b0 str r1, [r6, 0x28]                                |         *((r6 + 0x28)) = r1;
    0x000176b2 movw r1, 0x49c                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000176b6 add r3, pc                                        |         r3 = 0x2ee02;
                                                                 | label_12:
    0x000176b8 add r0, pc                                        |         r0 += pc;
    0x000176ba bl 0x35d28                                        |         zbx_strdup2 ();
    0x000176be str r0, [r6, 0x20]                                |         *((r6 + 0x20)) = r0;
    0x000176c0 b 0x173f4                                         |         goto label_6;
    0x000176c2 ldr r1, [pc, 0x8c]                                |         r1 = *(0x17752);
    0x000176c4 mov r2, r4                                        |         r2 = r4;
    0x000176c6 movs r0, 4                                        |         r0 = 4;
                                                                 | label_11:
    0x000176c8 add r1, pc                                        |         r1 += pc;
    0x000176ca bl 0x271b0                                        |         zbx_zabbix_log ();
    0x000176ce b 0x1765c                                         |         
                                                                 |     }
                                                                 | label_52:
    0x000176d0 blx 0xbe48                                        |     fcn_0000be48 ();
    0x000176d4 ldr r4, [r2, r6]                                  |     r4 = *((r2 + r6));
    0x000176d6 movs r4, r0                                       |     r4 = r0;
                                                                 | label_10:
    0x000176d8 ldr r6, [r1, r6]                                  |     r6 = *((r1 + r6));
    0x000176da movs r4, r0                                       |     r4 = r0;
    0x000176dc lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x000176de movs r0, r0                                       |     
    0x000176e0 str r4, [r4, 0x60]                                |     *((r4 + 0x60)) = r4;
    0x000176e2 movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 < r0) {
    0x000176e4 blt 0x17794                                       |         goto label_58;
                                                                 |     }
    0x000176e6 movs r2, r0                                       |     r2 = r0;
    0x000176e8 lsls r4, r3, 0xf                                  |     r4 = r3 << 0xf;
    0x000176ea movs r0, r0                                       |     
                                                                 |     if (r0 > r0) {
    0x000176ec bhi 0x1762c                                       |         goto label_9;
                                                                 |     }
    0x000176ee movs r2, r0                                       |     r2 = r0;
    0x000176f0 str r0, [r6, 0x50]                                |     *((r6 + 0x50)) = r0;
    0x000176f2 movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 <= r0) {
                                                                 | label_14:
    0x000176f4 bhi 0x176fc                                       |         
    0x000176f6 movs r2, r0                                       |         r2 = r0;
    0x000176f8 ldrsb r2, [r4, r7]                                |         r2 = *((r4 + r7));
    0x000176fa movs r4, r0                                       |         r4 = r0;
                                                                 |     }
    0x000176fc lsls r4, r6, 0xd                                  |     r4 = r6 << 0xd;
    0x000176fe movs r0, r0                                       |     
    0x00017700 bvc 0x17758                                       |     __asm ("bvc case.0x3207a.11");
    0x00017702 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00017704 bls 0x177a8                                       |         goto label_59;
                                                                 |     }
    0x00017706 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 < r0) {
    0x00017708 bls 0x17790                                       |         goto label_60;
                                                                 |     }
    0x0001770a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 > r0) {
    0x0001770c bhi 0x176d8                                       |         goto label_10;
                                                                 |     }
    0x0001770e movs r2, r0                                       |     r2 = r0;
    0x00017710 bvs 0x17808                                       |     __asm ("bvs case.0x3207a.11");
    0x00017712 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 > r0) {
    0x00017714 bhi 0x1774c                                       |         goto label_61;
                                                                 |     }
    0x00017716 movs r2, r0                                       |     r2 = r0;
                                                                 |     do {
    0x00017718 bvs 0x1779c                                       |         __asm ("bvs case.0x3207a.11");
    0x0001771a movs r2, r0                                       |         r2 = r0;
    0x0001771c bvc 0x176c8                                       |         __asm ("bvc case.0x3207a.11");
                                                                 |         goto label_11;
    0x0001771e movs r2, r0                                       |         r2 = r0;
    0x00017720 bpl 0x17718                                       |         
                                                                 |     } while (r2 >= r0);
    0x00017722 movs r2, r0                                       |     r2 = r0;
    0x00017724 bvc 0x176b8                                       |     __asm ("bvc case.0x3207a.11");
                                                                 |     goto label_12;
    0x00017726 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017728 bpl 0x176d8                                       |         goto label_10;
                                                                 |     }
    0x0001772a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 <= r0) {
    0x0001772c blo 0x177dc                                       |         goto label_62;
                                                                 |     }
    0x0001772e movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017730 bpl 0x1766c                                       |         goto label_13;
                                                                 |     }
    0x00017732 movs r2, r0                                       |     r2 = r0;
    0x00017734 lsls r0, r6, 0xe                                  |     r0 = r6 << 0xe;
    0x00017736 movs r0, r0                                       |     
    0x00017738 bvc 0x177c8                                       |     __asm ("bvc case.0x3207a.11");
    0x0001773a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x0001773c bpl 0x17818                                       |         goto label_21;
                                                                 |     }
    0x0001773e movs r2, r0                                       |     r2 = r0;
    0x00017740 bvc 0x17804                                       |     __asm ("bvc case.0x3207a.11");
    0x00017742 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017744 bpl 0x177dc                                       |         goto label_62;
                                                                 |     }
    0x00017746 movs r2, r0                                       |     r2 = r0;
    0x00017748 invalid                                           |     
                                                                 |     if (r2 < r0) {
                                                                 | label_61:
    0x0001774c bpl 0x17790                                       |         
    0x0001774e movs r2, r0                                       |         r2 = r0;
    0x00017750 bvs 0x176f4                                       |         __asm ("bvs case.0x3207a.11");
                                                                 |         goto label_14;
    0x00017752 movs r2, r0                                       |         r2 = r0;
    0x00017758 mov r3, r0                                        |         r3 = r0;
    0x0001775a push {r4, r5, lr}                                 |         
    0x0001775c sub sp, 0x54                                      |         
    0x0001775e ldr r5, [pc, 0x108]                               |         
    0x00017760 mov r4, r0                                        |         r4 = r0;
    0x00017762 add ip, pc                                        |         
    0x00017764 movs r2, 0x2d                                     |         r2 = 0x2d;
    0x00017766 ldr r1, [pc, 0x104]                               |         
    0x00017768 movs r0, 1                                        |         r0 = 1;
    0x0001776a ldr.w r5, [ip, r5]                                |         r5 = *((ip + r5));
    0x0001776e add r1, pc                                        |         r1 = 0x2efe0;
    0x00017770 ldr r5, [r5]                                      |         r5 = *(0x1786a);
    0x00017772 str r5, [sp, 0x4c]                                |         var_4ch = r5;
    0x00017774 mov.w r5, 0                                       |         r5 = 0;
    0x00017778 mov r5, sp                                        |         r5 = sp;
    0x0001777a blx 0xc1d0                                        |         fileno (r0);
    0x0001777e movs r1, 0                                        |         r1 = 0;
    0x00017780 movs r2, 0x30                                     |         r2 = 0x30;
    0x00017782 mov r0, r5                                        |         r0 = r5;
    0x00017784 blx 0xc1ac                                        |         statvfs64 ();
    0x00017788 mov r0, r4                                        |         r0 = r4;
    0x0001778a ldr r4, [pc, 0xe4]                                |         r4 = *(0x17872);
    0x0001778c mov r2, r5                                        |         r2 = r5;
    0x0001778e movs r1, 4                                        |         r1 = 4;
                                                                 |     }
                                                                 | label_60:
    0x00017790 bl 0x17240                                        |     process ();
                                                                 | label_58:
    0x00017794 add r4, pc                                        |     r4 += pc;
    0x00017796 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
                                                                 |     if (r0 != 0) {
    0x00017798 cbnz r0, 0x177dc                                  |         goto label_62;
                                                                 |     }
    0x0001779a lsls r1, r3, 0x1f                                 |     r1 = r3 << 0x1f;
                                                                 |     if (r1 < r3) {
    0x0001779c bmi 0x17808                                       |         goto label_63;
                                                                 |     }
    0x0001779e lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 < r3) {
    0x000177a0 bmi 0x1781c                                       |         goto label_64;
                                                                 |     }
                                                                 | label_16:
    0x000177a2 lsls r0, r3, 0x1d                                 |     r0 = r3 << 0x1d;
                                                                 |     if (r0 < r3) {
    0x000177a4 bmi 0x1783a                                       |         goto label_65;
                                                                 |     }
                                                                 | label_17:
    0x000177a6 lsls r1, r3, 0x1c                                 |     r1 = r3 << 0x1c;
                                                                 |     if (r1 < r3) {
                                                                 | label_59:
    0x000177a8 bmi 0x1784c                                       |         goto label_66;
                                                                 |     }
                                                                 | label_18:
    0x000177aa lsls r2, r3, 0x1a                                 |     r2 = r3 << 0x1a;
                                                                 |     if (r2 < r3) {
    0x000177ac bmi 0x177fa                                       |         goto label_19;
                                                                 |     }
                                                                 |     do {
                                                                 | label_15:
    0x000177ae mov r0, r5                                        |         r0 = r5;
    0x000177b0 bl 0x16ee0                                        |         free_result ();
    0x000177b4 movs r0, 0xa                                      |         r0 = 0xa;
    0x000177b6 invalid                                           |         
                                                                 | label_22:
    0x000177b8 vstr d4, [r0, -0xb8]                              |         __asm ("vstr d4, [r0, -0xb8]");
    0x000177bc ldr r3, [r4, r3]                                  |         r3 = *((r4 + r3));
    0x000177be ldr r0, [r3]                                      |         r0 = *(r3);
    0x000177c0 blx 0xbcd0                                        |         fcn_0000bcd0 ();
    0x000177c4 ldr r2, [pc, 0xb0]                                |         r2 = *(0x17878);
    0x000177c6 ldr r3, [pc, 0xa0]                                |         r3 = *(0x1786a);
    0x000177c8 add r2, pc                                        |         r2 += pc;
    0x000177ca ldr r3, [r2, r3]                                  |         r3 = *((r2 + r3));
    0x000177cc ldr r2, [r3]                                      |         r2 = *(r3);
    0x000177ce ldr r3, [sp, 0x4c]                                |         r3 = *((sp + 0x4c));
    0x000177d0 eors r2, r3                                       |         r2 ^= r3;
    0x000177d2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000177d6 bne 0x17860                                       |             goto label_67;
                                                                 |         }
    0x000177d8 add sp, 0x54                                      |         
    0x000177da pop {r4, r5, pc}                                  |         
                                                                 | label_62:
    0x000177dc lsls r3, r3, 0x1a                                 |         r3 <<= 0x1a;
                                                                 |         if (r3 >= r3) {
    0x000177de bpl 0x177ee                                       |             goto label_68;
                                                                 |         }
    0x000177e0 ldr r1, [pc, 0x98]                                |         
    0x000177e2 movs r0, 1                                        |         r0 = 1;
    0x000177e4 ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x000177e6 add r1, pc                                        |         r1 = 0x2f066;
    0x000177e8 blx 0xc1d0                                        |         fileno (r0);
    0x000177ec b 0x177ae                                         |         
                                                                 |     } while (1);
                                                                 | label_68:
    0x000177ee ldr r1, [pc, 0x90]                                |     
    0x000177f0 movs r0, 1                                        |     r0 = 1;
    0x000177f2 add r1, pc                                        |     r1 = 0x2f078;
                                                                 | label_20:
    0x000177f4 blx 0xc1d0                                        |     fileno (r0);
    0x000177f8 b 0x177ae                                         |     goto label_15;
                                                                 | label_19:
    0x000177fa ldr r1, [pc, 0x88]                                |     
    0x000177fc movs r0, 1                                        |     r0 = 1;
    0x000177fe ldr r2, [sp, 0x20]                                |     r2 = var_20h;
    0x00017800 add r1, pc                                        |     r1 = 0x2f08a;
    0x00017802 invalid                                           |     
    0x00017804 stcl p7, c14, [r6], 0x348                         |     __asm ("stcl p7, c14, [r6], case.0x3207a.11");
                                                                 | label_63:
    0x00017808 ldr r1, [pc, 0x7c]                                |     
    0x0001780a movs r0, 1                                        |     r0 = 1;
    0x0001780c ldrd r2, r3, [sp, 8]                              |     __asm ("ldrd r2, r3, [sp, 8]");
    0x00017810 add r1, pc                                        |     r1 = 0x2f09c;
    0x00017812 blx 0xc1d0                                        |     fileno (r0);
    0x00017816 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
                                                                 | label_21:
    0x00017818 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 >= r3) {
    0x0001781a bpl 0x177a2                                       |         goto label_16;
                                                                 |     }
                                                                 | label_64:
    0x0001781c vldr d0, [sp, 0x10]                               |     __asm ("vldr d0, [sp, 0x10]");
    0x00017820 movs r1, 0x19                                     |     r1 = 0x19;
    0x00017822 add r0, sp, 0x30                                  |     r0 += arg_30h;
    0x00017824 bl 0x3cf64                                        |     zbx_print_double ();
    0x00017828 ldr r1, [pc, 0x60]                                |     
    0x0001782a mov r2, r0                                        |     r2 = r0;
    0x0001782c movs r0, 1                                        |     r0 = 1;
    0x0001782e add r1, pc                                        |     r1 = 0x2f0be;
    0x00017830 blx 0xc1d0                                        |     fileno (r0);
    0x00017834 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x00017836 lsls r0, r3, 0x1d                                 |     r0 = r3 << 0x1d;
                                                                 |     if (r0 >= r3) {
    0x00017838 bpl 0x177a6                                       |         goto label_17;
                                                                 |     }
                                                                 | label_65:
    0x0001783a ldr r1, [pc, 0x54]                                |     
    0x0001783c movs r0, 1                                        |     r0 = 1;
    0x0001783e ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00017840 add r1, pc                                        |     r1 = 0x2f0d6;
    0x00017842 blx 0xc1d0                                        |     fileno (r0);
    0x00017844 vstmia r6, {d25, d26, d27, d28, d29}              |     __asm ("vstmia r6, {d25, d26, d27, d28, d29}");
    0x00017848 lsls r1, r3, 0x1c                                 |     r1 = r3 << 0x1c;
                                                                 |     if (r1 >= r3) {
    0x0001784a bpl 0x177aa                                       |         goto label_18;
                                                                 |     }
                                                                 | label_66:
    0x0001784c ldr r1, [pc, 0x44]                                |     
    0x0001784e movs r0, 1                                        |     r0 = 1;
    0x00017850 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00017852 add r1, pc                                        |     r1 = 0x2f0ea;
    0x00017854 blx 0xc1d0                                        |     fileno (r0);
    0x00017858 ldr r3, [sp, 0x28]                                |     r3 = *(arg_28h);
    0x0001785a lsls r2, r3, 0x1a                                 |     r2 = r3 << 0x1a;
                                                                 |     if (r2 >= r3) {
    0x0001785c bpl 0x177ae                                       |         goto label_15;
                                                                 |     }
    0x0001785e b 0x177fa                                         |     goto label_19;
                                                                 | label_67:
    0x00017860 blx 0xbe48                                        |     fcn_0000be48 ();
    0x00017864 strb r2, [r1, r2]                                 |     *((r1 + r2)) = r2;
    0x00017866 movs r4, r0                                       |     r4 = r0;
    0x00017868 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0001786a movs r0, r0                                       |     
    0x0001786c bvs 0x1786c                                       |     __asm ("bvs case.0x3207a.11");
    0x0001786e movs r2, r0                                       |     r2 = r0;
    0x00017870 strb r0, [r3, r1]                                 |     *((r3 + r1)) = r0;
    0x00017872 movs r4, r0                                       |     r4 = r0;
    0x00017874 lsls r4, r1, 0xe                                  |     r4 = r1 << 0xe;
    0x00017876 movs r0, r0                                       |     
    0x00017878 strb r4, [r4, r0]                                 |     *((r4 + r0)) = r4;
    0x0001787a movs r4, r0                                       |     r4 = r0;
    0x0001787c bvs 0x177f4                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_20;
    0x0001787e movs r2, r0                                       |     r2 = r0;
    0x00017880 bvs 0x17818                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_21;
    0x00017882 movs r2, r0                                       |     r2 = r0;
    0x00017884 bvs 0x177b8                                       |     __asm ("bvs case.0x3207a.11");
                                                                 |     goto label_22;
    0x00017886 movs r2, r0                                       |     r2 = r0;
    0x00017888 bvs 0x17954                                       |     __asm ("bvs case.0x3207a.11");
    0x0001788a movs r2, r0                                       |     r2 = r0;
    0x0001788c bvs 0x17934                                       |     __asm ("bvs case.0x3207a.11");
    0x0001788e movs r2, r0                                       |     r2 = r0;
    0x00017890 bvs 0x17924                                       |     __asm ("bvs case.0x3207a.11");
    0x00017892 movs r2, r0                                       |     r2 = r0;
    0x00017894 bvs 0x17914                                       |     __asm ("bvs case.0x3207a.11");
    0x00017896 movs r2, r0                                       |     r2 = r0;
                                                                 |     do {
                                                                 | label_23:
    0x000178cc ldr r3, [r6]                                      |         r3 = *(r6);
    0x000178ce adds r4, 0x10                                     |         r4 += 0x10;
    0x000178d0 ldr r5, [r3, r4]                                  |         r5 = *((r3 + r4));
    0x000178d2 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x000178d4 beq 0x17950                                       |             goto label_69;
                                                                 |         }
                                                                 | label_24:
    0x000178d6 mov r1, r7                                        |         r1 = r7;
    0x000178d8 mov r0, r5                                        |         r0 = r5;
    0x000178da blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x000178de cmp r0, 0                                         |         
    0x000178e0 beq 0x178cc                                       |         
                                                                 |     } while (r0 == 0);
    0x000178e2 movs r0, 0                                        |     r0 = 0;
    0x000178e4 add.w fp, sp, 8                                   |     
    0x000178e8 add.w sl, sp, 4                                   |     sl += var_4h;
    0x000178ec mov r8, sp                                        |     r8 = sp;
    0x000178ee mov r3, r5                                        |     r3 = r5;
    0x000178f0 mov r2, fp                                        |     r2 = fp;
    0x000178f2 str r0, [sp, 8]                                   |     var_8h = r0;
    0x000178f4 mov r1, sl                                        |     r1 = sl;
    0x000178f6 mov r0, r8                                        |     r0 = r8;
    0x000178f8 bl 0x39168                                        |     zbx_strcpy_alloc ();
    0x000178fc ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x00017900 add r2, r4                                        |     r2 += r4;
    0x00017902 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x00017904 lsls r3, r3, 0x1d                                 |     r3 <<= 0x1d;
                                                                 |     if (r3 >= r3) {
    0x00017906 bmi 0x17936                                       |         
    0x00017908 ldr r3, [r2, 0xc]                                 |         r3 = *((r2 + 0xc));
                                                                 |         if (r3 == 0) {
    0x0001790a cbz r3, 0x17936                                   |             goto label_70;
                                                                 |         }
    0x0001790c movs r3, 0x5b                                     |         r3 = 0x5b;
    0x0001790e mov r2, fp                                        |         r2 = fp;
    0x00017910 mov r1, sl                                        |         r1 = sl;
    0x00017912 mov r0, r8                                        |         r0 = r8;
    0x00017914 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017918 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0001791c mov r2, fp                                        |         r2 = fp;
    0x0001791e mov r1, sl                                        |         r1 = sl;
    0x00017920 mov r0, r8                                        |         r0 = r8;
    0x00017922 add r3, r4                                        |         r3 += r4;
    0x00017924 ldr r3, [r3, 0xc]                                 |         r3 = *((r3 + 0xc));
    0x00017926 bl 0x39168                                        |         zbx_strcpy_alloc ();
    0x0001792a mov r2, fp                                        |         r2 = fp;
    0x0001792c mov r1, sl                                        |         r1 = sl;
    0x0001792e mov r0, r8                                        |         r0 = r8;
    0x00017930 movs r3, 0x5d                                     |         r3 = 0x5d;
    0x00017932 bl 0x39190                                        |         zbx_chrcpy_alloc ();
    0x00017934 invalid                                           |         
                                                                 |     }
                                                                 | label_70:
    0x00017936 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00017938 bl 0x171c4                                        |     r0 = check_key_access_rules ();
    0x0001793c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001793e bne 0x178cc                                       |         goto label_23;
                                                                 |     }
    0x00017940 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00017942 adds r4, 0x10                                     |     r4 += 0x10;
    0x00017944 bl 0x17754                                        |     test_parameter ();
    0x00017948 ldr r3, [r6]                                      |     r3 = *(r6);
    0x0001794a ldr r5, [r3, r4]                                  |     r5 = *((r3 + r4));
    0x0001794c cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0001794e bne 0x178d6                                       |         goto label_24;
                                                                 |     }
                                                                 | label_69:
    0x00017950 ldr r0, [sp]                                      |     r0 = *(sp);
                                                                 |     if (r0 != 0) {
    0x00017952 cbz r0, 0x1795a                                   |         
    0x00017954 blx 0xbd14                                        |         gai_strerror ();
    0x00017958 str r5, [sp]                                      |         *(sp) = r5;
                                                                 |     }
    0x0001795a bl 0x34294                                        |     test_aliases ();
    0x0001795e ldr r2, [pc, 0x30]                                |     
    0x00017960 ldr r3, [pc, 0x1c]                                |     r3 = *(0x17980);
    0x00017962 add r2, pc                                        |     r2 = 0x2f2f8;
    0x00017964 ldr r3, [r2, r3]                                  |     r3 = *(0x2f2f8);
    0x00017966 ldr r2, [r3]                                      |     r2 = *(0x2f2f8);
    0x00017968 ldr r3, [sp, 0xc]                                 |     r3 = *((sp + 0xc));
    0x0001796a eors r2, r3                                       |     r2 ^= r3;
    0x0001796c mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 == r3) {
    0x00017970 bne 0x17978                                       |         
    0x00017972 add sp, 0x14                                      |         
    0x00017974 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x00017978 blx 0xbe48                                        |     fcn_0000be48 ();
    0x0001797c strh r2, [r1, r5]                                 |     *((r1 + r5)) = r2;
    0x0001797e movs r4, r0                                       |     r4 = r0;
    0x00017980 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00017982 movs r0, r0                                       |     
    0x00017984 str r6, [r2]                                      |     *(r2) = r6;
    0x00017986 movs r4, r0                                       |     r4 = r0;
    0x00017988 bvs 0x179a8                                       |     __asm ("bvs case.0x3207a.11");
    0x0001798a movs r2, r0                                       |     r2 = r0;
    0x0001798c ldrsh r0, [r7, r7]                                |     r0 = *((r7 + r7));
    0x0001798e movs r4, r0                                       |     r4 = r0;
    0x00017990 strh r2, [r1, r2]                                 |     *((r1 + r2)) = r2;
    0x00017992 movs r4, r0                                       |     r4 = r0;
    0x000179a8 mov.w r3, 0                                       |     r3 = 0;
    0x000179ac cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000179ae beq.w 0x17ada                                     |         goto label_71;
                                                                 |     }
    0x000179b2 mov r4, r0                                        |     r4 = r0;
    0x000179b4 cmp r1, 4                                         |     
                                                                 |     if (r1 > 4) {
    0x000179b6 bhi.w 0x17ad0                                     |         goto label_72;
                                                                 |     }
                                                                 |     /* switch table (5 cases) at 0x179be */
    0x000179ba tbb [pc, r1]                                      |     __asm ("tbb case.0x3207a.11");
    0x000179c4 mov r0, r5                                        |     r0 = r5;
    0x000179c6 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x000179ca ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x000179cc mov r3, r5                                        |     r3 = r5;
    0x000179ce movs r2, 0                                        |     r2 = 0;
    0x000179d0 mov.w r1, 0x4d8                                   |     r1 = case.0x3207a.11;
    0x000179d4 orr r0, r0, 8                                     |     r0 |= 8;
    0x000179d8 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x000179da ldr r0, [pc, 0x11c]                               |     
    0x000179dc add r0, pc                                        |     r0 = 0x2f4da;
    0x000179de bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x000179e2 mov r3, r0                                        |     r3 = r0;
    0x000179e4 movs r0, 0                                        |     r0 = 0;
    0x000179e6 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
                                                                 |     do {
                                                                 | label_25:
    0x000179e8 ldr r2, [pc, 0x110]                               |         
    0x000179ea ldr r3, [pc, 0x108]                               |         r3 = *(0x17af6);
    0x000179ec add r2, pc                                        |         r2 = 0x2f4ec;
    0x000179ee ldr r3, [r2, r3]                                  |         r3 = *(0x2f4ec);
    0x000179f0 ldr r2, [r3]                                      |         r2 = *(0x2f4ec);
    0x000179f2 ldr r3, [sp, 0x1c]                                |         r3 = *((sp + 0x1c));
    0x000179f4 eors r2, r3                                       |         r2 ^= r3;
    0x000179f6 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000179fa bne 0x17ad6                                       |             goto label_73;
                                                                 |         }
    0x000179fc add sp, 0x20                                      |         
    0x000179fe pop.w {r4, r5, r6, r7, r8, pc}                    |         
    0x00017a02 mov r0, r5                                        |         r0 = r5;
    0x00017a04 bl 0x3cc9c                                        |         zbx_trim_float ();
    0x00017a08 add r1, sp, 0x10                                  |         r1 += var_10h;
    0x00017a0a mov r0, r5                                        |         r0 = r5;
    0x00017a0c bl 0x365b0                                        |         r0 = is_double ();
    0x00017a10 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00017a12 bne 0x17ad0                                       |             goto label_72;
                                                                 |         }
    0x00017a14 ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00017a16 ldrd r6, r7, [sp, 0x10]                           |         __asm ("ldrd r6, r7, [var_10h]");
    0x00017a1a orr r3, r3, 2                                     |         r3 |= 2;
    0x00017a1e strd r6, r7, [r4, 0x10]                           |         __asm ("strd r6, r7, [r4, 0x10]");
    0x00017a22 str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00017a24 b 0x179e8                                         |         
                                                                 |     } while (1);
    0x00017a26 mov r0, r5                                        |     r0 = r5;
    0x00017a28 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x00017a2c ldr r0, [r4, 0x28]                                |     r0 = *((r4 + 0x28));
    0x00017a2e mov r3, r5                                        |     r3 = r5;
    0x00017a30 movs r2, 0                                        |     r2 = 0;
    0x00017a32 movw r1, 0x4d3                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a36 orr r0, r0, 4                                     |     r0 |= 4;
                                                                 | label_26:
    0x00017a38 movs r4, r0                                       |     r4 = r0;
    0x00017a3a str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00017a3c ldr r0, [pc, 0xc0]                                |     
    0x00017a3e add r0, pc                                        |     r0 = 0x2f542;
    0x00017a40 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00017a44 mov r3, r0                                        |     r3 = r0;
    0x00017a46 movs r0, 0                                        |     r0 = 0;
    0x00017a48 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x00017a4a b 0x179e8                                         |     goto label_25;
    0x00017a4c ldr.w r8, [pc, 0xb4]                              |     r8 = *(0x00017b04);
    0x00017a50 mov r0, r5                                        |     r0 = r5;
    0x00017a52 bl 0x3a9cc                                        |     zbx_replace_invalid_utf8 ();
    0x00017a56 ldr r2, [r4, 0x24]                                |     r2 = *((r4 + 0x24));
    0x00017a58 movs r3, 0x14                                     |     r3 = 0x14;
    0x00017a5a add r8, pc                                        |     r8 += pc;
    0x00017a5c movw r1, 0x4ab                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a60 mov r0, r8                                        |     r0 = r8;
    0x00017a62 movs r7, 0                                        |     r7 = 0;
    0x00017a64 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x00017a68 mov r6, r0                                        |     r6 = r0;
    0x00017a6a str r0, [r4, 0x24]                                |     *((r4 + 0x24)) = r0;
    0x00017a6c mov r3, r5                                        |     r3 = r5;
    0x00017a6e mov r0, r8                                        |     r0 = r8;
    0x00017a70 mov r2, r7                                        |     r2 = r7;
    0x00017a72 movw r1, 0x4af                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017a76 strd r7, r7, [r6]                                 |     __asm ("strd r7, r7, [r6]");
    0x00017a7a strd r7, r7, [r6, 8]                              |     __asm ("strd r7, r7, [r6, 8]");
    0x00017a7e str r7, [r6, 0x10]                                |     *((r6 + 0x10)) = r7;
    0x00017a80 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00017a84 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017a86 str r0, [r6]                                      |     *(r6) = r0;
    0x00017a88 mov r0, r7                                        |     r0 = r7;
    0x00017a8a orr r3, r3, 0x10                                  |     r3 |= 0x10;
    0x00017a8e str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00017a90 b 0x179e8                                         |     goto label_25;
    0x00017a92 mov r0, r5                                        |     r0 = r5;
    0x00017a94 bl 0x3cc94                                        |     zbx_trim_integer ();
    0x00017a98 mov r0, r5                                        |     r0 = r5;
    0x00017a9a bl 0x39304                                        |     del_zeros ();
    0x00017a9e vmov.i8 d17, 0xff                                 |     __asm ("vmov.i8 d17, 0xff");
    0x00017aa2 movs r3, 8                                        |     r3 = 8;
    0x00017aa4 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00017aa8 add r2, sp, 0x10                                  |     r2 += var_10h;
    0x00017aaa mov.w r1, -1                                      |     r1 = -1;
    0x00017aae mov r0, r5                                        |     r0 = r5;
    0x00017ab0 vstr d17, [sp, 8]                                 |     __asm ("vstr d17, [sp, 8]");
    0x00017ab4 vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x00017ab8 bl 0x367c8                                        |     r0 = is_uint_n_range ();
                                                                 |     if (r0 == 0) {
    0x00017abc cbnz r0, 0x17ad0                                  |         
    0x00017abe ldr r3, [r4, 0x28]                                |         r3 = *((r4 + 0x28));
    0x00017ac0 ldrd r6, r7, [sp, 0x10]                           |         __asm ("ldrd r6, r7, [var_10h]");
    0x00017ac4 orr r3, r3, 1                                     |         r3 |= 1;
    0x00017ac8 strd r6, r7, [r4, 8]                              |         __asm ("strd r6, r7, [r4, 8]");
    0x00017acc str r3, [r4, 0x28]                                |         *((r4 + 0x28)) = r3;
    0x00017ace b 0x179e8                                         |         goto label_25;
                                                                 |     }
                                                                 | label_72:
    0x00017ad0 mov.w r0, -1                                      |     r0 = -1;
    0x00017ad4 b 0x179e8                                         |     goto label_25;
                                                                 | label_73:
    0x00017ad6 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_71:
    0x00017ada ldr r3, [pc, 0x2c]                                |     
    0x00017adc mov.w r2, 0x4b8                                   |     r2 = case.0x3207a.11;
    0x00017ae0 ldr r1, [pc, 0x28]                                |     
    0x00017ae2 ldr r0, [pc, 0x2c]                                |     
    0x00017ae4 add r3, pc                                        |     r3 = 0x2f5f2;
    0x00017ae6 add r1, pc                                        |     r1 = 0x2f5f6;
    0x00017ae8 adds r3, 0x28                                     |     r3 += 0x28;
    0x00017aea add r0, pc                                        |     r0 = 0x2f600;
    0x00017aec blx 0xc4a0                                        |     fcn_0000c4a0 ();
    0x00017af0 strh r4, [r1, r1]                                 |     *((r1 + r1)) = r4;
    0x00017af2 movs r4, r0                                       |     r4 = r0;
                                                                 |     do {
                                                                 | label_27:
    0x00017af4 lsls r4, r2, 0xc                                  |         r4 = r2 << 0xc;
    0x00017af6 movs r0, r0                                       |         
    0x00017af8 bne 0x17af4                                       |         
                                                                 |     } while (r0 != r0);
    0x00017afa movs r2, r0                                       |     r2 = r0;
    0x00017afc strh r0, [r0, r0]                                 |     *((r0 + r0)) = r0;
    0x00017afe movs r4, r0                                       |     r4 = r0;
                                                                 |     if (r4 != r0) {
    0x00017b00 bne 0x17a38                                       |         goto label_26;
                                                                 |     }
    0x00017b02 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 != r0) {
    0x00017b04 bne 0x17c04                                       |         goto label_74;
                                                                 |     }
    0x00017b06 movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 >= r0) {
    0x00017b08 bpl 0x17ba4                                       |         goto label_75;
                                                                 |     }
    0x00017b0a movs r2, r0                                       |     r2 = r0;
                                                                 |     if (r2 == r0) {
    0x00017b0c beq 0x17af4                                       |         goto label_27;
                                                                 |     }
    0x00017b0e movs r2, r0                                       |     r2 = r0;
    0x00017b10 blo 0x17b10                                       |     
    0x00017b12 movs r2, r0                                       |     r2 = r0;
                                                                 | label_28:
    0x00017b7e movs r5, 0                                        |     r5 = 0;
                                                                 |     do {
                                                                 | label_29:
    0x00017b80 ldr r2, [pc, 0x2cc]                               |         
    0x00017b82 ldr r3, [pc, 0x2c8]                               |         r3 = *(0x17e4e);
    0x00017b84 add r2, pc                                        |         r2 = 0x2f9d8;
    0x00017b86 ldr r3, [r2, r3]                                  |         r3 = *(0x2f9d8);
    0x00017b88 ldr r2, [r3]                                      |         r2 = *(0x2f9d8);
    0x00017b8a ldr r3, [sp, 0x1c]                                |         r3 = var_8h;
    0x00017b8c eors r2, r3                                       |         r2 ^= r3;
    0x00017b8e mov.w r3, 0                                       |         r3 = 0;
    0x00017b90 lsls r0, r0, 0xc                                  |         r0 <<= 0xc;
                                                                 |         if (r0 != r0) {
    0x00017b92 bne.w 0x17e2c                                     |             goto label_76;
                                                                 |         }
    0x00017b96 mov r0, r5                                        |         r0 = r5;
    0x00017b98 add sp, 0x24                                      |         
    0x00017b9a pop {r4, r5, r6, r7, pc}                          |         
                                                                 | label_75:
    0x00017ba4 ldr r5, [r0, 0x24]                                |         r5 = *((r0 + 0x24));
    0x00017ba6 bne 0x17b80                                       |         
                                                                 |     } while (r0 != r0);
    0x00017ba8 lsls r1, r3, 0x1b                                 |     r1 = r3 << 0x1b;
                                                                 |     if (r1 == r3) {
    0x00017baa beq 0x17b7e                                       |         goto label_28;
                                                                 |     }
    0x00017bac ldr r7, [pc, 0x2a4]                               |     
    0x00017bae movs r3, 0x14                                     |     r3 = 0x14;
    0x00017bb0 ldr r2, [r0, 0x24]                                |     r2 = *((r0 + 0x24));
    0x00017bb2 movw r1, 0x584                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017bb6 add r7, pc                                        |     r7 = 0x2fa0e;
    0x00017bb8 mov r0, r7                                        |     r0 = r7;
    0x00017bba bl 0x35c28                                        |     zbx_malloc2 ();
    0x00017bbe ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017bc0 mov r5, r0                                        |     r5 = r0;
    0x00017bc2 str r0, [r4, 0x24]                                |     *((r4 + 0x24)) = r0;
    0x00017bc4 strd r6, r6, [r0]                                 |     __asm ("strd r6, r6, [r0]");
    0x00017bc8 ands r2, r3, 4                                    |     r2 = r3 & 4;
    0x00017bcc strd r6, r6, [r0, 8]                              |     __asm ("strd r6, r6, [r0, 8]");
    0x00017bd0 str r6, [r0, 0x10]                                |     *((r0 + 0x10)) = r6;
                                                                 |     if (r2 != r3) {
    0x00017bd2 bne.w 0x17d94                                     |         goto label_77;
                                                                 |     }
    0x00017bd6 ands r0, r3, 8                                    |     r0 = r3 & 8;
                                                                 |     if (r0 != r3) {
    0x00017bda bne.w 0x17dee                                     |         goto label_78;
                                                                 |     }
    0x00017bde ands r1, r3, 1                                    |     r1 = r3 & 1;
                                                                 |     if (r1 != r3) {
    0x00017be2 bne.w 0x17e02                                     |         goto label_79;
                                                                 |     }
    0x00017be6 lsls r2, r3, 0x1e                                 |     r2 = r3 << 0x1e;
                                                                 |     if (r2 < r3) {
    0x00017be8 bmi.w 0x17e16                                     |         goto label_80;
                                                                 |     }
                                                                 | label_31:
    0x00017bec orr r3, r3, 0x10                                  |     r3 |= 0x10;
    0x00017bf0 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00017bf2 b 0x17b80                                         |     goto label_29;
                                                                 | label_74:
    0x00017c04 lsls r0, r1, 8                                    |     r0 = r1 << 8;
                                                                 |     if (r0 != r1) {
    0x00017c06 bne 0x17c38                                       |         goto label_81;
                                                                 |     }
    0x00017c08 ands r0, r1, 4                                    |     r0 = r1 & 4;
                                                                 |     if (r0 != r1) {
    0x00017c0c bne.w 0x17d6a                                     |         goto label_82;
                                                                 |     }
    0x00017c10 ands r5, r1, 1                                    |     r5 = r1 & 1;
                                                                 |     if (r5 != r1) {
    0x00017c14 bne.w 0x17d80                                     |         goto label_83;
                                                                 |     }
    0x00017c18 lsls r6, r1, 0x1e                                 |     r6 = r1 << 0x1e;
                                                                 |     if (r6 >= r1) {
    0x00017c1a bpl 0x17b7e                                       |         goto label_28;
                                                                 |     }
    0x00017c1c orr r1, r1, 8                                     |     r1 |= 8;
    0x00017c20 ldrd r2, r3, [r4, 0x10]                           |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00017c24 str r1, [r4, 0x28]                                |     *((r4 + 0x28)) = r1;
    0x00017c26 mov r0, r5                                        |     r0 = r5;
    0x00017c28 ldr r1, [pc, 0x22c]                               |     
    0x00017c2a add r1, pc                                        |     r1 = 0x2fa86;
    0x00017c2c bl 0x396b0                                        |     zbx_dsprintf ()
                                                                 | label_30:
    0x00017c30 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00017c32 str r0, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r0;
    0x00017c34 lsls r0, r3, 0x1c                                 |     r0 = r3 << 0x1c;
                                                                 |     if (r0 >= r3) {
    0x00017c36 bpl 0x17b7e                                       |         goto label_28;
                                                                 |     }
                                                                 | label_81:
    0x00017c38 add.w r5, r4, 0x1c                                |     r5 = r4 + 0x1c;
    0x00017c3c b 0x17b80                                         |     goto label_29;
                                                                 | label_82:
    0x00017d6a orr r0, r1, 8                                     |     r0 = r1 | 8;
    0x00017d6e ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x00017d70 str r0, [r4, 0x28]                                |     *((r4 + 0x28)) = r0;
    0x00017d72 movw r1, 0x56b                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
                                                                 |     do {
    0x00017d74 str r3, [r5, r5]                                  |         *((r5 + r5)) = r3;
    0x00017d76 ldr r0, [pc, 0xec]                                |         
    0x00017d78 add r0, pc                                        |         r0 = 0x2fbe2;
    0x00017d7a bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017d7e b 0x17c30                                         |         goto label_30;
                                                                 | label_83:
    0x00017d80 orr r1, r1, 8                                     |         r1 |= 8;
    0x00017d84 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x00017d88 str r1, [r4, 0x28]                                |         *((r4 + 0x28)) = r1;
    0x00017d8a ldr r1, [pc, 0xdc]                                |         
    0x00017d8c add r1, pc                                        |         r1 = 0x2fbfa;
    0x00017d8e bl 0x396b0                                        |         zbx_dsprintf ()
    0x00017d92 b 0x17c30                                         |         goto label_30;
                                                                 | label_77:
    0x00017d94 ldr r3, [r4, 0x18]                                |         r3 = *((r4 + 0x18));
    0x00017d96 mov r2, r6                                        |         r2 = r6;
    0x00017d98 mov r0, r7                                        |         r0 = r7;
    0x00017d9a movw r1, 0x589                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017d9e bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017da2 str r0, [r5]                                      |         *(r5) = r0;
    0x00017da4 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017da8 b 0x17bec                                         |         goto label_31;
                                                                 | label_78:
    0x00017dee ldr r3, [r4, 0x1c]                                |         r3 = *((r4 + 0x1c));
    0x00017df0 mov r0, r7                                        |         r0 = r7;
    0x00017df2 movw r1, 0x58b                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017df6 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00017dfa str r0, [r5]                                      |         *(r5) = r0;
    0x00017dfc ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e00 b 0x17bec                                         |         goto label_31;
                                                                 | label_79:
    0x00017e02 ldr r1, [pc, 0x6c]                                |         
    0x00017e04 ldrd r2, r3, [r4, 8]                              |         __asm ("ldrd r2, r3, [r4, 8]");
    0x00017e08 add r1, pc                                        |         r1 = 0x2fc7e;
    0x00017e0a bl 0x396b0                                        |         zbx_dsprintf ()
    0x00017e0e str r0, [r5]                                      |         *(r5) = r0;
    0x00017e10 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e14 b 0x17bec                                         |         goto label_31;
                                                                 | label_80:
    0x00017e16 mov r0, r1                                        |         r0 = r1;
    0x00017e18 ldr r1, [pc, 0x58]                                |         
    0x00017e1a ldrd r2, r3, [r4, 0x10]                           |         __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00017e1e add r1, pc                                        |         r1 = 0x2fc96;
    0x00017e20 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00017e24 str r0, [r5]                                      |         *(r5) = r0;
    0x00017e26 ldrd r5, r3, [r4, 0x24]                           |         __asm ("ldrd r5, r3, [r4, 0x24]");
    0x00017e2a b 0x17bec                                         |         goto label_31;
                                                                 | label_76:
    0x00017e2c blx 0xbe48                                        |         fcn_0000be48 ();
    0x00017e30 ldr r3, [pc, 0x44]                                |         
    0x00017e32 movw r2, 0x5b2                                    |         r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017e36 ldr r1, [pc, 0x44]                                |         
    0x00017e38 ldr r0, [pc, 0x44]                                |         
    0x00017e3a add r3, pc                                        |         r3 = 0x2fcb6;
    0x00017e3c add r1, pc                                        |         r1 = 0x2fcbe;
    0x00017e3e adds r3, 0x38                                     |         r3 += 0x38;
    0x00017e40 add r0, pc                                        |         r0 = 0x2fcc4;
    0x00017e42 blx 0xc4a0                                        |         fcn_0000c4a0 ();
    0x00017e46 nop                                               |         
    0x00017e48 str r0, [r7, r2]                                  |         *((r7 + r2)) = r0;
    0x00017e4a movs r4, r0                                       |         r4 = r0;
    0x00017e4c lsls r4, r2, 0xc                                  |         r4 = r2 << 0xc;
    0x00017e4e movs r0, r0                                       |         
    0x00017e50 str r0, [r5, r1]                                  |         *((r5 + r1)) = r0;
    0x00017e52 movs r4, r0                                       |         r4 = r0;
                                                                 |         if (r4 == r0) {
    0x00017e54 beq 0x17e9c                                       |             goto label_33;
                                                                 |         }
    0x00017e56 movs r2, r0                                       |         r2 = r0;
    0x00017e58 lsls r2, r4, 0xa                                  |         r2 = r4 << 0xa;
    0x00017e5a movs r3, r0                                       |         r3 = r0;
    0x00017e5c lsls r4, r3, 9                                    |         r4 = r3 << 9;
    0x00017e5e movs r3, r0                                       |         r3 = r0;
    0x00017e60 ldm r6!, {r1, r7}                                 |         r1 = *(r6!);
                                                                 |         r7 = *((r6! + 4));
    0x00017e62 movs r2, r0                                       |         r2 = r0;
    0x00017e64 ldm r6, {r5, r6}                                  |         r5 = *(r6);
                                                                 |         r6 = *((r6 + 4));
    0x00017e66 movs r2, r0                                       |         r2 = r0;
    0x00017e68 b 0x17d74                                         |         
                                                                 |     } while (1);
                                                                 |     do {
    0x00017e94 movs r3, 0                                        |         r3 = 0;
    0x00017e96 strb r3, [ip, -0x1]                               |         *((ip - 0x1)) = r3;
    0x00017e9a bx lr                                             |         return;
                                                                 | label_33:
    0x00017e9c ldrb.w ip, [r1, 1]                                |         ip = *((r1 + 1));
    0x00017ea0 cmp.w ip, 0x22                                    |         
                                                                 |         if (ip == 0x22) {
    0x00017ea4 beq 0x17ebe                                       |             goto label_84;
                                                                 |         }
                                                                 | label_32:
    0x00017ea6 strb r3, [r0]                                     |         *(r0) = r3;
    0x00017ea8 mov ip, r2                                        |         
    0x00017eaa ldrb r3, [r1, 1]!                                 |         r3 = *((r1 += 1));
    0x00017eae mov r0, r2                                        |         r0 = r2;
    0x00017eb0 adds r2, 1                                        |         r2++;
    0x00017eb2 cmp r3, 0                                         |         
    0x00017eb4 beq 0x17e94                                       |         
                                                                 |     } while (r3 == 0);
    0x00017eb6 cmp r3, 0x5c                                      |     
                                                                 |     if (r3 != 0x5c) {
    0x00017eb8 bne 0x17ea6                                       |         goto label_32;
                                                                 |     }
    0x00017eba b 0x17e9c                                         |     goto label_33;
                                                                 | label_84:
    0x00017ebe adds r1, 1                                        |     r1++;
    0x00017ec0 mov r3, ip                                        |     r3 = ip;
    0x00017ec2 b 0x17ea6                                         |     goto label_32;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x207d0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.get_fs_inode_stat ()                             | void get_fs_inode_stat (int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_30h_2;
                                                                 |     int16_t var_38h_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_44h;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000207d0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000207d4 mov sl, r1                                        |     sl = r1;
    0x000207d6 vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x000207da sub sp, 0x7c                                      |     
    0x000207dc mov r8, r3                                        |     r8 = r3;
    0x000207de mov sb, r2                                        |     sb = r2;
    0x000207e0 ldr r4, [sp, 0xb0]                                |     r4 = var_b0h;
    0x000207e2 ldr r1, [pc, 0x194]                               |     r1 = *(0x2097a);
    0x000207e4 ldr r3, [sp, 0xb4]                                |     r3 = var_b4h;
    0x000207e6 str r4, [sp, 4]                                   |     var_4h = r4;
    0x000207e8 ldr r4, [pc, 0x190]                               |     
    0x000207ea ldrd r6, r7, [sp, 0xb8]                           |     __asm ("ldrd r6, r7, [var_b8h]");
    0x000207ee add r4, pc                                        |     r4 = 0x4116e;
    0x000207f0 ldr r1, [r4, r1]                                  |     
    0x000207f2 ldr r1, [r1]                                      |     r1 = *(0x4116e);
    0x000207f4 str r1, [sp, 0x74]                                |     var_74h = r1;
    0x000207f6 mov.w r1, 0                                       |     r1 = 0;
    0x000207fa add r1, sp, 0x10                                  |     r1 += var_10h;
    0x000207fc str r3, [sp, 8]                                   |     var_8h = r3;
    0x000207fe blx 0xc1dc                                        |     r0 = fprintf_chk ();
    0x00020802 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00020804 bne.w 0x2090a                                     |         goto label_2;
                                                                 |     }
    0x00020808 mov r5, r0                                        |     r5 = r0;
    0x0002080a ldrd r4, r0, [sp, 0x30]                           |     __asm ("ldrd r4, r0, [var_30h_2]");
    0x0002080e cmp.w r0, -1                                      |     
    0x00020812 it eq                                             |     
                                                                 |     if (r0 == -1) {
    0x00020814 cmpeq r4, -1                                      |         __asm ("cmpeq r4, -1");
                                                                 |     }
                                                                 |     if (r0 == -1) {
    0x00020818 beq.w 0x20926                                     |         goto label_3;
                                                                 |     }
    0x0002081c strd r4, r0, [sl]                                 |     __asm ("strd r4, r0, [sl]");
    0x00020820 ldrd sl, fp, [sp, 0x40]                           |     __asm ("ldrd sl, fp, [var_40h]");
    0x00020824 cmp.w fp, -1                                      |     
    0x00020828 it eq                                             |     
                                                                 |     if (fp == -1) {
    0x0002082a cmpeq sl, -1                                      |         __asm ("cmpeq sl, -1");
                                                                 |     }
                                                                 |     if (fp == -1) {
    0x0002082e beq.w 0x2093c                                     |         goto label_4;
                                                                 |     }
    0x00020832 ldrd r1, r2, [sp, 0x38]                           |     __asm ("ldrd r1, r2, [var_38h_2]");
    0x00020836 strd sl, fp, [sb]                                 |     __asm ("strd sl, fp, [sb]");
    0x0002083a cmp.w r2, -1                                      |     
    0x0002083e it eq                                             |     
                                                                 |     if (r2 == -1) {
    0x00020840 cmpeq r1, -1                                      |         __asm ("cmpeq r1, -1");
                                                                 |     }
                                                                 |     if (r2 == -1) {
    0x00020844 beq.w 0x20952                                     |         goto label_5;
                                                                 |     }
    0x00020848 subs r3, r4, r1                                   |     r3 = r4 - r1;
    0x0002084a str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x0002084e sbc.w r3, r0, r2                                  |     __asm ("sbc.w r3, r0, r2");
    0x00020852 adds.w r4, r4, sl                                 |     r4 += sl;
    0x00020856 str.w r3, [r8, 4]                                 |     __asm ("str.w r3, [r8, 4]");
    0x0002085a adc.w r0, r0, fp                                  |     __asm ("adc.w r0, r0, fp");
    0x0002085e subs r4, r4, r1                                   |     r4 -= r1;
    0x00020860 sbc.w r3, r0, r2                                  |     __asm ("sbc.w r3, r0, r2");
    0x00020864 orrs.w r2, r4, r3                                 |     r2 = r4 | r3;
                                                                 |     if (r2 == r4) {
    0x00020868 beq 0x208d6                                       |         goto label_6;
                                                                 |     }
    0x0002086a mov r1, r3                                        |     r1 = r3;
    0x0002086c vldr d9, [pc, 0x100]                              |     __asm ("vldr d9, case.0x3207a.11");
    0x00020870 mov r0, r4                                        |     r0 = r4;
    0x00020872 str r3, [sp, 0xc]                                 |     var_ch_2 = r3;
    0x00020874 bl 0x4152c                                        |     r0 = fcn_0004152c (r0, r1, r2);
    0x00020878 vmov d8, r0, r1                                   |     __asm ("vmov d8, r0, r1");
    0x0002087c mov r0, sl                                        |     r0 = sl;
    0x0002087e mov r1, fp                                        |     r1 = fp;
    0x00020880 bl 0x4152c                                        |     r0 = fcn_0004152c (r0, r1, r2);
    0x00020884 vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x00020888 subs.w r0, r4, sl                                 |     r0 = r4 - sl;
    0x0002088c ldr r3, [sp, 0xc]                                 |     r3 = var_ch_2;
    0x0002088e vmul.f64 d16, d16, d9                             |     __asm ("vmul.f64 d16, d16, d9");
    0x00020892 sbc.w r1, r3, fp                                  |     __asm ("sbc.w r1, r3, fp");
    0x00020896 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00020898 vdiv.f64 d17, d16, d8                             |     __asm ("vdiv.f64 d17, d16, d8");
    0x0002089c vstr d17, [r3]                                    |     __asm ("vstr d17, [r3]");
    0x000208a0 bl 0x4152c                                        |     r0 = fcn_0004152c (r0, r1, r2);
    0x000208a4 vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x000208a8 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000208aa vmul.f64 d9, d16, d9                              |     __asm ("vmul.f64 d9, d16, d9");
    0x000208ae vdiv.f64 d17, d9, d8                              |     __asm ("vdiv.f64 d17, d9, d8");
    0x000208b2 vstr d17, [r3]                                    |     __asm ("vstr d17, [r3]");
                                                                 |     do {
                                                                 | label_0:
    0x000208b6 ldr r2, [pc, 0xc8]                                |         
    0x000208b8 ldr r3, [pc, 0xbc]                                |         r3 = *(0x20978);
    0x000208ba add r2, pc                                        |         r2 = 0x41240;
    0x000208bc ldr r3, [r2, r3]                                  |         r3 = *(0x41240);
    0x000208be ldr r2, [r3]                                      |         r2 = *(0x41240);
    0x000208c0 ldr r3, [sp, 0x74]                                |         r3 = var_74h;
    0x000208c2 eors r2, r3                                       |         r2 ^= r3;
    0x000208c4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000208c8 bne 0x20968                                       |             goto label_7;
                                                                 |         }
    0x000208ca mov r0, r5                                        |         r0 = r5;
    0x000208cc add sp, 0x7c                                      |         
    0x000208ce vpop {d8, d9}                                     |         __asm ("vpop {d8, d9}");
    0x000208d2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_6:
    0x000208d6 cmp r6, 0                                         |         
    0x000208d8 beq 0x208b6                                       |         
                                                                 |     } while (r6 == 0);
    0x000208da ldr r1, [pc, 0xa8]                                |     
    0x000208dc mov r0, r6                                        |     r0 = r6;
    0x000208de add r1, pc                                        |     r1 = 0x41268;
    0x000208e0 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
                                                                 |     if (r0 == 0) {
    0x000208e4 cbz r0, 0x208f4                                   |         goto label_8;
                                                                 |     }
    0x000208e6 ldr r1, [pc, 0xa0]                                |     
    0x000208e8 mov r0, r6                                        |     r0 = r6;
    0x000208ea add r1, pc                                        |     r1 = 0x41278;
    0x000208ec blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x000208f0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000208f2 bne 0x208b6                                       |         goto label_0;
                                                                 |     }
                                                                 | label_8:
    0x000208f4 ldr r3, [pc, 0x94]                                |     
    0x000208f6 movs r2, 0                                        |     r2 = 0;
    0x000208f8 ldr r0, [pc, 0x94]                                |     
    0x000208fa movs r1, 0x50                                     |     r1 = 0x50;
    0x000208fc movs r5, 1                                        |     r5 = 1;
    0x000208fe add r3, pc                                        |     r3 = 0x4128e;
    0x00020900 add r0, pc                                        |     r0 = 0x41294;
    0x00020902 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020906 str r0, [r7]                                      |     *(r7) = r0;
    0x00020908 b 0x208b6                                         |     goto label_0;
                                                                 | label_2:
    0x0002090a blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002090e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00020910 movs r5, 1                                        |     r5 = 1;
    0x00020912 bl 0x26fdc                                        |     zbx_strerror ();
    0x00020916 ldr r1, [pc, 0x7c]                                |     
    0x00020918 mov r2, r0                                        |     r2 = r0;
    0x0002091a movs r0, 0                                        |     r0 = 0;
    0x0002091c add r1, pc                                        |     r1 = 0x412b6;
    0x0002091e bl 0x396b0                                        |     zbx_dsprintf ()
    0x00020922 str r0, [r7]                                      |     *(r7) = r0;
    0x00020924 b 0x208b6                                         |     goto label_0;
                                                                 | label_3:
    0x00020926 ldr r3, [pc, 0x70]                                |     
    0x00020928 mov r2, r5                                        |     r2 = r5;
    0x0002092a ldr r0, [pc, 0x70]                                |     
    0x0002092c movs r1, 0x3b                                     |     r1 = 0x3b;
    0x0002092e movs r5, 1                                        |     r5 = 1;
    0x00020930 add r3, pc                                        |     r3 = 0x412ce;
    0x00020932 add r0, pc                                        |     r0 = 0x412d4;
    0x00020934 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020938 str r0, [r7]                                      |     *(r7) = r0;
    0x0002093a b 0x208b6                                         |     goto label_0;
                                                                 | label_4:
    0x0002093c ldr r3, [pc, 0x60]                                |     
    0x0002093e mov r2, r5                                        |     r2 = r5;
    0x00020940 ldr r0, [pc, 0x60]                                |     
    0x00020942 movs r1, 0x3e                                     |     r1 = 0x3e;
    0x00020944 movs r5, 1                                        |     r5 = 1;
    0x00020946 add r3, pc                                        |     r3 = 0x412ea;
    0x00020948 add r0, pc                                        |     r0 = 0x412f0;
    0x0002094a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002094e str r0, [r7]                                      |     *(r7) = r0;
    0x00020950 b 0x208b6                                         |     goto label_0;
                                                                 | label_5:
    0x00020952 ldr r3, [pc, 0x54]                                |     
    0x00020954 mov r2, r5                                        |     r2 = r5;
    0x00020956 ldr r0, [pc, 0x54]                                |     
    0x00020958 movs r1, 0x41                                     |     r1 = 0x41;
    0x0002095a movs r5, 1                                        |     r5 = 1;
    0x0002095c add r3, pc                                        |     r3 = 0x4130a;
    0x0002095e add r0, pc                                        |     r0 = 0x41310;
    0x00020960 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020964 str r0, [r7]                                      |     *(r7) = r0;
    0x00020966 b 0x208b6                                         |     goto label_0;
                                                                 | label_7:
    0x00020968 blx 0xbe48                                        |     fcn_0000be48 ();
    0x0002096c nop.w                                             |     
    0x00020970 movs r0, r0                                       |     
    0x00020972 movs r0, r0                                       |     
    0x00020974 movs r0, r0                                       |     
    0x00020976 eors r1, r3                                       |     r1 ^= r3;
    0x00020978 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x0002097a movs r0, r0                                       |     
    0x0002097c stm r3!, {r1, r2, r3, r4, r5, r6, r7}             |     *(r3!) = r1;
                                                                 |     *((r3! + 4)) = r2;
                                                                 |     *((r3! + 8)) = r3;
                                                                 |     *((r3! + 12)) = r4;
                                                                 |     *((r3! + 16)) = r5;
                                                                 |     *((r3! + 20)) = r6;
                                                                 |     *((r3! + 24)) = r7;
    0x0002097e movs r3, r0                                       |     r3 = r0;
    0x00020980 stm r3!, {r1, r4, r5}                             |     *(r3!) = r1;
                                                                 |     *((r3! + 4)) = r4;
                                                                 |     *((r3! + 8)) = r5;
    0x00020982 movs r3, r0                                       |     r3 = r0;
    0x00020984 ldrh r2, [r7, r3]                                 |     r2 = *((r7 + r3));
    0x00020986 movs r2, r0                                       |     r2 = r0;
    0x00020988 ldr r6, [pc, 0xa8]                                |     r6 = *(0x20a34);
    0x0002098a movs r2, r0                                       |     r2 = r0;
    0x0002098c ldr r6, [pc, 0x78]                                |     r6 = *(0x20a08);
    0x0002098e movs r2, r0                                       |     r2 = r0;
    0x00020990 str r4, [r3, 0x10]                                |     *((r3 + 0x10)) = r4;
    0x00020992 movs r2, r0                                       |     r2 = r0;
    0x00020994 ldrb r0, [r6, r2]                                 |     r0 = *((r6 + r2));
    0x00020996 movs r2, r0                                       |     r2 = r0;
    0x00020998 str r0, [r5, 8]                                   |     *((r5 + 8)) = r0;
    0x0002099a movs r2, r0                                       |     r2 = r0;
    0x0002099c str r2, [r5, 0xc]                                 |     *((r5 + 0xc)) = r2;
    0x0002099e movs r2, r0                                       |     r2 = r0;
    0x000209a0 str r2, [r4, 0xc]                                 |     *((r4 + 0xc)) = r2;
    0x000209a2 movs r2, r0                                       |     r2 = r0;
    0x000209a4 str r4, [r2, 0xc]                                 |     *((r2 + 0xc)) = r4;
    0x000209a6 movs r2, r0                                       |     r2 = r0;
    0x000209a8 str r0, [r2, 0x10]                                |     *((r2 + 0x10)) = r0;
    0x000209aa movs r2, r0                                       |     r2 = r0;
    0x000209ac str r6, [r7, 8]                                   |     *((r7 + 8)) = r6;
    0x000209ae movs r2, r0                                       |     r2 = r0;
    0x000209b0 ldr r2, [pc, 0x17c]                               |     
    0x000209b2 ldr r3, [pc, 0x180]                               |     r3 = *(0x20b36);
    0x000209b4 push {r4, r5, r6, r7, lr}                         |     
    0x000209b6 sub sp, 0x4c                                      |     
    0x000209b8 add r2, pc                                        |     r2 = 0x414ec;
    0x000209ba mov r4, r1                                        |     r4 = r1;
    0x000209bc ldr r3, [r2, r3]                                  |     
    0x000209be ldr r3, [r3]                                      |     r3 = *(0x414ec);
    0x000209c0 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x000209c2 mov.w r3, 0                                       |     r3 = 0;
    0x000209c6 ldr r3, [r0, 4]                                   |     r3 = *((r0 + 4));
    0x000209c8 cmp r3, 2                                         |     
                                                                 |     if (r3 > 2) {
    0x000209ca bgt 0x20a76                                       |         goto label_9;
                                                                 |     }
    0x000209cc cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x000209ce ble 0x20a40                                       |         
    0x000209d0 ldr r2, [r0, 8]                                   |         r2 = *((r0 + 8));
    0x000209d2 cmp r3, 2                                         |         
    0x000209d4 it ne                                             |         
                                                                 |         if (r3 == 2) {
    0x000209d6 movne r6, 0                                       |             r6 = 0;
                                                                 |         }
    0x000209d8 ldr r0, [r2]                                      |         r0 = *(r2);
    0x000209da it eq                                             |         
                                                                 |         if (r3 != 2) {
    0x000209dc ldreq r6, [r2, 4]                                 |             r6 = *((r2 + 4));
                                                                 |         }
    0x000209de cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000209e0 beq 0x20a40                                       |             
    0x000209e2 ldrb r3, [r0]                                     |             r3 = *(r0);
    0x000209e4 cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x000209e6 beq 0x20a40                                       |                 goto label_10;
                                                                 |             }
    0x000209e8 add r3, sp, 0x14                                  |             r3 += var_14h_2;
    0x000209ea add r2, sp, 0x30                                  |             r2 += var_30h;
    0x000209ec strd r6, r3, [sp, 8]                              |             __asm ("strd r6, r3, [sp, 8]");
    0x000209f0 add r3, sp, 0x38                                  |             r3 += var_38h;
    0x000209f2 str r3, [sp, 4]                                   |             var_4h_2 = r3;
    0x000209f4 add r1, sp, 0x18                                  |             r1 += var_18h;
    0x000209f6 str r2, [sp]                                      |             *(sp) = r2;
    0x000209f8 add r3, sp, 0x28                                  |             r3 += var_28h;
    0x000209fa add r2, sp, 0x20                                  |             r2 += var_20h;
    0x000209fc bl 0x207d0                                        |             r0 = get_fs_inode_stat ();
    0x00020a00 mov r5, r0                                        |             r5 = r0;
    0x00020a02 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x00020a04 bne 0x20aa4                                       |                 goto label_11;
                                                                 |             }
    0x00020a06 ldr r7, [r4, 0x28]                                |             r7 = *((r4 + 0x28));
    0x00020a08 cmp r6, 0                                         |             
                                                                 |             if (r6 == 0) {
    0x00020a0a beq 0x20a94                                       |                 goto label_12;
                                                                 |             }
    0x00020a0c ldrb r3, [r6]                                     |             r3 = *(r6);
    0x00020a0e cmp r3, 0                                         |             
                                                                 |             if (r3 == 0) {
    0x00020a10 beq 0x20a94                                       |                 goto label_12;
                                                                 |             }
    0x00020a12 ldr r1, [pc, 0x124]                               |             
    0x00020a14 mov r0, r6                                        |             r0 = r6;
    0x00020a16 add r1, pc                                        |             r1 = 0x41554;
    0x00020a18 blx 0xbc58                                        |             r0 = fcn_0000bc58 ();
    0x00020a1c cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00020a1e beq 0x20a94                                       |                 goto label_12;
                                                                 |             }
    0x00020a20 ldr r1, [pc, 0x118]                               |             
    0x00020a22 mov r0, r6                                        |             r0 = r6;
    0x00020a24 add r1, pc                                        |             r1 = 0x41564;
    0x00020a26 blx 0xbc58                                        |             r0 = fcn_0000bc58 ();
    0x00020a2a mov r5, r0                                        |             r5 = r0;
    0x00020a2c cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x00020a2e bne 0x20ab4                                       |                 goto label_13;
                                                                 |             }
    0x00020a30 ldrd r2, r3, [sp, 0x20]                           |             __asm ("ldrd r2, r3, [var_20h]");
    0x00020a34 orr r7, r7, 1                                     |             r7 |= 1;
    0x00020a38 str r7, [r4, 0x28]                                |             *((r4 + 0x28)) = r7;
    0x00020a3a strd r2, r3, [r4, 8]                              |             __asm ("strd r2, r3, [r4, 8]");
    0x00020a3e b 0x20a5c                                         |             
                                                                 |         }
                                                                 |     } else {
                                                                 | label_10:
    0x00020a40 ldr r0, [r4, 0x28]                                |         r0 = *((r4 + 0x28));
    0x00020a42 movs r5, 1                                        |         r5 = 1;
    0x00020a44 ldr r3, [pc, 0xf8]                                |         
    0x00020a46 movs r2, 0                                        |         r2 = 0;
    0x00020a48 movs r1, 0x67                                     |         r1 = 0x67;
    0x00020a4a orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00020a4e str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00020a50 add r3, pc                                        |         r3 = 0x41594;
    0x00020a52 ldr r0, [pc, 0xf0]                                |         
    0x00020a54 add r0, pc                                        |         r0 = 0x4159e;
    0x00020a56 bl 0x35d28                                        |         zbx_strdup2 ();
    0x00020a5a str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
                                                                 |     }
                                                                 |     do {
                                                                 | label_1:
    0x00020a5c ldr r2, [pc, 0xe8]                                |         
    0x00020a5e ldr r3, [pc, 0xd4]                                |         r3 = *(0x20b36);
    0x00020a60 add r2, pc                                        |         r2 = 0x415ac;
    0x00020a62 ldr r3, [r2, r3]                                  |         r3 = *(0x415ac);
    0x00020a64 ldr r2, [r3]                                      |         r2 = *(0x415ac);
    0x00020a66 ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x00020a68 eors r2, r3                                       |         r2 ^= r3;
    0x00020a6a mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00020a6e bne 0x20b2a                                       |             goto label_14;
                                                                 |         }
    0x00020a70 mov r0, r5                                        |         r0 = r5;
    0x00020a72 add sp, 0x4c                                      |         
    0x00020a74 pop {r4, r5, r6, r7, pc}                          |         
                                                                 | label_9:
    0x00020a76 ldr r0, [r1, 0x28]                                |         r0 = *((r1 + 0x28));
    0x00020a78 movs r2, 0                                        |         r2 = 0;
    0x00020a7a ldr r3, [pc, 0xd0]                                |         
    0x00020a7c movs r1, 0x5e                                     |         r1 = 0x5e;
    0x00020a7e movs r5, 1                                        |         r5 = 1;
    0x00020a80 orr r0, r0, 0x20                                  |         r0 |= 0x20;
    0x00020a84 str r0, [r4, 0x28]                                |         *((r4 + 0x28)) = r0;
    0x00020a86 add r3, pc                                        |         r3 = 0x415d8;
    0x00020a88 ldr r0, [pc, 0xc4]                                |         
    0x00020a8a add r0, pc                                        |         r0 = 0x415de;
    0x00020a8c bl 0x35d28                                        |         zbx_strdup2 ();
    0x00020a90 str r0, [r4, 0x20]                                |         *((r4 + 0x20)) = r0;
    0x00020a92 b 0x20a5c                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00020a94 ldrd r2, r3, [sp, 0x18]                           |     __asm ("ldrd r2, r3, [var_18h]");
    0x00020a98 orr r7, r7, 1                                     |     r7 |= 1;
    0x00020a9c str r7, [r4, 0x28]                                |     *((r4 + 0x28)) = r7;
    0x00020a9e strd r2, r3, [r4, 8]                              |     __asm ("strd r2, r3, [r4, 8]");
    0x00020aa2 b 0x20a5c                                         |     goto label_1;
                                                                 | label_11:
    0x00020aa4 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x00020aa6 movs r5, 1                                        |     r5 = 1;
    0x00020aa8 ldr r2, [sp, 0x14]                                |     r2 = var_14h_2;
    0x00020aaa orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00020aac lsls r0, r4, 0xc                                  |     r0 = r4 << 0xc;
    0x00020aae str r2, [r4, 0x20]                                |     *((r4 + 0x20)) = r2;
    0x00020ab0 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00020ab2 b 0x20a5c                                         |     goto label_1;
                                                                 | label_13:
    0x00020ab4 ldr r1, [pc, 0x9c]                                |     
    0x00020ab6 mov r0, r6                                        |     r0 = r6;
    0x00020ab8 add r1, pc                                        |     r1 = 0x41610;
    0x00020aba blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020abe mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x00020ac0 cbnz r0, 0x20ad2                                  |         
    0x00020ac2 ldrd r2, r3, [sp, 0x28]                           |         __asm ("ldrd r2, r3, [var_28h]");
    0x00020ac6 orr r7, r7, 1                                     |         r7 |= 1;
    0x00020aca str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00020acc strd r2, r3, [r4, 8]                              |         __asm ("strd r2, r3, [r4, 8]");
    0x00020ad0 b 0x20a5c                                         |         goto label_1;
                                                                 |     }
    0x00020ad2 ldr r1, [pc, 0x84]                                |     
    0x00020ad4 mov r0, r6                                        |     r0 = r6;
    0x00020ad6 add r1, pc                                        |     r1 = 0x41634;
    0x00020ad8 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020adc mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x00020ade cbnz r0, 0x20af0                                  |         
    0x00020ae0 ldrd r2, r3, [sp, 0x30]                           |         __asm ("ldrd r2, r3, [var_30h]");
    0x00020ae4 orr r7, r7, 2                                     |         r7 |= 2;
    0x00020ae8 str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00020aea strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00020aee b 0x20a5c                                         |         goto label_1;
                                                                 |     }
    0x00020af0 ldr r1, [pc, 0x68]                                |     
    0x00020af2 mov r0, r6                                        |     r0 = r6;
    0x00020af4 add r1, pc                                        |     r1 = 0x41654;
    0x00020af6 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00020afa mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r0 == 0) {
    0x00020afc cbnz r0, 0x20b0e                                  |         
    0x00020afe ldrd r2, r3, [sp, 0x38]                           |         __asm ("ldrd r2, r3, [var_38h]");
    0x00020b02 orr r7, r7, 2                                     |         r7 |= 2;
    0x00020b06 str r7, [r4, 0x28]                                |         *((r4 + 0x28)) = r7;
    0x00020b08 strd r2, r3, [r4, 0x10]                           |         __asm ("strd r2, r3, [r4, 0x10]");
    0x00020b0c b 0x20a5c                                         |         goto label_1;
                                                                 |     }
    0x00020b0e ldr r3, [pc, 0x50]                                |     
    0x00020b10 orr r7, r7, 0x20                                  |     r7 |= 0x20;
    0x00020b14 ldr r0, [pc, 0x4c]                                |     
    0x00020b16 movs r2, 0                                        |     r2 = 0;
    0x00020b18 movs r1, 0x87                                     |     r1 = 0x87;
    0x00020b1a str r7, [r4, 0x28]                                |     *((r4 + 0x28)) = r7;
    0x00020b1c add r3, pc                                        |     r3 = 0x41682;
    0x00020b1e movs r5, 1                                        |     r5 = 1;
    0x00020b20 add r0, pc                                        |     r0 = 0x41688;
    0x00020b22 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00020b26 str r0, [r4, 0x20]                                |     *((r4 + 0x20)) = r0;
    0x00020b28 b 0x20a5c                                         |     goto label_1;
                                                                 | label_14:
    0x00020b2a blx 0xbe48                                        |     fcn_0000be48 ();
    0x00020b2e nop                                               |     
    0x00020b30 stm r2!, {r2, r4, r5}                             |     *(r2!) = r2;
                                                                 |     *((r2! + 4)) = r4;
                                                                 |     *((r2! + 8)) = r5;
    0x00020b32 movs r3, r0                                       |     r3 = r0;
    0x00020b34 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00020b36 movs r0, r0                                       |     
    0x00020b38 ldr r2, [pc, 0x18]                                |     r2 = *(0x20b54);
    0x00020b3a movs r2, r0                                       |     r2 = r0;
    0x00020b3c ldr r3, [pc, 0x1a0]                               |     r3 = *(0x20ce0);
    0x00020b3e movs r2, r0                                       |     r2 = r0;
    0x00020b40 subs r7, 0x94                                     |     r7 -= 0x94;
    0x00020b42 movs r2, r0                                       |     r2 = r0;
    0x00020b44 ldrsh r0, [r1, r7]                                |     r0 = *((r1 + r7));
    0x00020b46 movs r2, r0                                       |     r2 = r0;
    0x00020b48 stm r1!, {r2, r3, r7}                             |     *(r1!) = r2;
                                                                 |     *((r1! + 4)) = r3;
                                                                 |     *((r1! + 8)) = r7;
    0x00020b4a movs r3, r0                                       |     r3 = r0;
    0x00020b4c subs r7, 0x46                                     |     r7 -= 0x46;
    0x00020b4e movs r2, r0                                       |     r2 = r0;
    0x00020b50 ldrsh r2, [r2, r6]                                |     r2 = *((r2 + r6));
    0x00020b52 movs r2, r0                                       |     r2 = r0;
    0x00020b54 lsrs r4, r0, 0x17                                 |     r4 = r0 >> 0x17;
    0x00020b56 movs r2, r0                                       |     r2 = r0;
    0x00020b58 ldr r2, [r0, r4]                                  |     r2 = *((r0 + r4));
    0x00020b5a movs r2, r0                                       |     r2 = r0;
    0x00020b5c ldr r4, [pc, 0x80]                                |     r4 = *(0x20be0);
    0x00020b5e movs r2, r0                                       |     r2 = r0;
    0x00020b60 mov r4, r2                                        |     r4 = r2;
    0x00020b62 movs r2, r0                                       |     r2 = r0;
    0x00020b64 ldrsh r4, [r7, r3]                                |     r4 = *((r7 + r3));
    0x00020b66 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x17b2c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.get_result_value_by_type ()          | void get_result_value_by_type (uint32_t arg1) {
                                                     |     int16_t var_10h;
                                                     |     int32_t var_10h_2;
                                                     |     int16_t var_1ch;
                                                     |     r0 = arg1;
    0x00017b2c blmi 0xff1ea64c                       |     __asm ("blmi aav.0x000450b8");
    0x00017b30 push {r4, r5, r6, r7, lr}             |     
    0x00017b32 sub sp, 0x24                          |     
    0x00017b34 add r2, pc                            |     r2 += pc;
    0x00017b36 ldr r3, [r2, r3]                      |     r3 = *((r2 + r3));
    0x00017b38 ldr r3, [r3]                          |     r3 = *(r3);
    0x00017b3a str r3, [sp, 0x1c]                    |     var_1ch = r3;
    0x00017b3c mov.w r3, 0                           |     r3 = 0;
    0x00017b40 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00017b42 beq.w 0x17e30                         |         void (*0x17e30)() ();
                                                     |     }
    0x00017b46 subs r1, 1                            |     r1--;
    0x00017b48 mov r4, r0                            |     r4 = r0;
    0x00017b4a cmp r1, 0x1f                          |     
                                                     |     if (r1 > 0x1f) {
    0x00017b4c bhi 0x17b7e                           |         void (*0x17b7e)() ();
                                                     |     }
                                                     |     /* switch table (32 cases) at 0x17b52 */
    0x00017b4e tbb [pc, r1]                          |     __asm ("tbb case.0x3207a.11");
    0x00017b72 ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x00017b74 lsls r3, r3, 0x1a                     |     r3 <<= 0x1a;
    0x00017b76 it mi                                 |     
                                                     |     if (r3 < r3) {
    0x00017b78 addmi r5, r0, 0x20                    |         r5 = r0 + 0x20;
                                                     |         goto label_6;
                                                     |     }
                                                     |     if (r3 < r3) {
                                                     | label_6:
    0x00017b7c bmi 0x17b80                           |         void (*0x17b80)() ();
                                                     |     }
    0x00017b9c ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x00017b9e ands r6, r3, 0x10                     |     r6 = r3 & 0x10;
    0x00017ba2 it ne                                 |     
                                                     |     if (r6 != r3) {
    0x00017bf4 ldr r3, [r0, 0x28]                    |         r3 = *((r0 + 0x28));
                                                     |     }
    0x00017bf6 lsls r0, r3, 0x1f                     |     r0 = r3 << 0x1f;
                                                     |     if (r0 >= r3) {
    0x00017bf8 bpl 0x17cbc                           |         goto label_7;
                                                     |     }
                                                     | label_1:
    0x00017bfa add.w r5, r4, 8                       |     r5 = r4 + 8;
    0x00017bfe b 0x17b80                             |     void (*0x17b80)() ();
    0x00017c00 ldr r1, [r0, 0x28]                    |     r1 = *((r0 + 0x28));
    0x00017c02 invalid                               |     
    0x00017c3e ldr r3, [r0, 0x28]                    |     r3 = *((r0 + 0x28));
    0x00017c40 lsls r6, r3, 0x1e                     |     r6 = r3 << 0x1e;
                                                     |     if (r6 >= r3) {
    0x00017c42 bpl 0x17c86                           |         goto label_8;
                                                     |     }
                                                     | label_0:
    0x00017c44 add.w r5, r4, 0x10                    |     r5 = r4 + 0x10;
    0x00017c48 b 0x17b80                             |     void (*0x17b80)() ();
    0x00017c4a ldr r1, [r0, 0x28]                    |     r1 = *((r0 + 0x28));
    0x00017c4c lsls r2, r1, 0x1d                     |     r2 = r1 << 0x1d;
                                                     |     if (r2 < r1) {
    0x00017c4e bmi 0x17c80                           |         goto label_9;
                                                     |     }
    0x00017c50 ands r0, r1, 8                        |     r0 = r1 & 8;
                                                     |     if (r0 != r1) {
    0x00017c54 bne 0x17d2c                           |         goto label_10;
                                                     |     }
    0x00017c56 ands r5, r1, 1                        |     r5 = r1 & 1;
                                                     |     if (r5 != r1) {
    0x00017c5a bne.w 0x17daa                         |         goto label_11;
                                                     |     }
    0x00017c5e lsls r3, r1, 0x1e                     |     r3 = r1 << 0x1e;
                                                     |     if (r3 >= r1) {
    0x00017c60 bpl 0x17b7e                           |         void (*0x17b7e)() ();
                                                     |     }
    0x00017c62 orr r1, r1, 4                         |     r1 |= 4;
    0x00017c66 ldrd r2, r3, [r4, 0x10]               |     __asm ("ldrd r2, r3, [r4, 0x10]");
    0x00017c6a str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x00017c6c mov r0, r5                            |     r0 = r5;
    0x00017c6e ldr r1, [pc, 0x1ec]                   |     
    0x00017c70 add r1, pc                            |     r1 = 0x2fad2;
    0x00017c72 bl 0x396b0                            |     zbx_dsprintf ()
    0x00017c76 str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
                                                     | label_3:
    0x00017c78 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x00017c7a lsls r7, r3, 0x1d                     |     r7 = r3 << 0x1d;
                                                     |     if (r7 >= r3) {
    0x00017c7c bpl.w 0x17b7e                         |         void (*0x17b7e)() ();
                                                     |     }
                                                     | label_9:
    0x00017c80 add.w r5, r4, 0x18                    |     r5 = r4 + 0x18;
    0x00017c84 b 0x17b80                             |     void (*0x17b80)() ();
                                                     | label_8:
    0x00017c86 lsls r5, r3, 0x1f                     |     r5 = r3 << 0x1f;
                                                     |     if (r5 < r3) {
    0x00017c88 bmi 0x17d1c                           |         goto label_12;
                                                     |     }
    0x00017c8a lsls r0, r3, 0x1d                     |     r0 = r3 << 0x1d;
                                                     |     if (r0 < r3) {
    0x00017c8c bmi.w 0x17dd8                         |         goto label_13;
                                                     |     }
    0x00017c90 lsls r1, r3, 0x1c                     |     r1 = r3 << 0x1c;
                                                     |     if (r1 >= r3) {
    0x00017c92 bpl.w 0x17b7e                         |         void (*0x17b7e)() ();
                                                     |     }
    0x00017c96 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x00017c98 bl 0x3cc9c                            |     zbx_trim_float ();
    0x00017c9c ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x00017c9e add r1, sp, 0x10                      |     r1 += var_10h;
    0x00017ca0 bl 0x365b0                            |     r0 = is_double ();
    0x00017ca4 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00017ca6 bne.w 0x17b7e                         |         void (*0x17b7e)() ();
                                                     |     }
                                                     | label_5:
    0x00017caa ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x00017cac ldrd r0, r1, [sp, 0x10]               |     __asm ("ldrd r0, r1, [var_10h]");
    0x00017cb0 orr r3, r3, 2                         |     r3 |= 2;
    0x00017cb4 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
                                                     | label_2:
    0x00017cb6 strd r0, r1, [r4, 0x10]               |     __asm ("strd r0, r1, [r4, 0x10]");
    0x00017cba b 0x17c44                             |     goto label_0;
                                                     | label_7:
    0x00017cbc lsls r1, r3, 0x1e                     |     r1 = r3 << 0x1e;
                                                     |     if (r1 < r3) {
    0x00017cbe bmi 0x17d0c                           |         goto label_14;
                                                     |     }
    0x00017cc0 lsls r2, r3, 0x1d                     |     r2 = r3 << 0x1d;
                                                     |     if (r2 < r3) {
    0x00017cc2 bmi 0x17dc0                           |         goto label_15;
                                                     |     }
    0x00017cc4 lsls r7, r3, 0x1c                     |     r7 = r3 << 0x1c;
                                                     |     if (r7 >= r3) {
    0x00017cc6 bpl.w 0x17b7e                         |         void (*0x17b7e)() ();
                                                     |     }
    0x00017cca ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x00017ccc bl 0x3cc94                            |     zbx_trim_integer ();
    0x00017cd0 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x00017cd2 bl 0x39304                            |     del_zeros ();
    0x00017cd6 ldr r0, [r4, 0x1c]                    |     r0 = *((r4 + 0x1c));
    0x00017cd8 vmov.i8 d17, 0xff                     |     __asm ("vmov.i8 d17, 0xff");
    0x00017cdc vmov.i32 d16, 0                       |     __asm ("vmov.i32 d16, 0");
                                                     | label_4:
    0x00017ce0 movs r3, 8                            |     r3 = 8;
    0x00017ce2 add r2, sp, 0x10                      |     r2 += var_10h;
    0x00017ce4 mov.w r1, -1                          |     r1 = -1;
    0x00017ce8 vstr d17, [sp, 8]                     |     __asm ("vstr d17, [sp, 8]");
    0x00017cec vstr d16, [sp]                        |     __asm ("vstr d16, [sp]");
    0x00017cf0 bl 0x367c8                            |     r0 = is_uint_n_range ();
    0x00017cf4 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00017cf6 bne.w 0x17b7e                         |         void (*0x17b7e)() ();
                                                     |     }
    0x00017cfa ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x00017cfc ldrd r0, r1, [sp, 0x10]               |     __asm ("ldrd r0, r1, [var_10h]");
    0x00017d00 orr r3, r3, 1                         |     r3 |= 1;
    0x00017d04 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
                                                     |     do {
    0x00017d06 strd r0, r1, [r4, 8]                  |         __asm ("strd r0, r1, [r4, 8]");
    0x00017d0a b 0x17bfa                             |         goto label_1;
                                                     | label_14:
    0x00017d0c orr r3, r3, 1                         |         r3 |= 1;
    0x00017d10 ldrd r0, r1, [r4, 0x10]               |         __asm ("ldrd r0, r1, [r4, 0x10]");
    0x00017d14 str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
    0x00017d16 bl 0x415d8                            |         fcn_000415d8 (r0, r1);
    0x00017d1a b 0x17d06                             |         
                                                     |     } while (1);
                                                     | label_12:
    0x00017d1c orr r3, r3, 2                         |     r3 |= 2;
    0x00017d20 ldrd r0, r1, [r0, 8]                  |     __asm ("ldrd r0, r1, [r0, 8]");
    0x00017d24 str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x00017d26 bl 0x4152c                            |     fcn_0004152c (r0, r1, r2);
    0x00017d2a b 0x17cb6                             |     goto label_2;
                                                     | label_10:
    0x00017d2c ldr r6, [r4, 0x1c]                    |     r6 = *((r4 + 0x1c));
    0x00017d2e ldrb r5, [r6]                         |     r5 = *(r6);
    0x00017d30 cmp r5, 0                             |     
    0x00017d32 it ne                                 |     
                                                     |     if (r5 != 0) {
    0x00017d34 cmpne r5, 0xd                         |         __asm ("cmpne r5, 0xd");
                                                     |     }
                                                     |     if (r5 != 0) {
    0x00017d36 bne 0x17d46                           |         goto label_16;
                                                     |     }
    0x00017d38 b 0x17d4a                             |     goto label_17;
                                                     |     do {
    0x00017d3a ldrb r5, [r6, 1]!                     |         r5 = *((r6 += 1));
    0x00017d3e cmp r5, 0                             |         
    0x00017d40 it ne                                 |         
                                                     |         if (r5 != 0) {
    0x00017d42 cmpne r5, 0xd                         |             __asm ("cmpne r5, 0xd");
                                                     |         }
                                                     |         if (r5 == 0) {
    0x00017d44 beq 0x17d4a                           |             goto label_17;
                                                     |         }
                                                     | label_16:
    0x00017d46 cmp r5, 0xa                           |         
    0x00017d48 bne 0x17d3a                           |         
                                                     |     } while (r5 != 0xa);
                                                     | label_17:
    0x00017d4a movs r2, 0                            |     r2 = 0;
    0x00017d4c ldr r0, [pc, 0x110]                   |     
    0x00017d4e strb r2, [r6]                         |     *(r6) = r2;
    0x00017d50 movw r1, 0x54e                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00017d54 ldr r3, [r4, 0x28]                    |     r3 = *((r4 + 0x28));
    0x00017d56 add r0, pc                            |     r0 = 0x2fbba;
    0x00017d58 orr r3, r3, 4                         |     r3 |= 4;
    0x00017d5c str r3, [r4, 0x28]                    |     *((r4 + 0x28)) = r3;
    0x00017d5e ldr r3, [r4, 0x1c]                    |     r3 = *((r4 + 0x1c));
    0x00017d60 bl 0x35d28                            |     zbx_strdup2 ();
    0x00017d64 str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
    0x00017d66 strb r5, [r6]                         |     *(r6) = r5;
    0x00017d68 b 0x17c78                             |     goto label_3;
                                                     | label_11:
    0x00017daa orr r1, r1, 4                         |     r1 |= 4;
    0x00017dae ldrd r2, r3, [r4, 8]                  |     __asm ("ldrd r2, r3, [r4, 8]");
    0x00017db2 str r1, [r4, 0x28]                    |     *((r4 + 0x28)) = r1;
    0x00017db4 ldr r1, [pc, 0xb4]                    |     
    0x00017db6 add r1, pc                            |     r1 = 0x2fc26;
    0x00017db8 bl 0x396b0                            |     zbx_dsprintf ()
    0x00017dbc str r0, [r4, 0x18]                    |     *((r4 + 0x18)) = r0;
    0x00017dbe b 0x17c78                             |     goto label_3;
                                                     | label_15:
    0x00017dc0 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00017dc2 bl 0x3cc94                            |     zbx_trim_integer ();
    0x00017dc6 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00017dc8 bl 0x39304                            |     del_zeros ();
    0x00017dcc ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00017dce vmov.i8 d17, 0xff                     |     __asm ("vmov.i8 d17, 0xff");
    0x00017dd2 vmov.i32 d16, 0                       |     __asm ("vmov.i32 d16, 0");
    0x00017dd6 b 0x17ce0                             |     goto label_4;
                                                     | label_13:
    0x00017dd8 ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00017dda bl 0x3cc9c                            |     zbx_trim_float ();
    0x00017dde ldr r0, [r4, 0x18]                    |     r0 = *((r4 + 0x18));
    0x00017de0 add r1, sp, 0x10                      |     r1 += var_10h;
    0x00017de2 bl 0x365b0                            |     r0 = is_double ();
    0x00017de6 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00017de8 beq.w 0x17caa                         |         goto label_5;
                                                     |     }
    0x00017dec b 0x17b7e                             |     return void (*0x17b7e)() ();
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x104a4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.init_collector_data ()                       | void init_collector_data (int16_t arg1) {
                                                             |     r0 = arg1;
    0x000104a4 push.w {r3, r4, r5, r6, r7, r8, sb, lr}       |     
    0x000104a8 mov r7, r0                                    |     r7 = r0;
    0x000104aa ldr r3, [pc, 0x134]                           |     
    0x000104ac ldr r2, [pc, 0x134]                           |     r2 = *(0x105e4);
    0x000104ae add r3, pc                                    |     r3 = 0x20a94;
    0x000104b0 ldr.w r8, [r3, r2]                            |     r8 = *(0x20a94);
    0x000104b4 ldr.w r3, [r8]                                |     r3 = *(0x20a94);
    0x000104b8 cmp r3, 3                                     |     
                                                             |     if (r3 > 3) {
    0x000104ba bgt 0x10542                                   |         goto label_2;
                                                             |     }
    0x000104bc movs r0, 0x53                                 |     r0 = 0x53;
    0x000104be blx 0xbe88                                    |     r0 = dup2 ();
    0x000104c2 mov r5, r0                                    |     r5 = r0;
    0x000104c4 adds r0, 1                                    |     r0++;
                                                             |     if (r0 == 1) {
    0x000104c6 beq 0x1055c                                   |         goto label_3;
                                                             |     }
                                                             |     do {
    0x000104c8 movw r3, 0x1d28                               |         
    0x000104cc movt r3, 1                                    |         r3 = 0xNaN;
    0x000104d0 mla r3, r5, r3, r3                            |         __asm ("mla r3, r5, r3, r3");
    0x000104d4 add.w r0, r3, 0x20                            |         r0 = r3 + 0x20;
                                                             | label_0:
    0x000104d8 ldr.w sb, [pc, 0x10c]                         |         sb = *(0x000105e8);
    0x000104dc bl 0x2b9f8                                    |         r0 = zbx_shm_create ();
    0x000104e0 adds r1, r0, 1                                |         r1 = r0 + 1;
    0x000104e2 mov r4, r0                                    |         r4 = r0;
    0x000104e4 add sb, pc                                    |         sb += pc;
    0x000104e6 str.w r0, [sb]                                |         __asm ("str.w r0, [sb]");
                                                             |         if (r1 == r0) {
    0x000104ea beq 0x1059a                                   |             goto label_4;
                                                             |         }
    0x000104ec movs r2, 0                                    |         r2 = 0;
    0x000104ee mov r1, r2                                    |         r1 = r2;
    0x000104f0 blx 0xbf0c                                    |         r0 = strcasecmp (r0, r1);
    0x000104f4 adds r2, r0, 1                                |         r2 = r0 + 1;
    0x000104f6 mov r6, r0                                    |         r6 = r0;
    0x000104f8 str.w r0, [sb, 4]                             |         __asm ("str.w r0, [sb, 4]");
                                                             |         if (r2 == r0) {
    0x000104fc beq 0x105c2                                   |             goto label_5;
                                                             |         }
    0x000104fe mov r0, r4                                    |         r0 = r4;
    0x00010500 bl 0x2ba4c                                    |         r0 = zbx_shm_destroy ();
    0x00010504 adds r3, r0, 1                                |         r3 = r0 + 1;
    0x00010506 mov r4, r0                                    |         r4 = r0;
                                                             |         if (r3 == r0) {
    0x00010508 beq 0x105ae                                   |             goto label_6;
                                                             |         }
    0x0001050a ldr.w r3, [sb, 4]                             |         r3 = *((sb + 4));
    0x0001050e mov.w r2, -1                                  |         r2 = -1;
    0x00010512 add.w r1, r3, 0x20                            |         r1 = r3 + 0x20;
    0x00010516 str r2, [r3, 8]                               |         *((r3 + 8)) = r2;
    0x00010518 str r1, [r3]                                  |         *(r3) = r1;
    0x0001051a str r5, [r3, 4]                               |         *((r3 + 4)) = r5;
    0x0001051c bl 0x120f0                                    |         zbx_procstat_init ();
    0x00010520 ldr r0, [pc, 0xc8]                            |         
    0x00010522 mov r2, r7                                    |         r2 = r7;
    0x00010524 movs r1, 6                                    |         r1 = 6;
    0x00010526 add r0, pc                                    |         r0 = 0x20b16;
    0x00010528 bl 0x2a23c                                    |         r0 = zbx_mutex_create ();
    0x0001052c subs r4, r0, 0                                |         r4 = r0 - 0;
    0x0001052e it ne                                         |         
                                                             |         if (r4 == r0) {
    0x00010530 movne r4, 1                                   |             r4 = 1;
                                                             |         }
    0x00010532 rsbs r4, r4, 0                                |         r4 -= ;
                                                             | label_1:
    0x00010534 ldr.w r3, [r8]                                |         r3 = *(r8);
    0x00010538 cmp r3, 3                                     |         
                                                             |         if (r3 > 3) {
    0x0001053a bgt 0x10586                                   |             goto label_7;
                                                             |         }
    0x0001053c mov r0, r4                                    |         r0 = r4;
    0x0001053e pop.w {r3, r4, r5, r6, r7, r8, sb, pc}        |         
                                                             | label_2:
    0x00010542 ldr r2, [pc, 0xac]                            |         
    0x00010544 movs r0, 4                                    |         r0 = 4;
    0x00010546 ldr r1, [pc, 0xac]                            |         
    0x00010548 add r2, pc                                    |         r2 = 0x20b3e;
    0x0001054a add r1, pc                                    |         r1 = 0x20b44;
    0x0001054c bl 0x271b0                                    |         zbx_zabbix_log ();
    0x00010550 movs r0, 0x53                                 |         r0 = 0x53;
    0x00010552 blx 0xbe88                                    |         r0 = dup2 ();
    0x00010556 mov r5, r0                                    |         r5 = r0;
    0x00010558 adds r0, 1                                    |         r0++;
    0x0001055a bne 0x104c8                                   |         
                                                             |     } while (r0 != 1);
                                                             | label_3:
    0x0001055c ldr.w r3, [r8]                                |     r3 = *(r8);
    0x00010560 cmp r3, 2                                     |     
    0x00010562 ittt le                                       |     
                                                             |     if (r3 <= 2) {
    0x00010564 movwle r0, 0x3a70                             |         __asm ("movwle r0, case.0x3207a.11");
                                                             |     }
                                                             |     if (r3 > 2) {
    0x00010568 movle r5, 1                                   |         r5 = 1;
                                                             |     }
                                                             |     if (r3 > 2) {
    0x0001056a movt r0, 2                                    |         r0 = (r0 & 0xFFFF) | 0x20000;
                                                             |         goto label_8;
                                                             |     }
                                                             |     if (r3 <= 2) {
                                                             | label_8:
    0x0001056e ble 0x104d8                                   |         goto label_0;
                                                             |     }
    0x00010570 ldr r1, [pc, 0x84]                            |     
    0x00010572 movs r0, 3                                    |     r0 = 3;
    0x00010574 movs r5, 1                                    |     r5 = 1;
    0x00010576 add r1, pc                                    |     r1 = 0x20b72;
    0x00010578 bl 0x271b0                                    |     zbx_zabbix_log ();
    0x0001057c movw r0, 0x3a70                               |     
    0x00010580 movt r0, 2                                    |     r0 = 0xNaN;
    0x00010584 b 0x104d8                                     |     goto label_0;
                                                             | label_7:
    0x00010586 ldr r2, [pc, 0x74]                            |     
    0x00010588 movs r0, 4                                    |     r0 = 4;
    0x0001058a ldr r1, [pc, 0x74]                            |     
    0x0001058c add r2, pc                                    |     r2 = 0x20b8e;
    0x0001058e add r1, pc                                    |     r1 = 0x20b94;
    0x00010590 bl 0x271b0                                    |     zbx_zabbix_log ();
    0x00010594 mov r0, r4                                    |     r0 = r4;
    0x00010596 pop.w {r3, r4, r5, r6, r7, r8, sb, pc}        |     
                                                             | label_4:
    0x0001059a ldr r3, [pc, 0x68]                            |     
    0x0001059c movs r1, 0xaa                                 |     r1 = 0xaa;
    0x0001059e ldr r0, [pc, 0x68]                            |     
    0x000105a0 ldr r2, [r7]                                  |     r2 = *(r7);
    0x000105a2 add r3, pc                                    |     r3 = 0x20bac;
    0x000105a4 add r0, pc                                    |     r0 = 0x20bb2;
    0x000105a6 bl 0x35d28                                    |     zbx_strdup2 ();
    0x000105aa str r0, [r7]                                  |     *(r7) = r0;
    0x000105ac b 0x10534                                     |     goto label_1;
                                                             | label_6:
    0x000105ae ldr r3, [pc, 0x5c]                            |     
    0x000105b0 movs r1, 0xb7                                 |     r1 = 0xb7;
    0x000105b2 ldr r0, [pc, 0x5c]                            |     
    0x000105b4 ldr r2, [r7]                                  |     r2 = *(r7);
    0x000105b6 add r3, pc                                    |     r3 = 0x20bc8;
    0x000105b8 add r0, pc                                    |     r0 = 0x20bce;
    0x000105ba bl 0x35d28                                    |     zbx_strdup2 ();
    0x000105be str r0, [r7]                                  |     *(r7) = r0;
    0x000105c0 b 0x10534                                     |     goto label_1;
                                                             | label_5:
    0x000105c2 blx 0xc15c                                    |     r0 = fcn_0000c15c ();
    0x000105c6 ldr r0, [r0]                                  |     r0 = *(r0);
    0x000105c8 mov r4, r6                                    |     r4 = r6;
    0x000105ca ldr r5, [r7]                                  |     r5 = *(r7);
    0x000105cc bl 0x26fdc                                    |     zbx_strerror ();
    0x000105d0 ldr r1, [pc, 0x40]                            |     
    0x000105d2 mov r2, r0                                    |     r2 = r0;
    0x000105d4 mov r0, r5                                    |     r0 = r5;
    0x000105d6 add r1, pc                                    |     r1 = 0x20bee;
    0x000105d8 bl 0x396b0                                    |     zbx_dsprintf ()
    0x000105dc str r0, [r7]                                  |     *(r7) = r0;
    0x000105de b 0x10534                                     |     goto label_1;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x30b78 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.json_parse_value ()                              | void json_parse_value (int16_t arg_1h, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00030b78 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00030b7c mov r8, r1                                        |     r8 = r1;
    0x00030b7e ldrb r4, [r0]                                     |     r4 = *(r0);
    0x00030b80 sub sp, 0xc                                       |     
    0x00030b82 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00030b84 beq.w 0x30de6                                     |         goto label_13;
                                                                 |     }
    0x00030b88 ldr r6, [pc, 0x318]                               |     
    0x00030b8a mov r7, r0                                        |     r7 = r0;
    0x00030b8c mov r5, r0                                        |     r5 = r0;
    0x00030b8e add r6, pc                                        |     r6 = 0x61a36;
    0x00030b90 b 0x30b9c                                         |     
                                                                 |     while (r0 != 0) {
    0x00030b92 ldrb r4, [r5, 1]!                                 |         r4 = *((r5 += 1));
    0x00030b96 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00030b98 beq.w 0x30de6                                     |             goto label_13;
                                                                 |         }
    0x00030b9c mov r1, r4                                        |         r1 = r4;
    0x00030b9e mov r0, r6                                        |         r0 = r6;
    0x00030ba0 blx 0xc138                                        |         r0 = fcn_0000c138 ();
    0x00030ba4 cmp r0, 0                                         |         
    0x00030ba6 bne 0x30b92                                       |         
                                                                 |     }
    0x00030ba8 cmp r4, 0x7b                                      |     
                                                                 |     if (r4 > 0x7b) {
    0x00030baa bhi.w 0x30d00                                     |         goto label_14;
                                                                 |     }
    0x00030bac strh r1, [r5, 4]                                  |     *((r5 + 4)) = r1;
    0x00030bae cmp r4, 0x5a                                      |     
                                                                 |     if (r4 >= 0x5a) {
    0x00030bb0 bls 0x30c02                                       |         
    0x00030bb2 sub.w r3, r4, 0x5b                                |         r3 = r4 - 0x5b;
    0x00030bb6 cmp r3, 0x20                                      |         
                                                                 |         if (r3 > 0x20) {
    0x00030bb8 bhi.w 0x30d00                                     |             goto label_14;
                                                                 |         }
                                                                 |         /* switch table (34 cases) at 0x30bc0 */
    0x00030bbc tbh [pc, r3, lsl 1]                               |         __asm ("tbh [pc, r3, lsl 1]");
                                                                 |     }
    0x00030c02 cmp r4, 0x2d                                      |     
                                                                 |     if (r4 == 0x2d) {
    0x00030c04 beq.w 0x30e1a                                     |         goto label_15;
                                                                 |     }
                                                                 |     if (r4 < 0x2d) {
    0x00030c08 bls 0x30ce8                                       |         goto label_16;
                                                                 |     }
    0x00030c0a subs r4, 0x30                                     |     r4 -= 0x30;
    0x00030c0c cmp r4, 9                                         |     
    0x00030c0e it ls                                             |     
                                                                 |     if (r4 > 9) {
    0x00030c10 movls fp, r5                                      |         
                                                                 |     }
                                                                 |     if (r4 > 9) {
    0x00030c12 bhi 0x30d00                                       |         goto label_14;
                                                                 |     }
                                                                 | label_7:
    0x00030c14 ldrb.w r3, [fp]                                   |     r3 = *(fp);
    0x00030c18 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00030c1a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00030c1c beq.w 0x30e08                                     |         goto label_8;
                                                                 |     }
    0x00030c20 cmp r3, 0x2e                                      |     
                                                                 |     if (r3 == 0x2e) {
    0x00030c22 beq.w 0x30e20                                     |         goto label_17;
                                                                 |     }
    0x00030c26 ldr r6, [sp, 4]                                   |     r6 = var_4h;
    0x00030c28 mov.w sl, 0                                       |     sl = 0;
    0x00030c2c mov sb, sl                                        |     sb = sl;
                                                                 | label_4:
    0x00030c2e blx 0xc0d4                                        |     r0 = feof (r0);
    0x00030c32 ldr r1, [r0]                                      |     r1 = *(r0);
    0x00030c34 add.w r4, fp, 1                                   |     r4 += arg_1h;
    0x00030c38 ldrh.w r2, [r1, r6, lsl 1]                        |     offset_0 = r6 << 1;
                                                                 |     r2 = *((r1 + offset_0));
    0x00030c3c lsls r2, r2, 0x14                                 |     r2 <<= 0x14;
                                                                 |     if (r2 >= r2) {
    0x00030c3e bpl 0x30c6a                                       |         goto label_5;
                                                                 |     }
                                                                 |     do {
    0x00030c40 ldrb.w r6, [fp, 1]                                |         r6 = *(arg_1h);
    0x00030c44 cmp.w sb, 0                                       |         
                                                                 |         if (sb != 0) {
    0x00030c48 bne.w 0x30db8                                     |             goto label_18;
                                                                 |         }
    0x00030c4c add.w sl, sl, 1                                   |         sl++;
    0x00030c50 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00030c52 beq.w 0x30e38                                     |             goto label_19;
                                                                 |         }
    0x00030c56 cmp r6, 0x2e                                      |         
                                                                 |         if (r6 == 0x2e) {
    0x00030c58 beq.w 0x30dc8                                     |             goto label_20;
                                                                 |         }
    0x00030c5c ldrh.w r2, [r1, r6, lsl 1]                        |         offset_1 = r6 << 1;
                                                                 |         r2 = *((r1 + offset_1));
    0x00030c60 mov fp, r4                                        |         
    0x00030c62 add.w r4, fp, 1                                   |         r4 += arg_1h;
    0x00030c66 lsls r2, r2, 0x14                                 |         r2 <<= 0x14;
    0x00030c68 bmi 0x30c40                                       |         
                                                                 |     } while (r2 < r2);
                                                                 | label_5:
    0x00030c6a mov r4, fp                                        |     r4 = fp;
                                                                 | label_3:
    0x00030c6c cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00030c70 beq.w 0x30e08                                     |         goto label_8;
                                                                 |     }
                                                                 | label_11:
    0x00030c74 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00030c76 cmp.w sl, 1                                       |     
    0x00030c7a sub.w r3, r3, 0x30                                |     r3 -= 0x30;
    0x00030c7e clz r3, r3                                        |     r3 &= r3;
    0x00030c80 invalid                                           |     
    0x00030c84 asrs r3, r2, 0xd                                  |     r3 = r2 >> 0xd;
    0x00030c86 it le                                             |     
                                                                 |     if (sl > 1) {
    0x00030c88 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00030c8a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00030c8c bne.w 0x30e54                                     |         goto label_21;
                                                                 |     }
    0x00030c90 and r6, r6, 0xdf                                  |     r6 &= 0xdf;
    0x00030c94 cmp r6, 0x45                                      |     
                                                                 |     if (r6 != 0x45) {
    0x00030c96 bne 0x30cda                                       |         goto label_10;
                                                                 |     }
    0x00030c98 ldrb r6, [r4, 1]                                  |     r6 = *((r4 + 1));
    0x00030c9a cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00030c9c beq.w 0x30e6a                                     |         goto label_22;
                                                                 |     }
    0x00030ca0 sub.w r3, r6, 0x2b                                |     r3 = r6 - 0x2b;
    0x00030ca4 tst.w r3, 0xfd                                    |     
    0x00030ca8 it ne                                             |     
                                                                 |     if ((r3 & 0xfd) == 0) {
    0x00030caa addne r4, 1                                       |         r4++;
                                                                 |     }
                                                                 |     if ((r3 & 0xfd) == 0) {
    0x00030cac bne 0x30cb8                                       |         
    0x00030cae ldrb r6, [r4, 2]                                  |         r6 = *((r4 + 2));
    0x00030cb0 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x00030cb2 beq.w 0x30e6a                                     |             goto label_22;
                                                                 |         }
    0x00030cb6 adds r4, 2                                        |         r4 += 2;
                                                                 |     }
    0x00030cb8 blx 0xc0d4                                        |     r0 = feof (r0);
    0x00030cbc ldr r2, [r0]                                      |     r2 = *(r0);
    0x00030cbe ldrh.w r3, [r2, r6, lsl 1]                        |     offset_2 = r6 << 1;
                                                                 |     r3 = *((r2 + offset_2));
    0x00030cc2 ands r6, r3, 0x800                                |     r6 = r3 & case.0x3207a.11;
                                                                 |     if (r6 != r3) {
    0x00030cc6 bne 0x30cd2                                       |         goto label_23;
                                                                 |     }
    0x00030cc8 b 0x30e80                                         |     goto label_24;
                                                                 |     do {
    0x00030cca ldrh.w r3, [r2, r3, lsl 1]                        |         offset_3 = r3 << 1;
                                                                 |         r3 = *((r2 + offset_3));
    0x00030cce lsls r3, r3, 0x14                                 |         r3 <<= 0x14;
                                                                 |         if (r3 >= r3) {
    0x00030cd0 bpl 0x30cda                                       |             goto label_10;
                                                                 |         }
                                                                 | label_23:
    0x00030cd2 ldrb r3, [r4, 1]!                                 |         r3 = *((r4 += 1));
    0x00030cd6 cmp r3, 0                                         |         
    0x00030cd8 bne 0x30cca                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_10:
    0x00030cda subs r0, r4, r5                                   |     r0 = r4 - r5;
                                                                 |     if (r0 == r4) {
    0x00030cdc beq 0x30cf8                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00030cde subs r3, r5, r7                                   |         r3 = r5 - r7;
    0x00030ce0 add r0, r3                                        |         r0 += r3;
                                                                 | label_6:
    0x00030ce2 add sp, 0xc                                       |         
    0x00030ce4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_16:
    0x00030ce8 cmp r4, 0x22                                      |         
                                                                 |         if (r4 != 0x22) {
    0x00030cea bne 0x30d00                                       |             goto label_14;
                                                                 |         }
    0x00030cec mov r1, r8                                        |         r1 = r8;
    0x00030cee mov r0, r5                                        |         r0 = r5;
    0x00030cf0 bl 0x30a34                                        |         r0 = fcn_00030a34 (r0, r1);
    0x00030cf4 cmp r0, 0                                         |         
    0x00030cf6 bne 0x30cde                                       |         
                                                                 |     } while (r0 != 0);
                                                                 |     do {
                                                                 | label_1:
    0x00030cf8 movs r0, 0                                        |         r0 = 0;
    0x00030cfa add sp, 0xc                                       |         
    0x00030cfc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_14:
    0x00030d00 cmp.w r8, 0                                       |         
    0x00030d04 beq 0x30cf8                                       |         
                                                                 |     } while (r8 == 0);
    0x00030d06 ldr r2, [pc, 0x1a0]                               |     
    0x00030d08 ldr r1, [pc, 0x1a0]                               |     
    0x00030d0a add r2, pc                                        |     r2 = 0x61bb8;
    0x00030d0c add r1, pc                                        |     r1 = 0x61bbc;
                                                                 | label_2:
    0x00030d0e mov r3, r5                                        |     r3 = r5;
    0x00030d10 ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00030d14 bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x00030d18 mov r3, r0                                        |     r3 = r0;
    0x00030d1a movs r0, 0                                        |     r0 = 0;
    0x00030d1c str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00030d20 add sp, 0xc                                       |     
    0x00030d22 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x00030d24 ldrh r0, [r6, 0x3e]                               |     r0 = *((r6 + 0x3e));
    0x00030d26 mov r1, r8                                        |     r1 = r8;
    0x00030d28 mov r0, r5                                        |     r0 = r5;
    0x00030d2a bl 0x30efc                                        |     r0 = fcn_00030efc (r0, r1);
    0x00030d2e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00030d30 bne 0x30cde                                       |         goto label_0;
                                                                 |     }
    0x00030d32 b 0x30cf8                                         |     goto label_1;
    0x00030d34 ldr r1, [pc, 0x178]                               |     
    0x00030d36 mov r3, r5                                        |     r3 = r5;
    0x00030d38 add r1, pc                                        |     r1 = 0x61bec;
    0x00030d3a b 0x30d44                                         |     
                                                                 |     while (r2 == r4) {
    0x00030d3c ldrb r4, [r1, 1]!                                 |         r4 = *((r1 += 1));
    0x00030d40 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00030d42 beq 0x30dde                                       |             goto label_25;
                                                                 |         }
    0x00030d44 ldrb r2, [r3], 1                                  |         r2 = *(r3);
                                                                 |         r3++;
    0x00030d48 cmp r2, r4                                        |         
    0x00030d4a beq 0x30d3c                                       |         
                                                                 |     }
    0x00030d4c cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030d50 beq 0x30cf8                                       |         goto label_1;
                                                                 |     }
    0x00030d52 ldr r2, [pc, 0x160]                               |     
    0x00030d54 ldr r1, [pc, 0x160]                               |     
    0x00030d56 add r2, pc                                        |     r2 = 0x61c10;
    0x00030d58 add r1, pc                                        |     r1 = 0x61c14;
    0x00030d5a b 0x30d0e                                         |     goto label_2;
    0x00030d5c ldr r1, [pc, 0x15c]                               |     
    0x00030d5e mov r3, r5                                        |     r3 = r5;
    0x00030d60 add r1, pc                                        |     r1 = 0x61c20;
    0x00030d62 b 0x30d6c                                         |     
                                                                 |     while (r2 == r4) {
    0x00030d64 ldrb r4, [r1, 1]!                                 |         r4 = *((r1 += 1));
    0x00030d68 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00030d6a beq 0x30dde                                       |             goto label_25;
                                                                 |         }
    0x00030d6c ldrb r2, [r3], 1                                  |         r2 = *(r3);
                                                                 |         r3++;
    0x00030d70 cmp r2, r4                                        |         
    0x00030d72 beq 0x30d64                                       |         
                                                                 |     }
    0x00030d74 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030d78 beq 0x30cf8                                       |         goto label_1;
                                                                 |     }
    0x00030d7a ldr r2, [pc, 0x144]                               |     
    0x00030d7c ldr r1, [pc, 0x144]                               |     
    0x00030d7e add r2, pc                                        |     r2 = 0x61c44;
    0x00030d80 add r1, pc                                        |     r1 = 0x61c48;
    0x00030d82 b 0x30d0e                                         |     goto label_2;
    0x00030d84 mov r1, r8                                        |     r1 = r8;
    0x00030d86 mov r0, r5                                        |     r0 = r5;
    0x00030d88 bl 0x31078                                        |     r0 = fcn_00031078 (r0, r1);
    0x00030d8c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00030d8e bne 0x30cde                                       |         goto label_0;
                                                                 |     }
    0x00030d90 b 0x30cf8                                         |     goto label_1;
    0x00030d92 ldr r1, [pc, 0x134]                               |     
    0x00030d94 mov r3, r5                                        |     r3 = r5;
    0x00030d96 add r1, pc                                        |     r1 = 0x61c64;
    0x00030d98 b 0x30da0                                         |     
                                                                 |     while (r2 == r4) {
    0x00030d9a ldrb r4, [r1, 1]!                                 |         r4 = *((r1 += 1));
                                                                 |         if (r4 == 0) {
    0x00030d9e cbz r4, 0x30dde                                   |             goto label_25;
                                                                 |         }
    0x00030da0 ldrb r2, [r3], 1                                  |         r2 = *(r3);
                                                                 |         r3++;
    0x00030da4 cmp r2, r4                                        |         
    0x00030da6 beq 0x30d9a                                       |         
                                                                 |     }
    0x00030da8 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030dac beq 0x30cf8                                       |         goto label_1;
                                                                 |     }
    0x00030dae ldr r2, [pc, 0x11c]                               |     
    0x00030db0 ldr r1, [pc, 0x11c]                               |     
    0x00030db2 add r2, pc                                        |     r2 = 0x61c84;
    0x00030db4 add r1, pc                                        |     r1 = 0x61c88;
    0x00030db6 b 0x30d0e                                         |     goto label_2;
                                                                 | label_18:
    0x00030db8 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00030dba beq.w 0x30c6c                                     |         goto label_3;
                                                                 |     }
    0x00030dbe cmp r6, 0x2e                                      |     
                                                                 |     if (r6 == 0x2e) {
    0x00030dc0 beq.w 0x30c6c                                     |         goto label_3;
                                                                 |     }
    0x00030dc4 mov fp, r4                                        |     
    0x00030dc6 b 0x30c2e                                         |     goto label_4;
                                                                 | label_20:
    0x00030dc8 ldrb r6, [r4, 1]                                  |     r6 = *((r4 + 1));
    0x00030dca add.w fp, fp, 2                                   |     
    0x00030dce cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00030dd0 beq 0x30e66                                       |         goto label_26;
                                                                 |     }
    0x00030dd2 cmp r6, 0x2e                                      |     
                                                                 |     if (r6 == 0x2e) {
    0x00030dd4 beq.w 0x30c6a                                     |         goto label_5;
                                                                 |     }
                                                                 | label_9:
    0x00030dd8 mov.w sb, 1                                       |     sb = 1;
    0x00030ddc b 0x30c2e                                         |     goto label_4;
                                                                 | label_25:
    0x00030dde subs r0, r3, r5                                   |     r0 = r3 - r5;
                                                                 |     if (r0 != r3) {
    0x00030de0 bne.w 0x30cde                                     |         goto label_0;
                                                                 |     }
    0x00030de4 b 0x30cf8                                         |     goto label_1;
                                                                 | label_13:
    0x00030de6 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030dea beq 0x30cf8                                       |         goto label_1;
                                                                 |     }
    0x00030dec ldr r3, [pc, 0xe4]                                |     
    0x00030dee ldr r0, [pc, 0xe8]                                |     
    0x00030df0 ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x00030df4 add r3, pc                                        |     r3 = 0x61ccc;
    0x00030df6 add r0, pc                                        |     r0 = 0x61cd4;
                                                                 | label_12:
    0x00030df8 movs r1, 0x35                                     |     r1 = 0x35;
    0x00030dfa bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00030dfe mov r3, r0                                        |     r3 = r0;
    0x00030e00 movs r0, 0                                        |     r0 = 0;
    0x00030e02 str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00030e06 b 0x30ce2                                         |     goto label_6;
                                                                 | label_8:
    0x00030e08 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030e0c beq.w 0x30cf8                                     |         goto label_1;
                                                                 |     }
    0x00030e10 ldr r2, [pc, 0xc8]                                |     
    0x00030e12 ldr r1, [pc, 0xcc]                                |     
    0x00030e14 add r2, pc                                        |     r2 = 0x61cf4;
    0x00030e16 add r1, pc                                        |     r1 = 0x61cfc;
    0x00030e18 b 0x30d0e                                         |     goto label_2;
                                                                 | label_15:
    0x00030e1a add.w fp, r5, 1                                   |     
    0x00030e1e b 0x30c14                                         |     goto label_7;
                                                                 | label_17:
    0x00030e20 ldrb.w r6, [fp, 1]                                |     r6 = *(arg_1h);
    0x00030e24 add.w r3, fp, 1                                   |     r3 += arg_1h;
    0x00030e28 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00030e2a beq 0x30e08                                       |         goto label_8;
                                                                 |     }
    0x00030e2c cmp r6, 0x2e                                      |     
                                                                 |     if (r6 == 0x2e) {
    0x00030e2e beq 0x30e08                                       |         goto label_8;
                                                                 |     }
    0x00030e30 mov fp, r3                                        |     
    0x00030e32 mov.w sl, 0                                       |     sl = 0;
    0x00030e36 b 0x30dd8                                         |     goto label_9;
                                                                 | label_19:
    0x00030e38 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00030e3a cmp.w sl, 1                                       |     
    0x00030e3e sub.w r3, r3, 0x30                                |     r3 -= 0x30;
    0x00030e42 clz r3, r3                                        |     r3 &= r3;
    0x00030e44 invalid                                           |     
    0x00030e48 asrs r3, r2, 0xd                                  |     r3 = r2 >> 0xd;
    0x00030e4a it le                                             |     
                                                                 |     if (sl > 1) {
    0x00030e4c movle r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00030e4e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00030e50 beq.w 0x30cda                                     |         goto label_10;
                                                                 |     }
                                                                 | label_21:
    0x00030e54 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030e58 beq.w 0x30cf8                                     |         goto label_1;
                                                                 |     }
    0x00030e5c ldr r2, [pc, 0x84]                                |     
    0x00030e5e ldr r1, [pc, 0x88]                                |     
    0x00030e60 add r2, pc                                        |     r2 = 0x61d48;
    0x00030e62 add r1, pc                                        |     r1 = 0x61d50;
    0x00030e64 b 0x30d0e                                         |     goto label_2;
                                                                 | label_26:
    0x00030e66 mov r4, fp                                        |     r4 = fp;
    0x00030e68 b 0x30c74                                         |     goto label_11;
                                                                 | label_22:
    0x00030e6a cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030e6e beq.w 0x30cf8                                     |         goto label_1;
                                                                 |     }
    0x00030e72 ldr r3, [pc, 0x78]                                |     
    0x00030e74 ldr r0, [pc, 0x78]                                |     
    0x00030e76 ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x00030e7a add r3, pc                                        |     r3 = 0x61d6c;
    0x00030e7c add r0, pc                                        |     r0 = 0x61d70;
    0x00030e7e b 0x30df8                                         |     goto label_12;
                                                                 | label_24:
    0x00030e80 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00030e84 beq.w 0x30cf8                                     |         goto label_1;
                                                                 |     }
    0x00030e88 ldr r2, [pc, 0x68]                                |     
    0x00030e8a mov r3, r4                                        |     r3 = r4;
    0x00030e8c ldr r1, [pc, 0x68]                                |     
    0x00030e8e ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00030e92 add r2, pc                                        |     r2 = 0x61d8a;
    0x00030e94 add r1, pc                                        |     r1 = 0x61d90;
    0x00030e96 bl 0x396b0                                        |     r0 = zbx_dsprintf ()
    0x00030e9a mov r3, r0                                        |     r3 = r0;
    0x00030e9c mov r0, r6                                        |     r0 = r6;
    0x00030e9e str.w r3, [r8]                                    |     __asm ("str.w r3, [r8]");
    0x00030ea2 b 0x30ce2                                         |     goto label_6;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x15b94 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.process_log_check ()                             | void process_log_check (int16_t arg_138h, int16_t arg_13ch, int16_t arg_140h, int16_t arg_144h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_ch_2;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int32_t var_4ch;
                                                                 |     int32_t var_4ch_2;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int32_t var_5ch;
                                                                 |     int32_t var_5ch_2;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_7ch;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_84h;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_a0h;
                                                                 |     int16_t var_a4h;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_bch;
                                                                 |     int16_t var_c0h;
                                                                 |     int16_t var_c8h;
                                                                 |     int16_t var_cch;
                                                                 |     int16_t var_d0h;
                                                                 |     int16_t var_ech;
                                                                 |     int16_t var_104h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00015b94 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00015b98 mov r4, r3                                        |     r4 = r3;
    0x00015b9a vpush {d8}                                        |     __asm ("vpush {d8}");
    0x00015b9e sub sp, 0x10c                                     |     
    0x00015ba0 add r6, sp, 0xc8                                  |     r6 += var_c8h;
    0x00015ba2 ldr r3, [sp, 0x138]                               |     r3 = *(arg_138h);
    0x00015ba4 str r2, [sp, 0x74]                                |     var_74h = r2;
    0x00015ba6 ldr.w r2, [pc, 0x434]                             |     r2 = "First parameter is not a directory.";
    0x00015baa str r3, [sp, 0x80]                                |     var_80h = r3;
    0x00015bac ldr.w r3, [pc, 0x430]                             |     
    0x00015bb0 add r2, pc                                        |     r2 += pc;
    0x00015bb2 strd r0, r1, [sp, 0x78]                           |     __asm ("strd r0, r1, [var_7ch]");
    0x00015bb6 ldrb.w sl, [r4, 0x1d]                             |     sl = *((r4 + 0x1d));
    0x00015bba mov r0, r6                                        |     r0 = r6;
    0x00015bbc ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x00015bbe ldr.w sb, [pc, 0x424]                             |     
    0x00015bc2 ldr r3, [r3]                                      |     r3 = *(0x15fe0);
    0x00015bc4 str r3, [sp, 0x104]                               |     var_104h = r3;
    0x00015bc6 mov.w r3, 0                                       |     r3 = 0;
    0x00015bca movs r3, 0                                        |     r3 = 0;
    0x00015bcc strd r3, r3, [sp, 0xb4]                           |     __asm ("strd r3, r3, [var_b4h]");
    0x00015bd0 add sb, pc                                        |     sb = 0x2bbba;
    0x00015bd2 str r3, [sp, 0xbc]                                |     var_bch = r3;
    0x00015bd4 ldr r3, [sp, 0x13c]                               |     r3 = *(arg_13ch);
    0x00015bd6 str r3, [sp, 0x84]                                |     var_84h = r3;
    0x00015bd8 ldr r3, [sp, 0x140]                               |     r3 = *(arg_140h);
    0x00015bda str r3, [sp, 0x88]                                |     var_88h = r3;
    0x00015bdc ldr r3, [sp, 0x144]                               |     r3 = *(arg_144h);
    0x00015bde str r3, [sp, 0x70]                                |     var_70h = r3;
    0x00015be0 and r3, sl, 0x20                                  |     r3 = sl & 0x20;
    0x00015be4 str r3, [sp, 0x68]                                |     var_68h = r3;
    0x00015be6 ubfx sl, sl, 5, 1                                 |     sl = (sl >> 5) & ((1 << 1) - 1);
    0x00015bea bl 0x16f70                                        |     init_request ();
    0x00015bec invalid                                           |     
    0x00015bf0 mov r1, r6                                        |     r1 = r6;
    0x00015bf2 bl 0x16fa4                                        |     r0 = parse_item_key ();
    0x00015bf6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00015bf8 bne.w 0x161e8                                     |         goto label_16;
                                                                 |     }
    0x00015bfc ldr r7, [sp, 0xcc]                                |     r7 = var_cch;
    0x00015bfe ldrb r3, [r4, 0x1d]                               |     r3 = *((r4 + 0x1d));
    0x00015c00 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00015c02 beq.w 0x16260                                     |         goto label_17;
                                                                 |     }
    0x00015c06 tst.w r3, 0x20                                    |     
    0x00015c0a ite ne                                            |     
                                                                 |     if ((r3 & 0x20) == 0) {
    0x00015c0c movne r3, 7                                       |         r3 = 7;
                                                                 |     }
                                                                 |     if ((r3 & 0x20) != 0) {
    0x00015c0e moveq r3, 8                                       |         r3 = 8;
                                                                 |     }
    0x00015c10 cmp r7, r3                                        |     
                                                                 |     if (r7 > r3) {
    0x00015c12 bgt.w 0x16242                                     |         goto label_18;
                                                                 |     }
    0x00015c16 cmp r7, 0                                         |     
                                                                 |     if (r7 <= 0) {
    0x00015c18 ble.w 0x161c6                                     |         goto label_19;
                                                                 |     }
    0x00015c1c ldr r3, [sp, 0xd0]                                |     r3 = var_d0h;
    0x00015c1e ldr.w r8, [r3]                                    |     r8 = *(r3);
    0x00015c22 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00015c26 beq.w 0x161c6                                     |         goto label_19;
                                                                 |     }
    0x00015c2a ldrb.w r2, [r8]                                   |     r2 = *(r8);
    0x00015c2e cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00015c30 beq.w 0x161c6                                     |         goto label_19;
                                                                 |     }
    0x00015c34 cmp r7, 1                                         |     
                                                                 |     if (r7 == 1) {
    0x00015c36 beq.w 0x15dd6                                     |         goto label_20;
                                                                 |     }
    0x00015c3a ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00015c3c str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00015c3e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015c40 beq.w 0x15f40                                     |         goto label_21;
                                                                 |     }
    0x00015c44 ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00015c46 cmp r3, 0x40                                      |     
                                                                 |     if (r3 == 0x40) {
    0x00015c48 beq.w 0x160e4                                     |         goto label_22;
                                                                 |     }
                                                                 | label_12:
    0x00015c4c cmp r7, 2                                         |     
                                                                 |     if (r7 <= 2) {
    0x00015c4e ble.w 0x15f4c                                     |         goto label_23;
                                                                 |     }
                                                                 | label_3:
    0x00015c52 ldr r3, [sp, 0xd0]                                |     r3 = var_d0h;
    0x00015c54 ldr r5, [r3, 8]                                   |     r5 = *((r3 + 8));
    0x00015c56 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00015c58 beq.w 0x15dfc                                     |         goto label_24;
                                                                 |     }
    0x00015c5c ldr r0, [pc, 0x388]                               |     
    0x00015c5e mov r3, r5                                        |     r3 = r5;
    0x00015c60 movs r2, 0                                        |     r2 = 0;
    0x00015c62 movw r1, 0xda2                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00015c66 add r0, pc                                        |     r0 = 0x2bc52;
    0x00015c68 bl 0x35d28                                        |     r0 = zbx_strdup2 ();
    0x00015c6c mov r5, r0                                        |     r5 = r0;
    0x00015c6e str r0, [sp, 0x8c]                                |     var_8ch = r0;
    0x00015c70 bl 0x3a530                                        |     zbx_strupper ();
    0x00015c74 ldr r7, [sp, 0xcc]                                |     r7 = var_cch;
                                                                 | label_1:
    0x00015c76 cmp r7, 3                                         |     
                                                                 |     if (r7 <= 3) {
    0x00015c78 ble.w 0x15de0                                     |         goto label_4;
                                                                 |     }
    0x00015c7c ldr r3, [sp, 0xd0]                                |     r3 = var_d0h;
    0x00015c7e ldr r0, [r3, 0xc]                                 |     r0 = *((r3 + 0xc));
    0x00015c80 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00015c82 beq.w 0x15de0                                     |         goto label_4;
                                                                 |     }
    0x00015c86 ldrb r3, [r0]                                     |     r3 = *(r0);
    0x00015c88 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015c8a beq.w 0x15de0                                     |         goto label_4;
                                                                 |     }
    0x00015c8e movs r2, 0xa                                      |     r2 = 0xa;
    0x00015c90 movs r1, 0                                        |     r1 = 0;
    0x00015c92 blx 0xbc70                                        |     r0 = fcn_0000bc70 ();
    0x00015c96 subs.w fp, r0, 0                                  |     
                                                                 |     if (fp <= r0) {
    0x00015c9a ble.w 0x16224                                     |         goto label_25;
                                                                 |     }
    0x00015c9e ldr r3, [sp, 0x68]                                |     r3 = var_68h;
    0x00015ca0 cmp.w fp, 0x3e8                                   |     
    0x00015ca4 clz r3, r3                                        |     r3 &= r3;
    0x00015ca8 lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x00015cac it le                                             |     
                                                                 |     if (fp > 0x3e8) {
    0x00015cae movle r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00015cb0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00015cb2 bne.w 0x16224                                     |         goto label_25;
                                                                 |     }
    0x00015cb6 movw r2, 0x2710                                   |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00015cba ldr r7, [sp, 0xcc]                                |     r7 = var_cch;
    0x00015cbc cmp fp, r2                                        |     
    0x00015cbe ite le                                            |     
                                                                 |     if (fp > r2) {
    0x00015cc0 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (fp <= r2) {
    0x00015cc2 andgt r3, sl, 1                                   |         r3 = sl & 1;
                                                                 |     }
    0x00015cc6 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00015cc8 bne.w 0x16224                                     |         goto label_25;
                                                                 |     }
                                                                 |     do {
                                                                 | label_0:
    0x00015ccc cmp r7, 4                                         |         
                                                                 |         if (r7 > 4) {
    0x00015cce ble 0x15cde                                       |             
    0x00015cd0 ldr r3, [sp, 0xd0]                                |             r3 = var_d0h;
    0x00015cd2 ldr r3, [r3, 0x10]                                |             r3 = *((r3 + 0x10));
                                                                 |             if (r3 == 0) {
    0x00015cd4 cbz r3, 0x15cde                                   |                 goto label_6;
                                                                 |             }
    0x00015cd6 ldrb r2, [r3]                                     |             r2 = *(r3);
    0x00015cd8 cmp r2, 0                                         |             
                                                                 |             if (r2 != 0) {
    0x00015cda bne.w 0x15f7a                                     |                 goto label_26;
                                                                 |             }
                                                                 |         }
                                                                 | label_6:
    0x00015cde movs r3, 0                                        |         r3 = 0;
    0x00015ce0 strb r3, [r4, 0x1c]                               |         *((r4 + 0x1c)) = r3;
                                                                 | label_7:
    0x00015ce2 ldr r2, [sp, 0x68]                                |         r2 = var_68h;
    0x00015ce4 cmp r7, 5                                         |         
    0x00015ce6 ite le                                            |         
                                                                 |         if (r7 > 5) {
    0x00015ce8 movle r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r7 <= 5) {
    0x00015cea movgt r3, 1                                       |             r3 = 1;
                                                                 |         }
    0x00015cec cmp r2, 0                                         |         
    0x00015cee it ne                                             |         
                                                                 |         if (r2 == 0) {
    0x00015cf0 movne r3, 0                                       |             r3 = 0;
                                                                 |         }
    0x00015cf2 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00015cf4 bne.w 0x15fbc                                     |             goto label_27;
                                                                 |         }
                                                                 | label_8:
    0x00015cf8 ldr r3, [pc, 0x2f0]                               |         
    0x00015cfa rsb.w sl, sl, 6                                   |         sl = 6 - sl;
    0x00015cfe add r3, pc                                        |         r3 = 0x2bcee;
    0x00015d00 str r3, [sp, 0x90]                                |         var_90h = r3;
                                                                 | label_9:
    0x00015d02 cmp sl, r7                                        |         
                                                                 |         if (sl >= r7) {
    0x00015d04 bge 0x15e04                                       |             goto label_28;
                                                                 |         }
    0x00015d06 ldr r3, [sp, 0xd0]                                |         r3 = var_d0h;
    0x00015d08 ldr.w r0, [r3, sl, lsl 2]                         |         offset_0 = sl << 2;
                                                                 |         r0 = *((r3 + offset_0));
                                                                 |         if (r0 != 0) {
    0x00015d0c cbz r0, 0x15d16                                   |             
    0x00015d0e ldrb r3, [r0]                                     |             r3 = *(r0);
    0x00015d10 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00015d12 bne.w 0x15f56                                     |                 goto label_29;
                                                                 |             }
                                                                 |         }
    0x00015d16 vldr s16, [pc, 0x2c0]                             |         __asm ("vldr s16, case.0x3207a.11");
                                                                 | label_5:
    0x00015d1a ldrb.w sl, [r4, 0x1d]                             |         sl = *((r4 + 0x1d));
    0x00015d1e tst.w sl, 0x20                                    |         
    0x00015d22 and r3, sl, 8                                     |         r3 = sl & 8;
    0x00015d26 ite eq                                            |         
                                                                 |         if ((sl & 0x20) != 0) {
    0x00015d28 moveq r1, 7                                       |             r1 = 7;
                                                                 |         }
                                                                 |         if ((sl & 0x20) == 0) {
    0x00015d2a movne r1, 6                                       |             r1 = 6;
                                                                 |         }
    0x00015d2c cmp r1, r7                                        |         
                                                                 |         if (r1 >= r7) {
    0x00015d2e bge 0x15e0c                                       |             goto label_30;
                                                                 |         }
    0x00015d30 ldr r2, [sp, 0xd0]                                |         r2 = var_d0h;
    0x00015d32 ldr.w r7, [r2, r1, lsl 2]                         |         offset_1 = r1 << 2;
                                                                 |         r7 = *((r2 + offset_1));
    0x00015d36 cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x00015d38 beq.w 0x15fce                                     |             goto label_31;
                                                                 |         }
    0x00015d3c ldrb r2, [r7]                                     |         r2 = *(r7);
    0x00015d3e cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00015d40 beq.w 0x15fce                                     |             goto label_31;
                                                                 |         }
    0x00015d44 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00015d46 beq.w 0x16100                                     |             goto label_32;
                                                                 |         }
    0x00015d4a ldr r1, [pc, 0x2a4]                               |         
    0x00015d4c mov r0, r7                                        |         r0 = r7;
    0x00015d4e add r1, pc                                        |         r1 = 0x2bd44;
    0x00015d50 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00015d54 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015d56 beq.w 0x16122                                     |             goto label_33;
                                                                 |         }
    0x00015d5a ldr r1, [pc, 0x298]                               |         
    0x00015d5c mov r0, r7                                        |         r0 = r7;
    0x00015d5e add r1, pc                                        |         r1 = 0x2bd58;
    0x00015d60 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00015d64 mov r3, r0                                        |         r3 = r0;
    0x00015d66 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015d68 beq 0x15e16                                       |             goto label_10;
                                                                 |         }
    0x00015d6a ldr r1, [pc, 0x28c]                               |         
    0x00015d6c mov r0, r7                                        |         r0 = r7;
    0x00015d6e add r1, pc                                        |         r1 = 0x2bd6c;
    0x00015d70 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00015d74 mov r3, r0                                        |         r3 = r0;
    0x00015d76 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015d78 beq 0x15e16                                       |             goto label_10;
                                                                 |         }
    0x00015d7a ldr r1, [pc, 0x280]                               |         
    0x00015d7c mov r0, r7                                        |         r0 = r7;
    0x00015d7e add r1, pc                                        |         r1 = 0x2bd80;
    0x00015d80 blx 0xbc58                                        |         r0 = fcn_0000bc58 ();
    0x00015d84 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00015d86 beq.w 0x1611e                                     |             goto label_34;
                                                                 |         }
                                                                 | label_13:
    0x00015d8a ldr r4, [sp, 0x70]                                |         r4 = var_70h;
    0x00015d8c movw r1, 0xd52                                    |         r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00015d90 ldr r3, [pc, 0x26c]                               |         
    0x00015d92 ldr r0, [pc, 0x270]                               |         
    0x00015d94 ldr r2, [r4]                                      |         r2 = *(r4);
    0x00015d96 add r3, pc                                        |         r3 = 0x2bd9a;
    0x00015d98 add r0, pc                                        |         r0 = 0x2bda2;
    0x00015d9a bl 0x35d28                                        |         zbx_strdup2 ();
    0x00015d9e mov.w r3, -1                                      |         r3 = -1;
    0x00015da2 str r0, [r4]                                      |         *(r4) = r0;
    0x00015da4 str r3, [sp, 0x6c]                                |         var_6ch = r3;
                                                                 |         if (r5 != 0) {
                                                                 | label_2:
    0x00015da6 cbz r5, 0x15dae                                   |             
    0x00015da8 mov r0, r5                                        |             r0 = r5;
    0x00015daa blx 0xbd14                                        |             gai_strerror ();
                                                                 |         }
                                                                 | label_14:
    0x00015dae mov r0, r6                                        |         r0 = r6;
    0x00015db0 bl 0x16f88                                        |         free_request ();
    0x00015db4 ldr r2, [pc, 0x250]                               |         
    0x00015db6 ldr r3, [pc, 0x228]                               |         r3 = *(0x15fe2);
    0x00015db8 add r2, pc                                        |         r2 = 0x2bdc4;
    0x00015dba ldr r3, [r2, r3]                                  |         r3 = *(0x2bdc4);
    0x00015dbc ldr r2, [r3]                                      |         r2 = *(0x2bdc4);
    0x00015dbe ldr r3, [sp, 0x104]                               |         r3 = var_104h;
    0x00015dc0 eors r2, r3                                       |         r2 ^= r3;
    0x00015dc2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00015dc6 bne.w 0x162be                                     |             goto label_35;
                                                                 |         }
    0x00015dca ldr r0, [sp, 0x6c]                                |         r0 = var_6ch;
    0x00015dcc add sp, 0x10c                                     |         
    0x00015dce vpop {d8}                                         |         __asm ("vpop {d8}");
    0x00015dd2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_20:
    0x00015dd6 ldr r3, [pc, 0x234]                               |         
    0x00015dd8 mov r5, r0                                        |         r5 = r0;
    0x00015dda add r3, pc                                        |         r3 = 0x2bdec;
    0x00015ddc str r3, [sp, 0x6c]                                |         var_6ch = r3;
    0x00015dde str r3, [sp, 0x8c]                                |         var_8ch = r3;
                                                                 | label_4:
    0x00015de0 ldr r3, [pc, 0x22c]                               |         r3 = *(0x16010);
    0x00015de2 ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00015de6 ldr.w fp, [r3]                                    |         fp = *(0x16010);
    0x00015de8 add sp, 0                                         |         
    0x00015dea ldr r3, [sp, 0x68]                                |         r3 = var_68h;
    0x00015dec cmp r3, 0                                         |         
    0x00015dee beq.w 0x15ccc                                     |         
                                                                 |     } while (r3 == 0);
    0x00015df2 add.w fp, fp, fp, lsl 2                           |     
    0x00015df6 lsl.w fp, fp, 1                                   |     
    0x00015dfa b 0x15ccc                                         |     goto label_0;
                                                                 | label_24:
    0x00015dfc ldr r3, [pc, 0x214]                               |     
    0x00015dfe add r3, pc                                        |     r3 = 0x2be16;
    0x00015e00 str r3, [sp, 0x8c]                                |     var_8ch = r3;
    0x00015e02 b 0x15c76                                         |     goto label_1;
                                                                 | label_28:
    0x00015e04 vldr s16, [pc, 0x1d0]                             |     __asm ("vldr s16, case.0x3207a.11");
    0x00015e08 ldrb.w sl, [r4, 0x1d]                             |     sl = *((r4 + 0x1d));
                                                                 | label_30:
    0x00015e0c eor r3, sl, 8                                     |     r3 = sl ^ 8;
    0x00015e10 ubfx r3, r3, 3, 1                                 |     r3 = (r3 >> 3) & ((1 << 1) - 1);
    0x00015e14 lsls r3, r3, 1                                    |     r3 <<= 1;
                                                                 | label_10:
    0x00015e16 ldr r2, [r4, 0x10]                                |     r2 = *((r4 + 0x10));
    0x00015e18 add.w r0, r4, 0x18                                |     r0 = r4 + 0x18;
    0x00015e1c add.w ip, r4, 0x2c                                |     
    0x00015e20 ldr r7, [r4, 4]                                   |     r7 = *((r4 + 4));
    0x00015e22 add.w lr, r4, 0x38                                |     lr = r4 + 0x38;
    0x00015e26 mul fp, r2, fp                                    |     
    0x00015e2a ldr r2, [pc, 0x1ec]                               |     r2 = *(0x1601a);
    0x00015e2c str.w fp, [sp, 0xb0]                              |     __asm ("str.w fp, [var_b0h]");
    0x00015e30 ldr.w r1, [sb, r2]                                |     r1 = *((sb + r2));
    0x00015e34 add.w r2, r4, 8                                   |     r2 = r4 + 8;
    0x00015e38 str r0, [sp, 0x9c]                                |     var_9ch = r0;
    0x00015e3a add.w r0, r4, 0x1c                                |     r0 = r4 + 0x1c;
    0x00015e3e str r0, [sp, 0xa8]                                |     var_a8h = r0;
    0x00015e40 str r1, [sp, 0xac]                                |     var_ach = r1;
    0x00015e42 ldr r0, [r1]                                      |     r0 = *(r1);
    0x00015e44 add.w r1, r4, 0x24                                |     r1 = r4 + 0x24;
    0x00015e48 str r1, [sp, 0xa4]                                |     var_a4h = r1;
    0x00015e4a add.w r1, r4, 0x30                                |     r1 = r4 + 0x30;
    0x00015e4e str r1, [sp, 0x98]                                |     var_98h = r1;
    0x00015e50 ldr r1, [sp, 0x68]                                |     r1 = var_68h;
    0x00015e52 str r2, [sp, 0xa0]                                |     var_a0h = r2;
    0x00015e54 add.w r2, r4, 0x20                                |     r2 = r4 + 0x20;
    0x00015e58 str.w ip, [sp, 0x94]                              |     __asm ("str.w ip, [var_94h]");
    0x00015e5c add.w ip, r4, 0x40                                |     
    0x00015e60 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x00015e62 bne.w 0x1603c                                     |         goto label_36;
                                                                 |     }
    0x00015e66 strd ip, r3, [sp, 0x5c]                           |     __asm ("strd ip, r3, [var_5ch]");
    0x00015e6a ldr r3, [sp, 0x7c]                                |     r3 = var_7ch;
    0x00015e6c ldr r1, [sp, 0xa4]                                |     r1 = var_a4h;
    0x00015e6e strd r0, r7, [sp, 0x4c]                           |     __asm ("strd r0, r7, [var_4ch]");
    0x00015e72 mov r0, sl                                        |     r0 = sl;
    0x00015e74 str r3, [sp, 0x48]                                |     var_48h = r3;
    0x00015e76 ldr r3, [sp, 0x78]                                |     r3 = var_78h;
    0x00015e78 strd r2, r1, [sp, 0xc]                            |     __asm ("strd r2, r1, [var_ch]");
    0x00015e7c ldr r2, [sp, 0x88]                                |     r2 = var_88h;
    0x00015e7e str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00015e80 ldr r3, [sp, 0x80]                                |     r3 = var_80h;
    0x00015e82 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00015e84 ldr r2, [sp, 0x84]                                |     r2 = var_84h;
    0x00015e86 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x00015e88 ldr r3, [sp, 0x90]                                |     r3 = var_90h;
    0x00015e8a str r2, [sp]                                      |     *(sp) = r2;
    0x00015e8c add.w r2, fp, fp, lsl 2                           |     r2 = fp + (fp << 2);
    0x00015e90 ldr r1, [sp, 0xa8]                                |     r1 = var_a8h;
    0x00015e92 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00015e94 lsls r2, r2, 1                                    |     r2 <<= 1;
    0x00015e96 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00015e98 ldr r7, [sp, 0x70]                                |     r7 = var_70h;
    0x00015e9a str r1, [sp, 8]                                   |     var_8h = r1;
    0x00015e9c mov r1, r8                                        |     r1 = r8;
    0x00015e9e str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00015ea0 ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00015ea2 str.w lr, [sp, 0x58]                              |     __asm ("str.w lr, [var_58h]");
    0x00015ea6 str r2, [sp, 0xc0]                                |     var_c0h = r2;
    0x00015ea8 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00015eaa ldr r3, [sp, 0x8c]                                |     r3 = var_8ch;
    0x00015eac ldr r2, [sp, 0xa0]                                |     r2 = var_a0h;
    0x00015eae vmov.f32 s0, s16                                  |     __asm ("vmov.f32 s0, s16");
    0x00015eb2 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00015eb4 ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x00015eb6 str r7, [sp, 0x14]                                |     var_14h = r7;
    0x00015eb8 ldr r7, [sp, 0x94]                                |     r7 = var_94h;
    0x00015eba str r7, [sp, 0x1c]                                |     var_1ch = r7;
    0x00015ebc ldr r7, [sp, 0x98]                                |     r7 = var_98h;
    0x00015ebe str r7, [sp, 0x18]                                |     var_18h = r7;
    0x00015ec0 add r7, sp, 0xb8                                  |     r7 += var_b8h;
    0x00015ec2 str r7, [sp, 0x54]                                |     var_54h = r7;
    0x00015ec4 add r7, sp, 0xb0                                  |     r7 += var_b0h;
    0x00015ec6 str r7, [sp, 0x3c]                                |     var_3ch = r7;
    0x00015ec8 add r7, sp, 0xc0                                  |     r7 += var_c0h;
    0x00015eca str r7, [sp, 0x38]                                |     var_38h = r7;
    0x00015ecc add r7, sp, 0xb4                                  |     r7 += var_b4h;
    0x00015ece str r7, [sp, 0x24]                                |     var_24h = r7;
    0x00015ed0 add r7, sp, 0xbc                                  |     r7 += var_bch;
    0x00015ed2 str r7, [sp, 0x20]                                |     var_20h = r7;
    0x00015ed4 bl 0x137d0                                        |     process_logrt ();
    0x00015ed8 ldr.w r8, [sp, 0xbc]                              |     r8 = var_bch;
    0x00015edc str r0, [sp, 0x6c]                                |     var_6ch = r0;
    0x00015ede cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00015ee2 beq 0x15ef6                                       |         
    0x00015ee4 ldr r2, [sp, 0x94]                                |         r2 = var_94h;
    0x00015ee6 ldr r1, [sp, 0x68]                                |         r1 = var_68h;
    0x00015ee8 ldr r0, [sp, 0x98]                                |         r0 = var_98h;
    0x00015eea bl 0x13780                                        |         destroy_logfile_list ();
    0x00015eee ldr r3, [sp, 0xb4]                                |         r3 = var_b4h;
    0x00015ef0 str.w r8, [r4, 0x30]                              |         __asm ("str.w r8, [r4, 0x30]");
    0x00015ef4 str r3, [r4, 0x2c]                                |         *((r4 + 0x2c)) = r3;
                                                                 |     }
    0x00015ef6 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00015ef8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015efa beq.w 0x160fa                                     |         goto label_37;
                                                                 |     }
    0x00015efe ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x00015f00 adds r2, 1                                        |     r2++;
    0x00015f02 str r2, [r4, 0x28]                                |     *((r4 + 0x28)) = r2;
                                                                 | label_11:
    0x00015f04 cmp r2, 2                                         |     
                                                                 |     if (r2 > 2) {
    0x00015f06 bgt.w 0x15da6                                     |         goto label_2;
                                                                 |     }
    0x00015f0a ldr r3, [pc, 0x110]                               |     
    0x00015f0c ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x00015f10 ldr r3, [r3]                                      |     r3 = *(0x1601e);
    0x00015f12 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00015f14 ble 0x15f2a                                       |         
    0x00015f16 ldr r3, [sp, 0x70]                                |         r3 = var_70h;
    0x00015f18 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00015f1a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00015f1c beq.w 0x16206                                     |             goto label_38;
                                                                 |         }
                                                                 | label_15:
    0x00015f20 ldr r1, [pc, 0xfc]                                |         
    0x00015f22 movs r0, 4                                        |         r0 = 4;
    0x00015f24 add r1, pc                                        |         r1 = 0x2bf48;
    0x00015f26 bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
    0x00015f2a ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00015f2c ldr r0, [r4]                                      |     r0 = *(r4);
    0x00015f2e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00015f30 beq.w 0x161c2                                     |         goto label_39;
                                                                 |     }
    0x00015f34 blx 0xbd14                                        |     gai_strerror ();
    0x00015f38 movs r3, 0                                        |     r3 = 0;
    0x00015f3a str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00015f3c str r3, [r4]                                      |     *(r4) = r3;
    0x00015f3e b 0x15da6                                         |     goto label_2;
                                                                 | label_21:
    0x00015f40 ldr r3, [pc, 0xe0]                                |     
    0x00015f42 cmp r7, 2                                         |     
    0x00015f44 add r3, pc                                        |     r3 = 0x2bf6c;
    0x00015f46 str r3, [sp, 0x6c]                                |     var_6ch = r3;
                                                                 |     if (r7 > 2) {
    0x00015f48 bgt.w 0x15c52                                     |         goto label_3;
                                                                 |     }
                                                                 | label_23:
    0x00015f4c ldr r3, [pc, 0xd8]                                |     
    0x00015f4e movs r5, 0                                        |     r5 = 0;
    0x00015f50 add r3, pc                                        |     r3 = 0x2bf7c;
    0x00015f52 str r3, [sp, 0x8c]                                |     var_8ch = r3;
    0x00015f54 b 0x15de0                                         |     goto label_4;
                                                                 | label_29:
    0x00015f56 add r1, sp, 0xc0                                  |     r1 += var_c0h;
    0x00015f58 bl 0x365b0                                        |     r0 = is_double ();
    0x00015f5c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00015f5e bne.w 0x1627e                                     |         goto label_40;
                                                                 |     }
    0x00015f62 vldr d8, [sp, 0xc0]                               |     __asm ("vldr d8, [sp, 0xc0]");
    0x00015f66 vcmpe.f64 d8, 0                                   |     __asm ("vcmpe.f64 d8, 0");
    0x00015f6a vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 0) {
    0x00015f6e bmi.w 0x1627e                                     |         goto label_40;
                                                                 |     }
    0x00015f72 vcvt.f32.f64 s16, d8                              |     __asm ("vcvt.f32.f64 s16, d8");
    0x00015f76 ldr r7, [sp, 0xcc]                                |     r7 = var_cch;
    0x00015f78 b 0x15d1a                                         |     goto label_5;
                                                                 | label_26:
    0x00015f7a ldr r1, [pc, 0xb0]                                |     
    0x00015f7c mov r0, r3                                        |     r0 = r3;
    0x00015f7e str r3, [sp, 0x90]                                |     var_90h = r3;
    0x00015f80 add r1, pc                                        |     r1 = 0x2bfb2;
    0x00015f82 blx 0xbc58                                        |     fcn_0000bc58 ();
    0x00015f86 ldr r3, [sp, 0x90]                                |     r3 = var_90h;
    0x00015f88 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00015f8a beq.w 0x15cde                                     |         goto label_6;
                                                                 |     }
    0x00015f8e ldr r1, [pc, 0xa0]                                |     
    0x00015f90 mov r0, r3                                        |     r0 = r3;
    0x00015f92 add r1, pc                                        |     r1 = 0x2bfc8;
    0x00015f94 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00015f98 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00015f9a beq.w 0x15ce2                                     |         goto label_7;
                                                                 |     }
    0x00015f9e ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00015fa0 movw r1, 0xdb3                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00015fa4 ldr r3, [pc, 0x8c]                                |     
    0x00015fa6 ldr r0, [pc, 0x90]                                |     
    0x00015fa8 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00015faa add r3, pc                                        |     r3 = 0x2bfe2;
    0x00015fac add r0, pc                                        |     r0 = 0x2bfea;
    0x00015fae bl 0x35d28                                        |     zbx_strdup2 ();
    0x00015fb2 mov.w r3, -1                                      |     r3 = -1;
    0x00015fb6 str r0, [r4]                                      |     *(r4) = r0;
    0x00015fb8 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00015fba b 0x15da6                                         |     goto label_2;
                                                                 | label_27:
    0x00015fbc ldr r3, [sp, 0xd0]                                |     r3 = var_d0h;
    0x00015fbe ldr r3, [r3, 0x14]                                |     r3 = *((r3 + 0x14));
    0x00015fc0 str r3, [sp, 0x90]                                |     var_90h = r3;
    0x00015fc2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015fc4 beq.w 0x15cf8                                     |         goto label_8;
                                                                 |     }
    0x00015fc8 mov.w sl, 6                                       |     sl = 6;
    0x00015fcc b 0x15d02                                         |     goto label_9;
                                                                 | label_31:
    0x00015fce clz r3, r3                                        |     r3 &= r3;
    0x00015fd2 lsrs r3, r3, 5                                    |     r3 >>= 5;
    0x00015fd4 lsls r3, r3, 1                                    |     r3 <<= 1;
    0x00015fd6 b 0x15e16                                         |     goto label_10;
                                                                 | label_36:
    0x0001603c strd ip, r3, [sp, 0x5c]                           |     __asm ("strd ip, r3, [var_5ch]");
    0x00016040 ldr r3, [sp, 0x90]                                |     r3 = var_90h;
    0x00016042 ldr r1, [sp, 0xa8]                                |     r1 = var_a8h;
    0x00016044 strd r0, r7, [sp, 0x4c]                           |     __asm ("strd r0, r7, [var_4ch]");
    0x00016048 mov r0, sl                                        |     r0 = sl;
    0x0001604a str r3, [sp, 0x34]                                |     var_34h = r3;
    0x0001604c add.w sl, sp, 0xbc                                |     sl += var_bch;
    0x00016050 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00016052 str r1, [sp, 8]                                   |     var_8h = r1;
    0x00016054 mov r1, r8                                        |     r1 = r8;
    0x00016056 str.w lr, [sp, 0x58]                              |     __asm ("str.w lr, [var_58h]");
    0x0001605a add.w r8, sp, 0xb4                                |     r8 += var_b4h;
    0x0001605e str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00016060 ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x00016062 str.w fp, [sp, 0xc0]                              |     __asm ("str.w fp, [var_c0h]");
    0x00016066 vmov.f32 s0, s16                                  |     __asm ("vmov.f32 s0, s16");
    0x00016068 lsrs r0, r1, 9                                    |     r0 = r1 >> 9;
    0x0001606a str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x0001606c ldr r3, [sp, 0x8c]                                |     r3 = var_8ch;
    0x0001606e str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00016070 ldr r3, [sp, 0xa4]                                |     r3 = var_a4h;
    0x00016072 strd r2, r3, [sp, 0xc]                            |     __asm ("strd r2, r3, [var_ch]");
    0x00016076 ldr r3, [sp, 0x88]                                |     r3 = var_88h;
    0x00016078 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0001607a ldr r3, [sp, 0x84]                                |     r3 = var_84h;
    0x0001607c str r3, [sp]                                      |     *(sp) = r3;
    0x0001607e ldr r3, [sp, 0x7c]                                |     r3 = var_7ch;
    0x00016080 str r3, [sp, 0x48]                                |     var_48h = r3;
    0x00016082 ldr r3, [sp, 0x78]                                |     r3 = var_78h;
    0x00016084 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00016086 ldr r3, [sp, 0x80]                                |     r3 = var_80h;
    0x00016088 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x0001608a ldr r3, [sp, 0x94]                                |     r3 = var_94h;
    0x0001608c str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0001608e ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00016090 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00016092 ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x00016094 str.w r8, [sp, 0x24]                              |     __asm ("str.w r8, [var_24h]");
    0x00016098 str.w sl, [sp, 0x20]                              |     __asm ("str.w sl, [var_20h]");
    0x0001609c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001609e add r3, sp, 0xb8                                  |     r3 += var_b8h;
    0x000160a0 str r3, [sp, 0x54]                                |     var_54h = r3;
    0x000160a2 add r3, sp, 0xb0                                  |     r3 += var_b0h;
    0x000160a4 str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x000160a6 add r3, sp, 0xc0                                  |     r3 += var_c0h;
    0x000160a8 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x000160aa ldr r7, [r4, 0x18]                                |     r7 = *((r4 + 0x18));
    0x000160ac ldrd r3, r2, [sp, 0x9c]                           |     __asm ("ldrd r3, r2, [var_9ch]");
    0x000160b0 vldr d8, [r4, 8]                                  |     __asm ("vldr d8, [r4, 8]");
    0x000160b4 str r7, [sp, 0x68]                                |     var_68h = r7;
    0x000160b6 ldr r7, [r4, 0x20]                                |     r7 = *((r4 + 0x20));
    0x000160b8 str r7, [sp, 0x74]                                |     var_74h = r7;
    0x000160ba bl 0x137d0                                        |     process_logrt ();
    0x000160be str r0, [sp, 0x6c]                                |     var_6ch = r0;
    0x000160c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000160c2 beq 0x16150                                       |         goto label_41;
                                                                 |     }
    0x000160c4 ldr r3, [sp, 0x68]                                |     r3 = var_68h;
    0x000160c6 mov r2, r8                                        |     r2 = r8;
    0x000160c8 mov r0, sl                                        |     r0 = sl;
    0x000160ca movs r1, 0                                        |     r1 = 0;
    0x000160cc vstr d8, [r4, 8]                                  |     __asm ("vstr d8, [r4, 8]");
    0x000160d0 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x000160d2 ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x000160d4 str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x000160d6 ldr r3, [r4, 0x28]                                |     r3 = *((r4 + 0x28));
    0x000160d8 adds r3, 1                                        |     r3++;
    0x000160da str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x000160dc bl 0x13780                                        |     destroy_logfile_list ();
    0x000160e0 ldr r2, [r4, 0x28]                                |     r2 = *((r4 + 0x28));
    0x000160e2 b 0x15f04                                         |     goto label_11;
                                                                 | label_22:
    0x000160e4 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x000160e6 ldr r1, [sp, 0x74]                                |     r1 = var_74h;
    0x000160e8 adds r5, r3, 1                                    |     r5 = r3 + 1;
    0x000160ea mov r0, r5                                        |     r0 = r5;
    0x000160ec bl 0x28374                                        |     r0 = zbx_global_regexp_exists ();
    0x000160f0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000160f2 bne.w 0x162a6                                     |         goto label_42;
                                                                 |     }
    0x000160f6 ldr r7, [sp, 0xcc]                                |     r7 = var_cch;
    0x000160f8 b 0x15c4c                                         |     goto label_12;
                                                                 | label_37:
    0x000160fa ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x000160fc str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x000160fe b 0x15da6                                         |     goto label_2;
                                                                 | label_32:
    0x00016100 ldr r1, [pc, 0x1c0]                               |     
    0x00016102 mov r0, r7                                        |     r0 = r7;
    0x00016104 add r1, pc                                        |     r1 = 0x2c3cc;
    0x00016106 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x0001610a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001610c beq 0x161e4                                       |         goto label_43;
                                                                 |     }
    0x0001610e ldr r1, [pc, 0x1b8]                               |     
    0x00016110 mov r0, r7                                        |     r0 = r7;
    0x00016112 add r1, pc                                        |     r1 = 0x2c3e0;
    0x00016114 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00016118 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001611a bne.w 0x15d8a                                     |         goto label_13;
                                                                 |     }
    0x0001611c add r6, sp, 0xd8                                  |     r6 = sp + 0xd8;
                                                                 | label_34:
    0x0001611e movs r3, 3                                        |     r3 = 3;
    0x00016120 b 0x15e16                                         |     goto label_10;
                                                                 | label_33:
    0x00016122 vcmp.f32 s16, 0                                   |     __asm ("vcmp.f32 s16, 0");
    0x00016126 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x00016128 invalid                                           |     
    0x0001612c movs r3, 1                                        |     r3 = 1;
                                                                 |     if (r3 == 1) {
    0x0001612e beq.w 0x15e16                                     |         goto label_10;
                                                                 |     }
    0x00016132 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00016134 movw r1, 0xdc6                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00016138 ldr r3, [pc, 0x190]                               |     
    0x0001613a ldr r0, [pc, 0x194]                               |     
    0x0001613c ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001613e add r3, pc                                        |     r3 = 0x2c40e;
    0x00016140 add r0, pc                                        |     r0 = 0x2c416;
    0x00016142 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00016146 mov.w r3, -1                                      |     r3 = -1;
    0x00016148 adds r3, 0xff                                     |     r3 += 0xff;
    0x0001614a str r0, [r4]                                      |     *(r4) = r0;
    0x0001614c str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x0001614e b 0x15da6                                         |     goto label_2;
                                                                 | label_41:
    0x00016150 ldr r7, [sp, 0x6c]                                |     r7 = var_6ch;
    0x00016152 add.w sb, sp, 0xec                                |     sb += var_ech;
    0x00016154 lsrs r4, r5, 7                                    |     r4 = r5 >> 7;
    0x00016156 ldr r3, [sp, 0xb0]                                |     r3 = var_b0h;
    0x00016158 movs r1, 0x15                                     |     r1 = 0x15;
    0x0001615a ldr r2, [pc, 0x178]                               |     
    0x0001615c mov r0, sb                                        |     r0 = sb;
    0x0001615e str r7, [r4, 0x28]                                |     *((r4 + 0x28)) = r7;
    0x00016160 sub.w r3, fp, r3                                  |     r3 = fp - r3;
    0x00016164 add r2, pc                                        |     r2 = 0x2c43e;
    0x00016166 bl 0x38ea0                                        |     zbx_snprintf ();
    0x0001616a ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x0001616c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00016170 ldrd r0, r1, [sp, 0x78]                           |     __asm ("ldrd r0, r1, [var_7ch]");
    0x00016174 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00016176 ldr r3, [sp, 0xa0]                                |     r3 = var_a0h;
    0x00016178 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0001617a ldr r3, [sp, 0xac]                                |     r3 = var_ach;
    0x0001617c ldr r2, [r3]                                      |     r2 = *(r3);
    0x0001617e strd r7, r7, [sp, 0x18]                           |     __asm ("strd r7, r7, [var_1ch]");
    0x00016182 strd r7, r7, [sp, 0x10]                           |     __asm ("strd r7, r7, [var_14h]");
    0x00016186 str r7, [sp, 4]                                   |     var_4h = r7;
    0x00016188 ldrb r3, [r4, 0x1d]                               |     r3 = *((r4 + 0x1d));
    0x0001618a ldr r7, [sp, 0x80]                                |     r7 = var_80h;
    0x0001618c orr r3, r3, 1                                     |     r3 |= 1;
    0x00016190 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00016192 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00016194 blx r7                                            |     r0 = uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
                                                                 |     if (r0 != 0) {
    0x00016196 cbz r0, 0x1619e                                   |         
    0x00016198 ldr r3, [sp, 0xb8]                                |         r3 = var_b8h;
    0x0001619a cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0001619c beq 0x1620c                                       |             goto label_44;
                                                                 |         }
                                                                 |     }
    0x0001619e ldrd sl, fp, [r4, 8]                              |     __asm ("ldrd sl, fp, [r4, 8]");
    0x000161a2 movs r1, 0                                        |     r1 = 0;
    0x000161a4 ldr r7, [sp, 0x84]                                |     r7 = var_84h;
    0x000161a6 ldr r3, [r4, 0x18]                                |     r3 = *((r4 + 0x18));
    0x000161a8 ldrd r2, r0, [sp, 0x94]                           |     __asm ("ldrd r2, r0, [var_98h]");
    0x000161ac strd sl, fp, [r7]                                 |     __asm ("strd sl, fp, [r7]");
    0x000161b0 ldr r7, [sp, 0x88]                                |     r7 = var_88h;
    0x000161b2 str r3, [r7]                                      |     *(r7) = r3;
    0x000161b4 bl 0x13780                                        |     destroy_logfile_list ();
    0x000161b8 ldr r3, [sp, 0xbc]                                |     r3 = var_bch;
    0x000161ba str r3, [r4, 0x30]                                |     *((r4 + 0x30)) = r3;
    0x000161bc ldr r3, [sp, 0xb4]                                |     r3 = var_b4h;
    0x000161be str r3, [r4, 0x2c]                                |     *((r4 + 0x2c)) = r3;
    0x000161c0 b 0x15da6                                         |     goto label_2;
                                                                 | label_39:
    0x000161c2 str r0, [sp, 0x6c]                                |     var_6ch = r0;
    0x000161c4 b 0x15da6                                         |     goto label_2;
                                                                 | label_19:
    0x000161c6 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x000161c8 movw r1, 0xd8a                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000161cc ldr r3, [pc, 0x108]                               |     
    0x000161ce ldr r0, [pc, 0x10c]                               |     
    0x000161d0 ldr r2, [r4]                                      |     r2 = *(r4);
    0x000161d2 add r3, pc                                        |     r3 = 0x2c4ae;
    0x000161d4 add r0, pc                                        |     r0 = 0x2c4b6;
    0x000161d6 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000161da mov.w r3, -1                                      |     r3 = -1;
    0x000161de str r0, [r4]                                      |     *(r4) = r0;
    0x000161e0 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x000161e2 b 0x15dae                                         |     goto label_14;
                                                                 | label_43:
    0x000161e4 movs r3, 2                                        |     r3 = 2;
    0x000161e6 b 0x15e16                                         |     goto label_10;
                                                                 | label_16:
    0x000161e8 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x000161ea movw r1, 0xd7f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000161ee ldr r3, [pc, 0xf0]                                |     
    0x000161f0 ldr r0, [pc, 0xf0]                                |     
    0x000161f2 ldr r2, [r4]                                      |     r2 = *(r4);
    0x000161f4 add r3, pc                                        |     r3 = 0x2c4da;
    0x000161f6 add r0, pc                                        |     r0 = 0x2c4de;
    0x000161f8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000161fc mov.w r3, -1                                      |     r3 = -1;
    0x00016200 str r0, [r4]                                      |     *(r4) = r0;
    0x00016202 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00016204 b 0x15dae                                         |     goto label_14;
                                                                 | label_38:
    0x00016206 ldr r3, [pc, 0xe0]                                |     
    0x00016208 add r3, pc                                        |     r3 = 0x2c4f6;
    0x0001620a b 0x15f20                                         |     goto label_15;
                                                                 | label_44:
    0x0001620c ldr r3, [sp, 0x68]                                |     r3 = var_68h;
    0x0001620e mov r2, r8                                        |     r2 = r8;
    0x00016210 ldr r1, [sp, 0x6c]                                |     r1 = var_6ch;
    0x00016212 mov r0, sl                                        |     r0 = sl;
    0x00016214 vstr d8, [r4, 8]                                  |     __asm ("vstr d8, [r4, 8]");
    0x00016218 str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x0001621a ldr r3, [sp, 0x74]                                |     r3 = var_74h;
    0x0001621c str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x0001621e bl 0x13780                                        |     destroy_logfile_list ();
    0x00016222 b 0x15da6                                         |     goto label_2;
                                                                 | label_25:
    0x00016224 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00016226 movw r1, 0xcff                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001622a ldr r3, [pc, 0xc0]                                |     r3 = *(0x162ee);
    0x0001622c ldr r0, [pc, 0xc0]                                |     
    0x0001622e ldr r2, [r4]                                      |     r2 = *(r4);
    0x00016230 add r3, pc                                        |     r3 += pc;
    0x00016232 add r0, pc                                        |     r0 = 0x2c526;
    0x00016234 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00016238 mov.w r3, -1                                      |     r3 = -1;
    0x0001623c str r0, [r4]                                      |     *(r4) = r0;
    0x0001623e str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x00016240 b 0x15da6                                         |     goto label_2;
                                                                 | label_18:
    0x00016242 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00016244 movw r1, 0xcdc                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00016248 ldr r3, [pc, 0xa8]                                |     
    0x0001624a ldr r0, [pc, 0xac]                                |     
    0x0001624c ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001624e add r3, pc                                        |     r3 = 0x2c546;
    0x00016250 add r0, pc                                        |     r0 = 0x2c54e;
    0x00016252 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00016256 mov.w r3, -1                                      |     r3 = -1;
    0x0001625a str r0, [r4]                                      |     *(r4) = r0;
    0x0001625c str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x0001625e b 0x15dae                                         |     goto label_14;
                                                                 | label_17:
    0x00016260 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x00016262 movw r1, 0xcd1                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00016266 ldr r3, [pc, 0x94]                                |     
    0x00016268 ldr r0, [pc, 0x94]                                |     
    0x0001626a ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001626c add r3, pc                                        |     r3 = 0x2c56e;
    0x0001626e add r0, pc                                        |     r0 = 0x2c572;
    0x00016270 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00016274 mov.w r3, -1                                      |     r3 = -1;
    0x00016278 str r0, [r4]                                      |     *(r4) = r0;
    0x0001627a str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x0001627c b 0x15dae                                         |     goto label_14;
                                                                 | label_40:
    0x0001627e ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x00016280 cmp.w sl, 5                                       |     
    0x00016284 ldr r0, [r3]                                      |     r0 = *(r3);
                                                                 |     if (sl == 5) {
    0x00016286 beq 0x162a0                                       |         goto label_45;
                                                                 |     }
    0x00016288 ldr r2, [pc, 0x78]                                |     
    0x0001628a add r2, pc                                        |     r2 = 0x2c592;
                                                                 |     do {
    0x0001628c ldr r1, [pc, 0x78]                                |         
    0x0001628e add r1, pc                                        |         r1 = 0x2c59a;
    0x00016290 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00016294 mov.w r3, -1                                      |         r3 = -1;
    0x00016298 str r3, [sp, 0x6c]                                |         var_6ch = r3;
    0x0001629a ldr r3, [sp, 0x70]                                |         r3 = var_70h;
    0x0001629c str r0, [r3]                                      |         *(r3) = r0;
    0x0001629e b 0x15da6                                         |         goto label_2;
                                                                 | label_45:
    0x000162a0 ldr r2, [pc, 0x68]                                |         
    0x000162a2 add r2, pc                                        |         r2 = 0x2c5b2;
    0x000162a4 b 0x1628c                                         |         
                                                                 |     } while (1);
                                                                 | label_42:
    0x000162a6 ldr r4, [sp, 0x70]                                |     r4 = var_70h;
    0x000162a8 mov r2, r5                                        |     r2 = r5;
    0x000162aa ldr r1, [pc, 0x64]                                |     
    0x000162ac ldr r0, [r4]                                      |     r0 = *(r4);
    0x000162ae add r1, pc                                        |     r1 = 0x2c5c4;
    0x000162b0 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000162b4 mov.w r3, -1                                      |     r3 = -1;
    0x000162b8 str r0, [r4]                                      |     *(r4) = r0;
    0x000162ba str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x000162bc b 0x15dae                                         |     goto label_14;
                                                                 | label_35:
    0x000162be blx 0xbe48                                        |     fcn_0000be48 ();
    0x000162c2 nop                                               |     
    0x000162c4 invalid                                           |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x137d0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.process_logrt ()                                 | void process_logrt (int16_t arg_0h, int16_t arg_238h, int16_t arg_23ch, int16_t arg_240h, int16_t arg_244h, int16_t arg_248h, int16_t arg_24ch, int16_t arg_250h, int16_t arg_254h, int16_t arg_258h, int16_t arg_25ch, int16_t arg_260h, int16_t arg_264h, int16_t arg_268h, int16_t arg_26ch, int16_t arg_270h, int16_t arg_278h, int16_t arg_27ch, int16_t arg_280h, int16_t arg_284h, int16_t arg_288h, int16_t arg_28ch, int16_t arg_290h, int16_t arg_294h, int16_t arg_298h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_8h_2;
                                                                 |     int16_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int32_t var_38h_2;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_78h;
                                                                 |     int16_t var_7ch;
                                                                 |     int16_t var_80h;
                                                                 |     int16_t var_84h;
                                                                 |     int16_t var_88h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_94h;
                                                                 |     int16_t var_98h;
                                                                 |     int16_t var_9ch;
                                                                 |     int16_t var_a0h;
                                                                 |     int16_t var_a4h;
                                                                 |     int16_t var_a8h;
                                                                 |     int16_t var_ach;
                                                                 |     int16_t var_b0h;
                                                                 |     int16_t var_b4h;
                                                                 |     int16_t var_b8h;
                                                                 |     int16_t var_bch;
                                                                 |     int16_t var_c0h;
                                                                 |     int16_t var_c4h;
                                                                 |     int16_t var_c8h;
                                                                 |     int16_t var_cch;
                                                                 |     int16_t var_d0h;
                                                                 |     int16_t var_d4h;
                                                                 |     int16_t var_d8h;
                                                                 |     int16_t var_dch;
                                                                 |     int16_t var_e0h;
                                                                 |     int16_t var_e4h;
                                                                 |     int16_t var_e8h;
                                                                 |     int16_t var_ech;
                                                                 |     int16_t var_f0h;
                                                                 |     int16_t var_f4h;
                                                                 |     int16_t var_f8h;
                                                                 |     int16_t var_fch;
                                                                 |     int16_t var_100h;
                                                                 |     int16_t var_108h;
                                                                 |     int16_t var_10ch;
                                                                 |     int16_t var_110h;
                                                                 |     int16_t var_120h;
                                                                 |     int16_t var_160h;
                                                                 |     int16_t var_178h;
                                                                 |     int16_t var_1d4h;
                                                                 |     int16_t var_1e4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x000137d0 svcmi 0xf0e92d                                    |     __asm ("svcmi case.0x3207a.11");
    0x000137d4 ldr.w r5, [pc, 0xaec]                             |     
    0x000137d8 ldr.w r4, [pc, 0xaec]                             |     r4 = *(0x142c8);
    0x000137dc add r5, pc                                        |     r5 = 0x27aa4;
    0x000137de vpush {d8, d9, d10, d11, d12}                     |     __asm ("vpush {d8, d9, d10, d11, d12}");
    0x000137e2 sub sp, 0x1ec                                     |     
    0x000137e4 vmov.f32 s16, s0                                  |     __asm ("vmov.f32 s16, s0");
    0x000137e8 ldr r4, [r5, r4]                                  |     
    0x000137ea ldr r4, [r4]                                      |     r4 = *(0x27aa4);
    0x000137ec str r4, [sp, 0x1e4]                               |     var_1e4h = r4;
    0x000137ee mov.w r4, 0                                       |     r4 = 0;
    0x000137f2 ldr r4, [sp, 0x238]                               |     r4 = *(arg_238h);
    0x000137f4 str r2, [sp, 0x28]                                |     var_28h = r2;
    0x000137f6 movs r2, 0                                        |     r2 = 0;
    0x000137f8 str r3, [sp, 0x6c]                                |     var_6ch = r3;
    0x000137fa str r4, [sp, 0xc0]                                |     var_c0h = r4;
    0x000137fc mov r4, r1                                        |     r4 = r1;
    0x000137fe ldr.w r1, [pc, 0xacc]                             |     
    0x00013802 strd r2, r2, [sp, 0xf0]                           |     __asm ("strd r2, r2, [var_f0h]");
    0x00013806 str r2, [sp, 0xf8]                                |     var_f8h = r2;
    0x00013808 ldr.w r3, [pc, 0xac4]                             |     r3 = *(0x142d0);
    0x0001380c add r1, pc                                        |     r1 = 0x27ade;
    0x0001380e ldr r2, [sp, 0x23c]                               |     r2 = *(arg_23ch);
    0x00013810 str r0, [sp, 0x98]                                |     var_98h = r0;
    0x00013812 ldr r3, [r1, r3]                                  |     
    0x00013814 str r2, [sp, 0xc4]                                |     var_c4h = r2;
    0x00013816 ldr r2, [sp, 0x240]                               |     r2 = *(arg_240h);
    0x00013818 str r3, [sp, 0x64]                                |     var_64h = r3;
    0x0001381a ldr r3, [r3]                                      |     r3 = *(0x27ade);
    0x0001381c str r2, [sp, 0x94]                                |     var_94h = r2;
    0x0001381e ldr r2, [sp, 0x244]                               |     r2 = *(arg_244h);
    0x00013820 cmp r3, 3                                         |     
    0x00013822 str r2, [sp, 0xc8]                                |     var_c8h = r2;
    0x00013824 ldr r2, [sp, 0x248]                               |     r2 = *(arg_248h);
    0x00013826 str r2, [sp, 0x38]                                |     var_38h = r2;
    0x00013828 ldr r2, [sp, 0x24c]                               |     r2 = *(arg_24ch);
    0x0001382a str r2, [sp, 0x88]                                |     var_88h = r2;
    0x0001382c ldr r2, [sp, 0x250]                               |     r2 = *(arg_250h);
    0x0001382e str r2, [sp, 0x40]                                |     var_40h = r2;
    0x00013830 ldr r2, [sp, 0x254]                               |     r2 = *(arg_254h);
    0x00013832 str r2, [sp, 0x34]                                |     var_34h = r2;
    0x00013834 ldr r2, [sp, 0x258]                               |     r2 = *(arg_258h);
    0x00013836 str r2, [sp, 0xe0]                                |     var_e0h = r2;
    0x00013838 ldr r2, [sp, 0x25c]                               |     r2 = *(arg_25ch);
    0x0001383a ldrd fp, sb, [sp, 0x270]                          |     __asm ("ldrd fp, sb, [arg_270h]");
    0x0001383e str r2, [sp, 0xdc]                                |     var_dch = r2;
    0x00013840 ldr r2, [sp, 0x260]                               |     r2 = *(arg_260h);
    0x00013842 str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x00013844 ldr r2, [sp, 0x264]                               |     r2 = *(arg_264h);
    0x00013846 str r2, [sp, 0x58]                                |     var_58h = r2;
    0x00013848 ldr r2, [sp, 0x268]                               |     r2 = *(arg_268h);
    0x0001384a str r2, [sp, 0x5c]                                |     var_5ch = r2;
    0x0001384c ldr r2, [sp, 0x26c]                               |     r2 = *(arg_26ch);
    0x0001384e str r2, [sp, 0x8c]                                |     var_8ch = r2;
    0x00013850 ldr r2, [sp, 0x278]                               |     r2 = *(arg_278h);
    0x00013852 str r2, [sp, 0xb0]                                |     var_b0h = r2;
    0x00013854 ldr r2, [sp, 0x27c]                               |     r2 = *(arg_27ch);
    0x00013856 str r2, [sp, 0xb4]                                |     var_b4h = r2;
    0x00013858 ldrh.w r2, [sp, 0x280]                            |     r2 = *(arg_280h);
    0x0001385c str r2, [sp, 0xb8]                                |     var_b8h = r2;
    0x0001385e ldr r2, [sp, 0x284]                               |     r2 = *(arg_284h);
    0x00013860 str r2, [sp, 0xbc]                                |     var_bch = r2;
    0x00013862 ldr r2, [sp, 0x288]                               |     r2 = *(arg_288h);
    0x00013864 str r2, [sp, 0xa8]                                |     var_a8h = r2;
    0x00013866 ldr r2, [sp, 0x28c]                               |     r2 = *(arg_28ch);
    0x00013868 str r2, [sp, 0x48]                                |     var_48h = r2;
    0x0001386a ldr r2, [sp, 0x290]                               |     r2 = *(arg_290h);
    0x0001386c str r2, [sp, 0xd4]                                |     var_d4h = r2;
    0x0001386e ldr r2, [sp, 0x294]                               |     r2 = *(arg_294h);
    0x00013870 str r2, [sp, 0xe8]                                |     var_e8h = r2;
                                                                 |     if (r3 > 3) {
    0x00013872 bgt.w 0x13f88                                     |         goto label_111;
                                                                 |     }
                                                                 | label_5:
    0x00013876 ldr r6, [sp, 0x6c]                                |     r6 = var_6ch;
    0x00013878 movs r0, 0                                        |     r0 = 0;
    0x0001387a ldr r5, [r6]                                      |     r5 = *(r6);
    0x0001387c blx 0xbdb4                                        |     r0 = fcn_0000bdb4 ();
    0x00013880 mov sl, r0                                        |     sl = r0;
    0x00013882 cmp r5, r0                                        |     
                                                                 |     if (r5 > r0) {
    0x00013884 bgt 0x138fe                                       |         goto label_112;
                                                                 |     }
    0x00013886 ldr.w sl, [r6]                                    |     sl = *(r6);
                                                                 |     do {
    0x0001388a ldr r3, [sp, 0x98]                                |         r3 = var_98h;
    0x0001388c ands r3, r3, 4                                    |         r3 &= 4;
    0x00013890 str r3, [sp, 0x44]                                |         var_44h = r3;
                                                                 |         if (r3 != r3) {
    0x00013892 bne 0x1392a                                       |             goto label_113;
                                                                 |         }
                                                                 | label_0:
    0x00013894 ldr r3, [sp, 0x98]                                |         r3 = var_98h;
    0x00013896 lsls r1, r3, 0x1c                                 |         r1 = r3 << 0x1c;
                                                                 |         if (r1 < r3) {
    0x00013898 bmi.w 0x13e34                                     |             goto label_114;
                                                                 |         }
    0x0001389c ldr.w r2, [pc, 0xa34]                             |         
    0x000138a0 ldr.w r3, [pc, 0xa34]                             |         r3 = *(0x000142d8);
    0x000138a4 ldr.w r1, [pc, 0xa34]                             |         r1 = *(0x000142dc);
    0x000138a8 ldr.w r0, [pc, 0xa34]                             |         
    0x000138ac add r2, pc                                        |         r2 = 0x27b84;
    0x000138ae add r3, pc                                        |         r3 += pc;
    0x000138b0 adds r2, 0x3c                                     |         r2 += 0x3c;
    0x000138b2 add r1, pc                                        |         r1 += pc;
    0x000138b4 add r0, pc                                        |         r0 = 0x27b98;
    0x000138b6 bl 0x38c64                                        |         zbx_error ();
    0x000138ba bl 0x2b778                                        |         zbx_backtrace ();
                                                                 | label_1:
    0x000138be vcmp.f32 s16, 0                                   |         __asm ("vcmp.f32 s16, 0");
    0x000138c2 vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r2 != 0x3c) {
    0x000138c6 bne.w 0x151b4                                     |             goto label_115;
                                                                 |         }
                                                                 | label_25:
    0x000138ca mov.w sl, 0                                       |         sl = 0;
                                                                 | label_2:
    0x000138ce ldr r3, [sp, 0x64]                                |         r3 = var_64h;
    0x000138d0 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000138d2 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x000138d4 bgt.w 0x13e16                                     |             goto label_116;
                                                                 |         }
                                                                 | label_3:
    0x000138d8 ldr.w r2, [pc, 0xa08]                             |         
    0x000138dc ldr.w r3, [pc, 0x9e8]                             |         r3 = *(0x142c8);
    0x000138e0 add r2, pc                                        |         r2 = 0x27bc8;
    0x000138e2 ldr r3, [r2, r3]                                  |         r3 = *(0x27bc8);
    0x000138e4 ldr r2, [r3]                                      |         r2 = *(0x27bc8);
    0x000138e6 ldr r3, [sp, 0x1e4]                               |         r3 = var_1e4h;
    0x000138e8 eors r2, r3                                       |         r2 ^= r3;
    0x000138ea mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x000138ee bne.w 0x15a68                                     |             goto label_117;
                                                                 |         }
    0x000138f2 mov r0, sl                                        |         r0 = sl;
    0x000138f4 add sp, 0x1ec                                     |         
    0x000138f6 vpop {d8, d9, d10, d11, d12}                      |         __asm ("vpop {d8, d9, d10, d11, d12}");
    0x000138fa pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_112:
    0x000138fe ldr r3, [sp, 0x6c]                                |         r3 = var_6ch;
    0x00013900 ldr r2, [r3]                                      |         r2 = *(r3);
    0x00013902 str r0, [r3]                                      |         *(r3) = r0;
    0x00013904 ldr r3, [sp, 0x64]                                |         r3 = var_64h;
    0x00013906 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00013908 cmp r3, 2                                         |         
    0x0001390a ble 0x1388a                                       |         
                                                                 |     } while (r3 <= 2);
    0x0001390c ldr.w r1, [pc, 0x9d8]                             |     
    0x00013910 subs r2, r2, r0                                   |     r2 -= r0;
    0x00013912 movs r0, 3                                        |     r0 = 3;
    0x00013914 add r1, pc                                        |     r1 = 0x27c00;
    0x00013916 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0001391a ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x0001391c ldr.w sl, [r3]                                    |     sl = *(r3);
    0x00013920 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00013922 ands r3, r3, 4                                    |     r3 &= 4;
    0x00013926 str r3, [sp, 0x44]                                |     var_44h = r3;
                                                                 |     if (r3 == r3) {
    0x00013928 beq 0x13894                                       |         goto label_0;
                                                                 |     }
                                                                 | label_113:
    0x0001392a add r5, sp, 0x110                                 |     r5 += var_110h;
    0x0001392c mov r0, r4                                        |     r0 = r4;
    0x0001392e mov r1, r5                                        |     r1 = r5;
    0x00013930 blx 0xbe7c                                        |     r0 = unlink (r0);
    0x00013934 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00013936 bne.w 0x14e4c                                     |         goto label_118;
                                                                 |     }
    0x0001393a ldr r3, [sp, 0x120]                               |     r3 = var_120h;
    0x0001393c and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00013940 cmp.w r3, 0x8000                                  |     
                                                                 |     if (r3 != 0x8000) {
    0x00013944 bne.w 0x13fc8                                     |         goto label_119;
                                                                 |     }
    0x00013948 mov r3, r4                                        |     r3 = r4;
    0x0001394a add r2, sp, 0xf0                                  |     r2 += var_f0h;
    0x0001394c str r0, [sp, 0x160]                               |     var_160h = r0;
    0x0001394e add r1, sp, 0xf4                                  |     r1 += var_f4h;
    0x00013950 add r0, sp, 0xf8                                  |     r0 += var_f8h;
    0x00013952 str r5, [sp]                                      |     *(sp) = r5;
    0x00013954 bl 0x12e4c                                        |     fcn_00012e4c (r0, r1, r2, r3, r4);
    0x00013958 ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x0001395a movs r3, 1                                        |     r3 = 1;
    0x0001395c str r3, [r2]                                      |     *(r2) = r3;
                                                                 | label_49:
    0x0001395e ldr r3, [sp, 0xf0]                                |     r3 = var_f0h;
    0x00013960 cmp r3, 0                                         |     
    0x00013962 str r3, [sp, 0x54]                                |     var_54h = r3;
                                                                 |     if (r3 <= 0) {
    0x00013964 ble 0x13a28                                       |         goto label_120;
                                                                 |     }
    0x00013966 ldr r7, [sp, 0xf8]                                |     r7 = var_f8h;
    0x00013968 movs r5, 0                                        |     r5 = 0;
    0x0001396a ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x0001396c mov sl, r3                                        |     sl = r3;
    0x0001396e add.w r8, r7, 0x48                                |     r8 = r7 + 0x48;
    0x00013970 lsrs r0, r1, 1                                    |     r0 = r1 >> 1;
    0x00013972 str r7, [sp, 0x30]                                |     var_30h = r7;
    0x00013974 b 0x139be                                         |     
                                                                 |     while (r3 != r0) {
    0x00013976 ldrd r1, r3, [r8, -0x10]                          |         __asm ("ldrd r1, r3, [r8, -0x10]");
    0x0001397a cmp.w r1, 0x200                                   |         
    0x0001397e sbcs r3, r3, 0                                    |         __asm ("sbcs r3, r3, 0");
                                                                 |         if (r1 > 0x200) {
    0x00013982 blo 0x13988                                       |             
    0x00013984 mov.w r1, 0x200                                   |             r1 = case.0x3207a.11;
                                                                 |         }
    0x00013988 ldr r3, [r8, -0x48]                               |         r3 = *((r8 - 0x48));
    0x0001398c mov r0, r6                                        |         r0 = r6;
    0x0001398e str r1, [r8, -0x40]                               |         *((r8 - 0x40)) = r1;
    0x00013992 mov r2, r8                                        |         r2 = r8;
    0x00013994 str r4, [sp]                                      |         *(sp) = r4;
    0x00013996 bl 0x13050                                        |         r0 = fcn_00013050 (r0, r1, r2, r3, r4);
    0x0001399a mov r7, r0                                        |         r7 = r0;
    0x0001399c mov r0, r6                                        |         r0 = r6;
    0x0001399e ldr r6, [r8, -0x48]                               |         r6 = *((r8 - 0x48));
    0x000139a2 blx 0xc47c                                        |         r0 = fcn_0000c47c ();
    0x000139a6 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x000139a8 bne.w 0x14b32                                     |             goto label_121;
                                                                 |         }
    0x000139ac adds r6, r7, 1                                    |         r6 = r7 + 1;
                                                                 |         if (r6 == r7) {
    0x000139ae beq.w 0x14980                                     |             goto label_122;
                                                                 |         }
    0x000139b2 adds r5, 1                                        |         r5++;
    0x000139b4 add.w r8, r8, 0x58                                |         r8 += 0x58;
    0x000139b8 cmp sl, r5                                        |         
                                                                 |         if (sl == r5) {
    0x000139ba beq.w 0x1471e                                     |             goto label_123;
                                                                 |         }
    0x000139be ldr r7, [r8, -0x48]                               |         r7 = *((r8 - 0x48));
    0x000139c2 movs r1, 0                                        |         r1 = 0;
    0x000139c4 mov r0, r7                                        |         r0 = r7;
    0x000139c6 blx 0xbfe4                                        |         r0 = puts (r0);
    0x000139ca adds r3, r0, 1                                    |         r3 = r0 + 1;
    0x000139cc mov r6, r0                                        |         r6 = r0;
    0x000139ce bne 0x13976                                       |         
                                                                 |     }
    0x000139d0 ldr r6, [sp, 0x88]                                |     r6 = var_88h;
    0x000139d2 mov r4, r7                                        |     r4 = r7;
    0x000139d4 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000139d8 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000139da ldr r5, [r6]                                      |     r5 = *(r6);
    0x000139dc ldr r7, [sp, 0x30]                                |     r7 = var_30h;
    0x000139de bl 0x26fdc                                        |     zbx_strerror ();
    0x000139e2 ldr.w r1, [pc, 0x908]                             |     
    0x000139e6 mov r3, r0                                        |     r3 = r0;
    0x000139e8 mov r2, r4                                        |     r2 = r4;
    0x000139ea mov r0, r5                                        |     r0 = r5;
    0x000139ec add r1, pc                                        |     r1 = 0x27cde;
    0x000139ee bl 0x396b0                                        |     zbx_dsprintf ()
    0x000139f2 str r0, [r6]                                      |     *(r6) = r0;
                                                                 | label_36:
    0x000139f4 mov.w r4, -1                                      |     r4 = -1;
                                                                 |     if (r7 != 0) {
    0x000139f8 cbz r7, 0x13a08                                   |         
    0x000139fa mov.w r4, -1                                      |         r4 = -1;
    0x000139fe add r2, sp, 0xf0                                  |         r2 += var_f0h;
    0x00013a00 add r1, sp, 0xf4                                  |         r1 += var_f4h;
    0x00013a02 add r0, sp, 0xf8                                  |         r0 += var_f8h;
    0x00013a04 bl 0x13780                                        |         destroy_logfile_list ();
                                                                 |     }
                                                                 | label_54:
    0x00013a08 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00013a0a cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00013a0c bne.w 0x13fd8                                     |         goto label_31;
                                                                 |     }
                                                                 | label_38:
    0x00013a10 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00013a12 sub.w r4, r4, -1                                  |     r4 -= -1;
    0x00013a16 clz r4, r4                                        |     r4 &= r4;
    0x00013a1a lsrs r4, r4, 5                                    |     r4 >>= 5;
    0x00013a1c ands.w r4, r4, r3, lsr 3                          |     r4 &= (r3 >> 3);
                                                                 |     if (r4 != r4) {
    0x00013a20 bne.w 0x13fd8                                     |         goto label_31;
                                                                 |     }
                                                                 | label_30:
    0x00013a24 ldr r3, [sp, 0xf0]                                |     r3 = var_f0h;
    0x00013a26 str r3, [sp, 0x54]                                |     var_54h = r3;
                                                                 | label_120:
    0x00013a28 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00013a2a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013a2c beq.w 0x138be                                     |         goto label_1;
                                                                 |     }
                                                                 | label_29:
    0x00013a30 ldr r3, [sp, 0x94]                                |     r3 = var_94h;
    0x00013a32 ldr r7, [sp, 0xf8]                                |     r7 = var_f8h;
    0x00013a34 ldrb r2, [r3]                                     |     r2 = *(r3);
    0x00013a36 cmp r2, 1                                         |     
                                                                 |     if (r2 == 1) {
    0x00013a38 beq.w 0x14614                                     |         goto label_124;
                                                                 |     }
    0x00013a3c movs r3, 1                                        |     r3 = 1;
    0x00013a3e str r3, [sp, 0x90]                                |     var_90h = r3;
    0x00013a40 movs r3, 0                                        |     r3 = 0;
    0x00013a42 str r3, [sp, 0x9c]                                |     var_9ch = r3;
                                                                 | label_26:
    0x00013a44 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00013a46 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00013a48 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00013a4a str r2, [sp, 0x30]                                |     var_30h = r2;
    0x00013a4c cmp r3, 0                                         |     
    0x00013a4e ite le                                            |     
                                                                 |     if (r3 > 0) {
    0x00013a50 movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 <= 0) {
    0x00013a52 movgt r3, 1                                       |         r3 = 1;
                                                                 |     }
    0x00013a54 str r3, [sp, 0xac]                                |     var_ach = r3;
    0x00013a56 cmp r2, 0                                         |     
    0x00013a58 ite le                                            |     
                                                                 |     if (r2 > 0) {
    0x00013a5a movle r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r2 <= 0) {
    0x00013a5c andgt r3, r3, 1                                   |         r3 &= 1;
                                                                 |     }
    0x00013a60 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00013a62 bne.w 0x1473c                                     |         goto label_125;
                                                                 |     }
                                                                 | label_34:
    0x00013a66 ldr r3, [sp, 0x298]                               |     r3 = *(arg_298h);
    0x00013a68 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00013a6a sub.w r3, r3, 1                                   |     r3--;
    0x00013a6e clz r3, r3                                        |     r3 &= r3;
    0x00013a72 cmp r2, 1                                         |     
    0x00013a74 lsr.w r3, r3, 5                                   |     r3 >>= 5;
    0x00013a78 it le                                             |     
                                                                 |     if (r2 > 1) {
    0x00013a7a movle r3, 0                                       |         r3 = 0;
                                                                 |     }
    0x00013a7c str r3, [sp, 0xe4]                                |     var_e4h = r3;
    0x00013a7e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00013a80 bne.w 0x14c40                                     |         goto label_126;
                                                                 |     }
                                                                 | label_46:
    0x00013a84 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013a86 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013a88 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00013a8a bgt.w 0x146b8                                     |         goto label_127;
                                                                 |     }
                                                                 | label_28:
    0x00013a8e vcmp.f32 s16, 0                                   |     __asm ("vcmp.f32 s16, 0");
    0x00013a92 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 != 3) {
    0x00013a96 bne.w 0x14576                                     |         goto label_128;
                                                                 |     }
    0x00013a9a ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x00013a9c mov.w sl, 0                                       |     sl = 0;
    0x00013aa0 str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 | label_24:
    0x00013aa2 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00013aa4 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00013aa6 cmp r7, 0                                         |     
    0x00013aa8 it ne                                             |     
                                                                 |     if (r7 != 0) {
    0x00013aaa cmpne r3, r2                                      |         __asm ("cmpne r3, r2");
                                                                 |     }
    0x00013aac itett ge                                          |     
                                                                 |     if (r7 < 0) {
    0x00013aae movge r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r7 >= 0) {
    0x00013ab0 movlt r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r7 >= 0) {
    0x00013ab2 strdge r3, r3, [sp, 0xa0]                         |         __asm ("strdge r3, r3, [var_a0h]");
                                                                 |     }
                                                                 |     if (r7 >= 0) {
    0x00013ab6 str r3, [sp, 0x84]                                |         var_84h = r3;
                                                                 |     }
                                                                 |     if (r7 >= 0) {
    0x00013ab8 bge.w 0x13dd6                                     |         goto label_35;
                                                                 |     }
    0x00013abc ldr.w r3, [pc, 0x830]                             |     r3 = case.0x30bbc.11;
    0x00013ac0 mov r4, sl                                        |     r4 = sl;
    0x00013ac2 mov sl, fp                                        |     sl = fp;
    0x00013ac4 mov fp, sb                                        |     
    0x00013ac6 add r3, pc                                        |     r3 += pc;
    0x00013ac8 str r3, [sp, 0xd8]                                |     var_d8h = r3;
    0x00013aca ldr.w r3, [pc, 0x828]                             |     r3 = *(0x000142f4);
    0x00013ace add r3, pc                                        |     r3 += pc;
    0x00013ad0 str r3, [sp, 0x68]                                |     var_68h = r3;
    0x00013ad2 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00013ad4 ands r3, r3, 0x20                                 |     r3 &= 0x20;
    0x00013ad8 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00013ada mov.w r3, 0                                       |     r3 = 0;
    0x00013ade ite eq                                            |     
                                                                 |     if (r3 != r3) {
    0x00013ae0 moveq r2, r3                                      |         r2 = r3;
                                                                 |     }
                                                                 |     if (r3 == r3) {
    0x00013ae2 movne r2, -1                                      |         r2 = -1;
                                                                 |     }
    0x00013ae6 str r3, [sp, 0xa0]                                |     var_a0h = r3;
    0x00013ae8 str r3, [sp, 0xa4]                                |     var_a4h = r3;
    0x00013aea movs r3, 1                                        |     r3 = 1;
    0x00013aec str r2, [sp, 0xd0]                                |     var_d0h = r2;
    0x00013aee str r3, [sp, 0x48]                                |     var_48h = r3;
                                                                 |     do {
    0x00013af0 ldr r2, [sp, 0x40]                                |         r2 = var_40h;
    0x00013af2 movs r3, 0x58                                     |         r3 = 0x58;
    0x00013af4 mul r3, r3, r2                                    |         r3 *= r2;
    0x00013af8 add.w r8, r7, r3                                  |         r8 = r7 + r3;
    0x00013afc str r3, [sp, 0x70]                                |         var_70h = r3;
    0x00013afe ldr.w r3, [r8, 0x14]                              |         r3 = *((r8 + 0x14));
    0x00013b02 str r3, [sp, 0x84]                                |         var_84h = r3;
    0x00013b04 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00013b06 bne.w 0x13da4                                     |             
    0x00013b0a ldrd r0, r3, [r8, 0x40]                           |             __asm ("ldrd r0, r3, [r8, 0x40]");
    0x00013b0e ldrd r1, r2, [r8, 0x38]                           |             __asm ("ldrd r1, r2, [r8, 0x38]");
    0x00013b12 cmp r2, r3                                        |             
    0x00013b14 it eq                                             |             
                                                                 |             if (r2 == r3) {
    0x00013b16 cmpeq r1, r0                                      |                 __asm ("cmpeq r1, r0");
                                                                 |             }
                                                                 |             if (r2 == r3) {
    0x00013b18 beq.w 0x14416                                     |                 goto label_129;
                                                                 |             }
                                                                 | label_17:
    0x00013b1c ldr.w r2, [r8, 4]                                 |             r2 = *((r8 + 4));
    0x00013b20 ldr r1, [sp, 0x6c]                                |             r1 = var_6ch;
    0x00013b22 str r2, [r1]                                      |             *(r1) = r2;
    0x00013b24 ldr r2, [sp, 0x40]                                |             r2 = var_40h;
    0x00013b26 ldr r1, [sp, 0x9c]                                |             r1 = var_9ch;
    0x00013b28 cmp r2, r1                                        |             
    0x00013b2a itt ne                                            |             
                                                                 |             if (r2 == r1) {
    0x00013b2c ldrne r2, [sp, 0x28]                              |                 r2 = var_28h;
                                                                 |             }
                                                                 |             if (r2 != r1) {
    0x00013b2e strdne r0, r3, [r2]                               |                 __asm ("strdne r0, r3, [r2]");
                                                                 |             }
    0x00013b32 ldr r3, [sp, 0x94]                                |             r3 = var_94h;
    0x00013b34 ldrb r3, [r3]                                     |             r3 = *(r3);
    0x00013b36 cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00013b38 bne.w 0x143b4                                     |                 goto label_130;
                                                                 |             }
    0x00013b3c ldr r3, [sp, 0x28]                                |             r3 = var_28h;
    0x00013b3e ldr r2, [r3]                                      |             r2 = *(r3);
    0x00013b40 ldr r3, [r3, 4]                                   |             r3 = *((r3 + 4));
    0x00013b42 str r2, [sp, 0x7c]                                |             var_7ch = r2;
    0x00013b44 str r3, [sp, 0x80]                                |             var_80h = r3;
                                                                 | label_20:
    0x00013b46 ldr r3, [sp, 0x298]                               |             r3 = *(arg_298h);
    0x00013b48 cmp r3, 1                                         |             
                                                                 |             if (r3 == 1) {
    0x00013b4a beq.w 0x13fea                                     |                 goto label_131;
                                                                 |             }
                                                                 | label_8:
    0x00013b4e ldr r3, [sp, 0x64]                                |             r3 = var_64h;
    0x00013b50 ldr.w r2, [r8]                                    |             r2 = *(r8);
    0x00013b54 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00013b56 str r2, [sp, 0x78]                                |             var_78h = r2;
    0x00013b58 cmp r3, 3                                         |             
                                                                 |             if (r3 > 3) {
    0x00013b5a ble 0x13b82                                       |                 
    0x00013b5c ldr r3, [sp, 0x6c]                                |                 r3 = var_6ch;
    0x00013b5e movs r0, 4                                        |                 r0 = 4;
    0x00013b60 ldr r4, [sp, 0x28]                                |                 r4 = var_28h;
    0x00013b62 ldr.w r2, [pc, 0x794]                             |                 
    0x00013b66 ldr r3, [r3]                                      |                 r3 = *(r3);
    0x00013b68 ldr.w r1, [pc, 0x790]                             |                 r1 = *(0x000142fc);
    0x00013b6c add r2, pc                                        |                 r2 = 0x27e6a;
    0x00013b6e str r3, [sp, 8]                                   |                 var_8h = r3;
    0x00013b70 adds r2, 0x6c                                     |                 r2 += 0x6c;
    0x00013b72 ldrd r4, r5, [r4]                                 |                 __asm ("ldrd r4, r5, [r4]");
    0x00013b76 add r1, pc                                        |                 r1 += pc;
    0x00013b78 ldr r3, [sp, 0x78]                                |                 r3 = var_78h;
    0x00013b7a strd r4, r5, [sp]                                 |                 __asm ("strd r4, r5, [sp]");
    0x00013b7e bl 0x271b0                                        |                 zbx_zabbix_log ();
                                                                 |             }
                                                                 | label_14:
    0x00013b82 ldr r1, [sp, 0x88]                                |             r1 = var_88h;
    0x00013b84 ldr r0, [sp, 0x78]                                |             r0 = var_78h;
    0x00013b86 bl 0x13368                                        |             r0 = fcn_00013368 (r0, r1);
    0x00013b8a mov r3, r0                                        |             r3 = r0;
    0x00013b8c str r0, [sp, 0x4c]                                |             var_4ch = r0;
    0x00013b8e adds r3, 1                                        |             r3++;
                                                                 |             if (r3 == 1) {
    0x00013b90 beq.w 0x15444                                     |                 goto label_132;
                                                                 |             }
    0x00013b94 ldr r6, [sp, 0x7c]                                |             r6 = var_7ch;
    0x00013b96 movs r4, 0                                        |             r4 = 0;
    0x00013b98 ldr r5, [sp, 0x80]                                |             r5 = var_80h;
    0x00013b9a str r4, [sp]                                      |             *(sp) = r4;
    0x00013b9c mov r2, r6                                        |             r2 = r6;
    0x00013b9e mov r3, r5                                        |             r3 = r5;
    0x00013ba0 blx 0xbf9c                                        |             gettimeofday ();
    0x00013ba4 cmp.w r1, -1                                      |             
    0x00013ba8 it eq                                             |             
                                                                 |             if (r1 == -1) {
    0x00013baa cmpeq r0, -1                                      |                 __asm ("cmpeq r0, -1");
                                                                 |             }
                                                                 |             if (r1 == -1) {
    0x00013bae beq.w 0x14430                                     |                 goto label_133;
                                                                 |             }
    0x00013bb2 ldr r1, [sp, 0x28]                                |             r1 = var_28h;
    0x00013bb4 ldr r3, [sp, 0x94]                                |             r3 = var_94h;
    0x00013bb6 str r4, [sp, 0x108]                               |             var_108h = r4;
    0x00013bb8 str r6, [r1]                                      |             *(r1) = r6;
    0x00013bba str r5, [r1, 4]                                   |             *((r1 + 4)) = r5;
    0x00013bbc strb r4, [r3]                                     |             *(r3) = r4;
    0x00013bbe ldr.w r4, [pc, 0x740]                             |             r4 = *(0x00014300);
    0x00013bc2 add r4, pc                                        |             r4 += pc;
    0x00013bc4 ldr r2, [r4]                                      |             r2 = *(r4);
    0x00013bc6 cmp r2, 0                                         |             
                                                                 |             if (r2 == 0) {
    0x00013bc8 beq.w 0x14546                                     |                 goto label_134;
                                                                 |             }
                                                                 | label_23:
    0x00013bcc add r3, sp, 0x10c                                 |             r3 += var_10ch;
    0x00013bce ldr r0, [sp, 0x2c]                                |             r0 = var_2ch;
    0x00013bd0 add r2, sp, 0x100                                 |             r2 += var_100h;
    0x00013bd2 add r1, sp, 0xfc                                  |             r1 += var_fch;
    0x00013bd4 bl 0x34a20                                        |             find_cr_lf_szbyte ();
    0x00013bd8 ldr.w r3, [sl]                                    |             r3 = *(sl);
    0x00013bdc cmp r3, 0                                         |             
                                                                 |             if (r3 > 0) {
    0x00013bde ble.w 0x13d12                                     |                 
    0x00013be2 ldr.w r3, [pc, 0x720]                             |                 r3 = *(0x00014304);
    0x00013be6 ldr.w sb, [sp, 0xc8]                              |                 sb = var_c8h;
    0x00013bea str.w r8, [sp, 0x34]                              |                 __asm ("str.w r8, [var_34h]");
    0x00013bee add r3, pc                                        |                 r3 += pc;
    0x00013bf0 str r3, [sp, 0x74]                                |                 var_74h = r3;
    0x00013bf2 ldr.w r3, [pc, 0x714]                             |                 r3 = *(0x00014308);
    0x00013bf6 add r3, pc                                        |                 r3 += pc;
    0x00013bf8 str r3, [sp, 0x60]                                |                 var_60h = r3;
    0x00013bfa ldr.w r3, [pc, 0x710]                             |                 r3 = *(0x0001430c);
    0x00013bfe add r3, pc                                        |                 r3 += pc;
    0x00013c00 str r3, [sp, 0xcc]                                |                 var_cch = r3;
    0x00013c02 ldr.w r3, [fp]                                    |                 r3 = *(fp);
    0x00013c06 cmp r3, 0                                         |                 
                                                                 |                 if (r3 > 0) {
    0x00013c08 ble.w 0x13d0e                                     |                     
    0x00013c0c movs r6, 1                                        |                     r6 = 1;
    0x00013c0e ldr r0, [sp, 0x4c]                                |                     r0 = var_4ch;
    0x00013c10 movs r2, 0                                        |                     r2 = 0;
    0x00013c12 movs r3, 0                                        |                     r3 = 0;
    0x00013c14 str r6, [sp]                                      |                     *(sp) = r6;
    0x00013c16 blx 0xbf9c                                        |                     gettimeofday ();
    0x00013c1a cmp.w r1, -1                                      |                     
    0x00013c1e it eq                                             |                     
                                                                 |                     if (r1 == -1) {
    0x00013c20 cmpeq r0, -1                                      |                         __asm ("cmpeq r0, -1");
                                                                 |                     }
    0x00013c24 str r0, [sp, 0x30]                                |                     var_30h = r0;
    0x00013c26 str r1, [sp, 0x38]                                |                     var_38h = r1;
                                                                 |                     if (r1 == -1) {
    0x00013c28 beq.w 0x14a26                                     |                         goto label_135;
                                                                 |                     }
    0x00013c2c ldr r3, [sp, 0x74]                                |                     r3 = var_74h;
    0x00013c2e mov.w r2, 0x40000                                 |                     r2 = case.0x3207a.11;
    0x00013c32 ldr r0, [sp, 0x4c]                                |                     r0 = var_4ch;
    0x00013c34 ldr r1, [r3]                                      |                     r1 = *(r3);
    0x00013c36 blx 0xbcac                                        |                     r0 = fcn_0000bcac ();
    0x00013c3a mov r4, r0                                        |                     r4 = r0;
    0x00013c3c adds r0, r4, 1                                    |                     r0 = r4 + 1;
                                                                 |                     if (r0 == r4) {
    0x00013c3e beq.w 0x14ae2                                     |                         goto label_136;
                                                                 |                     }
    0x00013c42 cmp r4, 0                                         |                     
                                                                 |                     if (r4 == 0) {
    0x00013c44 beq 0x13d0e                                       |                         goto label_137;
                                                                 |                     }
                                                                 |                 }
                                                                 | label_137:
    0x00013d0e ldr.w r8, [sp, 0x34]                              |                 r8 = var_34h;
                                                                 |             }
    0x00013d12 ldr r3, [sp, 0x28]                                |             r3 = var_28h;
    0x00013d14 ldrd r5, r7, [r3]                                 |             __asm ("ldrd r5, r7, [r3]");
    0x00013d18 ldr r3, [sp, 0x7c]                                |             r3 = var_7ch;
    0x00013d1a movs r4, 0                                        |             r4 = 0;
    0x00013d1c subs r3, r5, r3                                   |             r3 = r5 - r3;
    0x00013d1e str r3, [sp, 0x30]                                |             var_30h = r3;
    0x00013d20 ldr r3, [sp, 0x80]                                |             r3 = var_80h;
    0x00013d22 sbc.w r3, r7, r3                                  |             __asm ("sbc.w r3, r7, r3");
    0x00013d26 str r3, [sp, 0x34]                                |             var_34h = r3;
                                                                 | label_18:
    0x00013d28 ldr r0, [sp, 0x4c]                                |             r0 = var_4ch;
    0x00013d2a blx 0xc47c                                        |             r0 = fcn_0000c47c ();
    0x00013d2e mov r5, r0                                        |             r5 = r0;
    0x00013d30 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x00013d32 bne.w 0x14e90                                     |                 goto label_138;
                                                                 |             }
    0x00013d36 ldr r3, [sp, 0x64]                                |             r3 = var_64h;
    0x00013d38 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00013d3a cmp r3, 3                                         |             
                                                                 |             if (r3 > 3) {
    0x00013d3c bgt.w 0x143da                                     |                 goto label_139;
                                                                 |             }
                                                                 | label_15:
    0x00013d40 ldr r2, [sp, 0x28]                                |             r2 = var_28h;
    0x00013d42 ldrd r0, r1, [r8, 0x38]                           |             __asm ("ldrd r0, r1, [r8, 0x38]");
    0x00013d46 ldr r6, [sp, 0xf8]                                |             r6 = var_f8h;
    0x00013d48 ldrd r2, r3, [r2]                                 |             __asm ("ldrd r2, r3, [r2]");
    0x00013d4c cmp r0, r2                                        |             
    0x00013d4e strd r2, r3, [r8, 0x40]                           |             __asm ("strd r2, r3, [r8, 0x40]");
    0x00013d52 sbcs r1, r3                                       |             __asm ("sbcs r1, r3");
    0x00013d54 it lo                                             |             
                                                                 |             if (r0 < r2) {
    0x00013d56 strdlo r2, r3, [r8, 0x38]                         |                 __asm ("strdlo r2, r3, [r8, 0x38]");
                                                                 |             }
    0x00013d5a ldr r3, [sp, 0x70]                                |             r3 = var_70h;
    0x00013d5c ldr r2, [sp, 0x90]                                |             r2 = var_90h;
    0x00013d5e add r3, r6                                        |             r3 += r6;
    0x00013d60 str r2, [r3, 0xc]                                 |             *((r3 + 0xc)) = r2;
    0x00013d62 adds r3, r2, 1                                    |             r3 = r2 + 1;
    0x00013d64 ldr r2, [sp, 0x298]                               |             r2 = *(arg_298h);
    0x00013d66 str r3, [sp, 0x90]                                |             var_90h = r3;
    0x00013d68 cmp r2, 1                                         |             
                                                                 |             if (r2 == 1) {
    0x00013d6a beq.w 0x1407c                                     |                 goto label_140;
                                                                 |             }
                                                                 | label_9:
    0x00013d6e cmp r4, 0                                         |             
                                                                 |             if (r4 != 0) {
    0x00013d70 bne.w 0x14d4c                                     |                 goto label_141;
                                                                 |             }
    0x00013d74 vcmp.f32 s16, 0                                   |             __asm ("vcmp.f32 s16, 0");
    0x00013d78 vmrs apsr_nzcv, fpscr                             |             __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |             if (r4 != 0) {
    0x00013d7c beq 0x13d90                                       |                 
    0x00013d7e ldr r3, [sp, 0xa0]                                |                 r3 = var_a0h;
    0x00013d80 ldr r2, [sp, 0x30]                                |                 r2 = var_30h;
    0x00013d82 ldr r1, [sp, 0x34]                                |                 r1 = var_34h;
    0x00013d84 adds r3, r3, r2                                   |                 r3 += r2;
    0x00013d86 ldr r2, [sp, 0xa4]                                |                 r2 = var_a4h;
    0x00013d88 adc.w r2, r2, r1                                  |                 __asm ("adc.w r2, r2, r1");
    0x00013d8c strd r3, r2, [sp, 0xa0]                           |                 __asm ("strd r3, r2, [var_a0h]");
                                                                 |             }
    0x00013d90 ldr.w r3, [sl]                                    |             r3 = *(sl);
    0x00013d94 cmp r3, 0                                         |             
                                                                 |             if (r3 <= 0) {
    0x00013d96 ble.w 0x14976                                     |                 goto label_142;
                                                                 |             }
    0x00013d9a ldr.w r3, [fp]                                    |             r3 = *(fp);
    0x00013d9e cmp r3, 0                                         |             
                                                                 |             if (r3 <= 0) {
    0x00013da0 ble.w 0x14976                                     |                 goto label_142;
                                                                 |             }
                                                                 |         }
                                                                 | label_16:
    0x00013da4 ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x00013da6 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x00013da8 bne.w 0x1415a                                     |             goto label_143;
                                                                 |         }
    0x00013dac ldr r3, [sp, 0x40]                                |         r3 = var_40h;
    0x00013dae ldr r2, [sp, 0x54]                                |         r2 = var_54h;
    0x00013db0 adds r3, 1                                        |         r3++;
    0x00013db2 cmp r3, r2                                        |         
    0x00013db4 str r3, [sp, 0x40]                                |         var_40h = r3;
    0x00013db6 ite ge                                            |         
                                                                 |         if (r3 < r2) {
    0x00013db8 movge r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r3 >= r2) {
    0x00013dba movlt r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 | label_13:
    0x00013dbc ldr r7, [sp, 0xf8]                                |         r7 = var_f8h;
    0x00013dbe movs r2, 0                                        |         r2 = 0;
    0x00013dc0 str r2, [sp, 0x48]                                |         var_48h = r2;
    0x00013dc2 cmp r7, 0                                         |         
    0x00013dc4 ite eq                                            |         
                                                                 |         if (r7 != 0) {
    0x00013dc6 moveq r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if (r7 == 0) {
    0x00013dc8 andne r3, r3, 1                                   |             r3 &= 1;
                                                                 |         }
    0x00013dcc cmp r3, 0                                         |         
    0x00013dce bne.w 0x13af0                                     |         
                                                                 |     } while (r3 != 0);
    0x00013dd2 mov sl, r4                                        |     sl = r4;
    0x00013dd4 str r3, [sp, 0x84]                                |     var_84h = r3;
                                                                 | label_35:
    0x00013dd6 ldr r3, [sp, 0xe4]                                |     r3 = var_e4h;
    0x00013dd8 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00013dda bne.w 0x14b58                                     |         goto label_144;
                                                                 |     }
    0x00013dde ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00013de0 ldr r2, [sp, 0xdc]                                |     r2 = var_dch;
    0x00013de2 cmp r3, 0                                         |     
    0x00013de4 str r3, [r2]                                      |     *(r2) = r3;
                                                                 |     if (r3 > 0) {
    0x00013de6 ble 0x13dee                                       |         
                                                                 | label_44:
    0x00013de8 ldr r3, [sp, 0xf8]                                |         r3 = var_f8h;
    0x00013dea ldr r2, [sp, 0xe0]                                |         r2 = var_e0h;
    0x00013dec str r3, [r2]                                      |         *(r2) = r3;
                                                                 |     }
    0x00013dee vcmp.f32 s16, 0                                   |     __asm ("vcmp.f32 s16, 0");
    0x00013df2 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 == 0) {
    0x00013df6 beq.w 0x138ce                                     |         goto label_2;
                                                                 |     }
    0x00013dfa cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00013dfe beq.w 0x145fc                                     |         goto label_145;
                                                                 |     }
                                                                 | label_7:
    0x00013e02 ldr r1, [sp, 0xd4]                                |     r1 = var_d4h;
    0x00013e04 movs r3, 0                                        |     r3 = 0;
    0x00013e06 movs r2, 0                                        |     r2 = 0;
    0x00013e08 strd r2, r3, [r1]                                 |     __asm ("strd r2, r3, [r1]");
    0x00013e0c ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013e0e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013e10 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00013e12 ble.w 0x138d8                                     |         goto label_3;
                                                                 |     }
                                                                 | label_116:
    0x00013e16 mov r0, sl                                        |     r0 = sl;
    0x00013e18 bl 0x3a204                                        |     zbx_result_string ();
    0x00013e1c ldr.w r2, [pc, 0x4f0]                             |     
    0x00013e20 mov r3, r0                                        |     r3 = r0;
    0x00013e22 ldr.w r1, [pc, 0x4f0]                             |     r1 = *(0x00014314);
    0x00013e26 movs r0, 4                                        |     r0 = 4;
    0x00013e28 add r2, pc                                        |     r2 = 0x2813c;
    0x00013e2a add r1, pc                                        |     r1 += pc;
    0x00013e2c adds r2, 0xc                                      |     r2 += 0xc;
    0x00013e2e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00013e32 b 0x138d8                                         |     goto label_3;
                                                                 | label_114:
    0x00013e34 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013e36 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013e38 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00013e3a bgt.w 0x13fae                                     |         goto label_146;
                                                                 |     }
                                                                 | label_6:
    0x00013e3e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00013e40 beq.w 0x1580c                                     |         goto label_147;
                                                                 |     }
    0x00013e44 ldrb r3, [r4]                                     |     r3 = *(r4);
    0x00013e46 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00013e48 beq.w 0x1580c                                     |         goto label_147;
                                                                 |     }
    0x00013e4c movs r1, 0x2f                                     |     r1 = 0x2f;
    0x00013e4e mov r0, r4                                        |     r0 = r4;
    0x00013e50 blx 0xc30c                                        |     r0 = fcn_0000c30c ();
    0x00013e54 mov r5, r0                                        |     r5 = r0;
    0x00013e56 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013e58 beq.w 0x15a32                                     |         goto label_148;
                                                                 |     }
    0x00013e5c ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013e5e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013e60 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00013e62 bgt.w 0x149ae                                     |         goto label_149;
                                                                 |     }
    0x00013e66 mov r0, r4                                        |     r0 = r4;
    0x00013e68 blx 0xc114                                        |     fcn_0000c114 ();
    0x00013e6c cmp r4, r5                                        |     
                                                                 |     if (r4 > r5) {
    0x00013e6e bhi.w 0x149dc                                     |         goto label_90;
                                                                 |     }
                                                                 | label_37:
    0x00013e72 subs r3, r0, 1                                    |     r3 = r0 - 1;
    0x00013e74 add r3, r4                                        |     r3 += r4;
    0x00013e76 cmp r5, r3                                        |     
                                                                 |     if (r5 >= r3) {
    0x00013e78 bhs.w 0x149d2                                     |         goto label_150;
                                                                 |     }
    0x00013e7c ldr.w r7, [pc, 0x498]                             |     
    0x00013e80 subs r5, r5, r4                                   |     r5 -= r4;
    0x00013e82 add.w r8, r5, 2                                   |     r8 = r5 + 2;
    0x00013e86 subs r6, r0, r5                                   |     r6 = r0 - r5;
    0x00013e88 mov r3, r8                                        |     r3 = r8;
    0x00013e8a movs r2, 0                                        |     r2 = 0;
    0x00013e8c add r7, pc                                        |     r7 = 0x281a8;
    0x00013e8e movs r1, 0x57                                     |     r1 = 0x57;
    0x00013e90 mov r0, r7                                        |     r0 = r7;
    0x00013e92 bl 0x35c28                                        |     zbx_malloc2 ();
    0x00013e96 mov r2, r8                                        |     r2 = r8;
    0x00013e98 mov r1, r4                                        |     r1 = r4;
    0x00013e9a mov r8, r0                                        |     r8 = r0;
    0x00013e9c bl 0x394f0                                        |     zbx_strlcpy ();
    0x00013ea0 mov r3, r6                                        |     r3 = r6;
    0x00013ea2 movs r2, 0                                        |     r2 = 0;
    0x00013ea4 movs r1, 0x5a                                     |     r1 = 0x5a;
    0x00013ea6 mov r0, r7                                        |     r0 = r7;
    0x00013ea8 bl 0x35c28                                        |     zbx_malloc2 ();
    0x00013eac adds r1, r5, 1                                    |     r1 = r5 + 1;
    0x00013eae mov r2, r6                                        |     r2 = r6;
    0x00013eb0 add r1, r4                                        |     r1 += r4;
    0x00013eb2 str r0, [sp, 0x30]                                |     var_30h = r0;
    0x00013eb4 bl 0x394f0                                        |     zbx_strlcpy ();
    0x00013eb8 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013eba ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013ebc cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00013ebe bgt.w 0x14a5c                                     |         goto label_151;
                                                                 |     }
    0x00013ec2 add r7, sp, 0x110                                 |     r7 += var_110h;
    0x00013ec4 mov r0, r8                                        |     r0 = r8;
    0x00013ec6 mov r1, r7                                        |     r1 = r7;
    0x00013ec8 blx 0xbe7c                                        |     unlink (r0);
    0x00013ecc adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00013ece beq.w 0x1589a                                     |         goto label_152;
                                                                 |     }
    0x00013ed2 ldr r3, [sp, 0x120]                               |     r3 = var_120h;
    0x00013ed4 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00013ed8 cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 != 0x4000) {
    0x00013edc bne.w 0x157e6                                     |         goto label_153;
                                                                 |     }
                                                                 | label_39:
    0x00013ee0 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00013ee2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013ee4 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00013ee6 bgt.w 0x14dcc                                     |         goto label_154;
                                                                 |     }
    0x00013eea ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00013eec mov r2, r7                                        |     r2 = r7;
    0x00013eee add r1, sp, 0x10c                                 |     r1 += var_10ch;
    0x00013ef0 bl 0x27e3c                                        |     r0 = zbx_regexp_compile ();
    0x00013ef4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00013ef6 bne.w 0x15750                                     |         goto label_155;
                                                                 |     }
                                                                 | label_52:
    0x00013efa ldr r3, [sp, 0x10c]                               |     r3 = var_10ch;
    0x00013efc mov r0, r8                                        |     r0 = r8;
    0x00013efe str r3, [sp, 0x4c]                                |     var_4ch = r3;
    0x00013f00 blx 0xbfd8                                        |     r0 = getenv (r0);
    0x00013f04 mov r5, r0                                        |     r5 = r0;
    0x00013f06 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00013f08 beq.w 0x15a44                                     |         goto label_156;
                                                                 |     }
    0x00013f0c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00013f0e movs r3, 1                                        |     r3 = 1;
    0x00013f10 ldr.w r6, [pc, 0x408]                             |     r6 = *(0x0001431c);
    0x00013f14 str.w sb, [sp, 0x60]                              |     __asm ("str.w sb, [var_60h]");
    0x00013f18 str r3, [r2]                                      |     *(r2) = r3;
    0x00013f1a ldr.w r3, [pc, 0x404]                             |     
    0x00013f1e add r6, pc                                        |     r6 += pc;
    0x00013f20 add r3, pc                                        |     r3 = 0x28246;
    0x00013f22 strd r3, fp, [sp, 0x50]                           |     __asm ("strd r3, fp, [var_0hx50]");
    0x00013f26 ldr.w fp, [sp, 0x64]                              |     fp = var_64h;
    0x00013f2a b 0x13f40                                         |     
                                                                 |     while (r0 == 0) {
    0x00013f2c ldr r2, [sp, 0x120]                               |         r2 = var_120h;
    0x00013f2e and r2, r2, 0xf000                                |         r2 &= case.0x3207a.11;
    0x00013f32 cmp.w r2, 0x8000                                  |         
                                                                 |         if (r2 == 0x8000) {
    0x00013f36 beq.w 0x14986                                     |             goto label_157;
                                                                 |         }
                                                                 | label_4:
    0x00013f3a mov r0, r4                                        |         r0 = r4;
    0x00013f3c blx 0xbd14                                        |         gai_strerror ();
    0x00013f40 mov r0, r5                                        |         r0 = r5;
    0x00013f42 blx 0xc360                                        |         r0 = fcn_0000c360 ();
    0x00013f46 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00013f48 beq.w 0x14d52                                     |             goto label_158;
                                                                 |         }
    0x00013f4c add.w sb, r0, 0x13                                |         sb = r0 + 0x13;
    0x00013f50 mov r1, r6                                        |         r1 = r6;
    0x00013f52 mov r2, r8                                        |         r2 = r8;
    0x00013f54 mov r3, sb                                        |         r3 = sb;
    0x00013f56 movs r0, 0                                        |         r0 = 0;
    0x00013f58 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00013f5c mov r1, r7                                        |         r1 = r7;
    0x00013f5e mov r4, r0                                        |         r4 = r0;
    0x00013f60 blx 0xbe7c                                        |         r0 = unlink (r0);
    0x00013f64 cmp r0, 0                                         |         
    0x00013f66 beq 0x13f2c                                       |         
                                                                 |     }
    0x00013f68 ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x00013f6c cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00013f6e ble 0x13f3a                                       |         goto label_4;
                                                                 |     }
    0x00013f70 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00013f74 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00013f76 bl 0x26fdc                                        |     zbx_strerror ();
    0x00013f7a ldr r1, [sp, 0x50]                                |     r1 = var_50h;
    0x00013f7c mov r3, r0                                        |     r3 = r0;
    0x00013f7e mov r2, r4                                        |     r2 = r4;
    0x00013f80 movs r0, 4                                        |     r0 = 4;
    0x00013f82 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00013f86 b 0x13f3a                                         |     goto label_4;
                                                                 | label_111:
    0x00013f88 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00013f8a str r4, [sp]                                      |     *(sp) = r4;
    0x00013f8c ldr r5, [sp, 0x28]                                |     r5 = var_28h;
    0x00013f8e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00013f90 ldr r2, [pc, 0x390]                               |     
    0x00013f92 ldr r1, [pc, 0x394]                               |     
    0x00013f94 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00013f96 mov r3, r0                                        |     r3 = r0;
    0x00013f98 ldrd r6, r7, [r5]                                 |     __asm ("ldrd r6, r7, [r5]");
    0x00013f9c add r2, pc                                        |     r2 = 0x282c4;
    0x00013f9e adds r2, 0xc                                      |     r2 += 0xc;
    0x00013fa0 add r1, pc                                        |     r1 = 0x282ce;
    0x00013fa2 movs r0, 4                                        |     r0 = 4;
    0x00013fa4 strd r6, r7, [sp, 8]                              |     __asm ("strd r6, r7, [var_8h]");
    0x00013fa8 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00013fac b 0x13876                                         |     goto label_5;
                                                                 | label_146:
    0x00013fae mov r3, r4                                        |     r3 = r4;
    0x00013fb0 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00013fb2 beq.w 0x151aa                                     |         goto label_159;
                                                                 |     }
                                                                 | label_59:
    0x00013fb6 ldr r2, [pc, 0x374]                               |     
    0x00013fb8 movs r0, 4                                        |     r0 = 4;
    0x00013fba ldr r1, [pc, 0x374]                               |     
    0x00013fbc add r2, pc                                        |     r2 = 0x282ee;
    0x00013fbe adds r2, 0x1c                                     |     r2 += 0x1c;
    0x00013fc0 add r1, pc                                        |     r1 = 0x282f6;
    0x00013fc2 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00013fc6 b 0x13e3e                                         |     goto label_6;
                                                                 | label_119:
    0x00013fc8 mov r2, r4                                        |     r2 = r4;
    0x00013fca ldr r1, [pc, 0x368]                               |     
    0x00013fcc ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x00013fce add r1, pc                                        |     r1 = 0x28308;
    0x00013fd0 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00013fd2 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00013fd6 str r0, [r4]                                      |     *(r4) = r0;
                                                                 | label_31:
    0x00013fd8 vcmp.f32 s16, 0                                   |     __asm ("vcmp.f32 s16, 0");
    0x00013fdc vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r2 == 0x1c) {
    0x00013fe0 beq.w 0x15298                                     |         goto label_160;
                                                                 |     }
    0x00013fe4 mov.w sl, -1                                      |     sl = -1;
    0x00013fe8 b 0x13e02                                         |     goto label_7;
                                                                 | label_131:
    0x00013fea ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00013fec cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x00013fee ble.w 0x13b4e                                     |         goto label_8;
                                                                 |     }
                                                                 | label_21:
    0x00013ff2 str r4, [sp, 0x30]                                |     var_30h = r4;
    0x00013ff4 mov.w sb, 0                                       |     sb = 0;
    0x00013ff8 str.w sl, [sp, 0x34]                              |     __asm ("str.w sl, [var_34h]");
    0x00013ffc mov sl, r7                                        |     sl = r7;
    0x00013ffe ldr r4, [sp, 0x54]                                |     r4 = var_54h;
    0x00014000 mov r6, sb                                        |     r6 = sb;
    0x00014002 ldr r7, [sp, 0x40]                                |     r7 = var_40h;
    0x00014004 mov r5, sb                                        |     r5 = sb;
                                                                 |     do {
    0x00014006 cmp sb, r7                                        |         
                                                                 |         if (sb != r7) {
    0x00014008 beq 0x14024                                       |             
    0x0001400a mov r1, sl                                        |             r1 = sl;
    0x0001400c mov r0, r8                                        |             r0 = r8;
    0x0001400e bl 0x1328c                                        |             r0 = fcn_0001328c (r0, r1, r2, r3);
                                                                 |             if (r0 != 0) {
    0x00014012 cbnz r0, 0x14024                                  |                 goto label_161;
                                                                 |             }
    0x00014014 ldrd r0, r2, [sl, 0x40]                           |             __asm ("ldrd r0, r2, [sl, 0x40]");
    0x00014018 cmp r6, r0                                        |             
    0x0001401a sbcs.w ip, r5, r2                                 |             __asm ("sbcs.w ip, r5, r2");
    0x0001401e itt lo                                            |             
                                                                 |             if (r6 >= r0) {
    0x00014020 movlo r6, r0                                      |                 r6 = r0;
                                                                 |             }
                                                                 |             if (r6 < r0) {
    0x00014022 movlo r5, r2                                      |                 r5 = r2;
                                                                 |                 goto label_161;
                                                                 |             }
                                                                 |         }
                                                                 | label_161:
    0x00014024 add.w sb, sb, 1                                   |         sb++;
    0x00014028 add.w sl, sl, 0x58                                |         sl += 0x58;
    0x0001402c cmp sb, r4                                        |         
    0x0001402e bne 0x14006                                       |         
                                                                 |     } while (sb != r4);
    0x00014030 ldr r3, [sp, 0x7c]                                |     r3 = var_7ch;
    0x00014032 ldrd r4, sl, [sp, 0x30]                           |     __asm ("ldrd r4, sl, [var_34h]");
    0x00014036 cmp r3, r6                                        |     
    0x00014038 ldr r3, [sp, 0x80]                                |     r3 = var_80h;
    0x0001403a sbcs r3, r5                                       |     __asm ("sbcs r3, r5");
                                                                 |     if (r3 >= r6) {
    0x0001403c bhs.w 0x13b4e                                     |         goto label_8;
                                                                 |     }
    0x00014040 ldrd r2, r3, [r8, 0x38]                           |     __asm ("ldrd r2, r3, [r8, 0x38]");
    0x00014044 cmp r6, r2                                        |     
    0x00014046 mov r1, r3                                        |     r1 = r3;
    0x00014048 sbcs.w r7, r5, r3                                 |     __asm ("sbcs.w r7, r5, r3");
    0x0001404c mov r0, r2                                        |     r0 = r2;
    0x0001404e itt lo                                            |     
                                                                 |     if (r6 >= r2) {
    0x00014050 movlo r1, r5                                      |         r1 = r5;
                                                                 |     }
                                                                 |     if (r6 >= r2) {
    0x00014052 movlo r0, r6                                      |         r0 = r6;
                                                                 |     }
    0x00014054 cmp r6, r2                                        |     
    0x00014056 strd r0, r1, [r8, 0x40]                           |     __asm ("strd r0, r1, [r8, 0x40]");
    0x0001405a sbcs.w r3, r5, r3                                 |     __asm ("sbcs.w r3, r5, r3");
    0x0001405e ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00014060 strd r6, r5, [r3]                                 |     __asm ("strd r6, r5, [r3]");
                                                                 |     if (r6 <= r2) {
    0x00014064 blo.w 0x13b4e                                     |         goto label_8;
                                                                 |     }
    0x00014068 ldr r6, [sp, 0xf8]                                |     r6 = var_f8h;
    0x0001406a ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x0001406c ldr r2, [sp, 0x90]                                |     r2 = var_90h;
    0x0001406e add r3, r6                                        |     r3 += r6;
    0x00014070 str r2, [r3, 0xc]                                 |     *((r3 + 0xc)) = r2;
    0x00014072 adds r3, r2, 1                                    |     r3 = r2 + 1;
    0x00014074 str r3, [sp, 0x90]                                |     var_90h = r3;
    0x00014076 movs r3, 0                                        |     r3 = 0;
    0x00014078 strd r3, r3, [sp, 0x30]                           |     __asm ("strd r3, r3, [var_34h]");
                                                                 | label_140:
    0x0001407c ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x0001407e cmp r3, 1                                         |     
                                                                 |     if (r3 <= 1) {
    0x00014080 ble.w 0x13d6e                                     |         goto label_9;
                                                                 |     }
    0x00014084 ldr r2, [pc, 0x2b0]                               |     
    0x00014086 mov.w r8, 0                                       |     r8 = 0;
    0x0001408a strd r4, sl, [sp, 0x4c]                           |     __asm ("strd r4, sl, [var_4ch]");
    0x0001408e mov sb, r3                                        |     sb = r3;
    0x00014090 ldr.w sl, [sp, 0x64]                              |     sl = var_64h;
    0x00014094 subs r1, r3, 1                                    |     r1 = r3 - 1;
    0x00014096 add r2, pc                                        |     r2 = 0x283d2;
    0x00014098 str.w fp, [sp, 0x60]                              |     __asm ("str.w fp, [var_60h]");
    0x0001409c mov fp, r6                                        |     
    0x0001409e mov r6, r2                                        |     r6 = r2;
    0x000140a0 str r1, [sp, 0x38]                                |     var_38h = r1;
                                                                 | label_12:
    0x000140a2 add.w r8, r8, 1                                   |     r8++;
    0x000140a6 cmp r8, sb                                        |     
    0x000140a8 itt lt                                            |     
                                                                 |     if (r8 >= sb) {
    0x000140aa movlt r4, fp                                      |         r4 = fp;
                                                                 |     }
                                                                 |     if (r8 >= sb) {
    0x000140ac movlt r7, r8                                      |         r7 = r8;
                                                                 |     }
                                                                 |     if (r8 < sb) {
    0x000140ae blt 0x140d6                                       |         goto label_162;
                                                                 |     }
    0x000140b0 b 0x14146                                         |     goto label_163;
                                                                 | label_10:
    0x000140b2 ldrd r0, r1, [r5, 0x90]                           |     __asm ("ldrd r0, r1, [r5, 0x90]");
    0x000140b6 cmp r2, r0                                        |     
    0x000140b8 sbcs.w ip, r3, r1                                 |     __asm ("sbcs.w ip, r3, r1");
    0x000140bc it lo                                             |     
                                                                 |     if (r2 >= r0) {
    0x000140be movlo r1, r3                                      |         r1 = r3;
                                                                 |     }
    0x000140c0 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x000140c4 it lo                                             |     
                                                                 |     if (r2 >= r0) {
    0x000140c6 movlo r0, r2                                      |         r0 = r2;
                                                                 |     }
    0x000140c8 strd r0, r1, [r5, 0x98]                           |     __asm ("strd r0, r1, [r5, 0x98]");
    0x000140cc cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000140ce bgt 0x14162                                       |         void (*0x14162)() ();
                                                                 |     }
                                                                 |     do {
                                                                 | label_11:
    0x000140d0 adds r7, 1                                        |         r7++;
    0x000140d2 cmp r7, sb                                        |         
                                                                 |         if (r7 == sb) {
    0x000140d4 beq 0x14146                                       |             goto label_163;
                                                                 |         }
                                                                 | label_162:
    0x000140d6 mov r5, r4                                        |         r5 = r4;
    0x000140d8 adds r4, 0x58                                     |         r4 += 0x58;
    0x000140da mov r1, r4                                        |         r1 = r4;
    0x000140dc mov r0, fp                                        |         r0 = fp;
    0x000140de bl 0x1328c                                        |         r0 = fcn_0001328c (r0, r1, r2, r3);
    0x000140e2 cmp r0, 0                                         |         
    0x000140e4 bne 0x140d0                                       |         
                                                                 |     } while (r0 != 0);
    0x000140e6 ldr.w r0, [r5, 0x98]                              |     r0 = *((r5 + 0x98));
    0x000140ea ldr.w r2, [fp, 0x40]                              |     r2 = *(arg_250h);
    0x000140ee ldr.w r1, [r5, 0x9c]                              |     r1 = *((r5 + 0x9c));
    0x000140f2 ldr.w r3, [fp, 0x44]                              |     r3 = *(arg_254h);
    0x000140f6 cmp r0, r2                                        |     
    0x000140f8 sbcs.w ip, r1, r3                                 |     __asm ("sbcs.w ip, r1, r3");
                                                                 |     if (r0 <= r2) {
    0x000140fc blo 0x140b2                                       |         goto label_10;
                                                                 |     }
    0x000140fe cmp r2, r0                                        |     
    0x00014100 sbcs r3, r1                                       |     __asm ("sbcs r3, r1");
                                                                 |     if (r2 >= r0) {
    0x00014102 bhs 0x140d0                                       |         goto label_11;
                                                                 |     }
                                                                 | label_163:
    0x00014146 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x00014148 add.w fp, fp, 0x58                                |     
    0x0001414c cmp r8, r3                                        |     
                                                                 |     if (r8 != r3) {
    0x0001414e bne 0x140a2                                       |         goto label_12;
                                                                 |     }
                                                                 | label_143:
    0x0001415a movs r2, 0                                        |     r2 = 0;
    0x0001415c ldr r3, [sp, 0xac]                                |     r3 = var_ach;
    0x0001415e str r2, [sp, 0x40]                                |     var_40h = r2;
    0x00014160 b 0x13dbc                                         |     goto label_13;
                                                                 | label_130:
    0x000143b4 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000143b6 ldr.w r2, [r8, 0x38]                              |     r2 = *((r8 + 0x38));
    0x000143ba ldr r3, [r3]                                      |     r3 = *(r3);
    0x000143bc str r2, [sp, 0x7c]                                |     var_7ch = r2;
    0x000143be ldr.w r2, [r8, 0x3c]                              |     r2 = *((r8 + 0x3c));
    0x000143c2 cmp r3, 3                                         |     
    0x000143c4 str r2, [sp, 0x80]                                |     var_80h = r2;
                                                                 |     if (r3 > 3) {
    0x000143c6 bgt 0x144c6                                       |         goto label_164;
                                                                 |     }
    0x000143c8 ldr r3, [sp, 0x298]                               |     r3 = *(arg_298h);
    0x000143ca cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x000143cc beq.w 0x1451c                                     |         goto label_165;
                                                                 |     }
                                                                 | label_22:
    0x000143d0 ldr.w r3, [r8]                                    |     r3 = *(r8);
    0x000143d4 str r3, [sp, 0x78]                                |     var_78h = r3;
    0x000143d6 b.w 0x13b82                                       |     goto label_14;
                                                                 | label_139:
    0x000143da ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x000143dc mov r0, r4                                        |     r0 = r4;
    0x000143de ldr r6, [r3]                                      |     r6 = *(r3);
    0x000143e0 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x000143e2 vldr d9, [r3]                                     |     __asm ("vldr d9, [r3]");
    0x000143e6 bl 0x3a204                                        |     zbx_result_string ();
    0x000143ea cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x000143ec bne 0x14482                                       |         goto label_166;
                                                                 |     }
    0x000143ee ldrd r5, r3, [sp, 0x30]                           |     __asm ("ldrd r5, r3, [var_34h]");
                                                                 | label_19:
    0x000143f2 ldr.w r2, [pc, 0xba0]                             |     r2 = *(0x00014f94);
    0x000143f6 ldr.w r1, [pc, 0xba0]                             |     
    0x000143fa strd r5, r3, [sp, 0x10]                           |     __asm ("strd r5, r3, [var_10h]");
    0x000143fe add r2, pc                                        |     r2 += pc;
    0x00014400 strd r6, r0, [sp, 8]                              |     __asm ("strd r6, r0, [var_8h]");
    0x00014404 ldr r3, [sp, 0x78]                                |     r3 = var_78h;
    0x00014406 adds r2, 0x6c                                     |     r2 += 0x6c;
    0x00014408 add r1, pc                                        |     r1 = 0x293a6;
    0x0001440a movs r0, 4                                        |     r0 = 4;
    0x0001440c vstr d9, [sp]                                     |     __asm ("vstr d9, [sp]");
    0x00014410 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014414 b 0x13d40                                         |     goto label_15;
                                                                 | label_129:
    0x00014416 ldr.w r2, [r8, 0xc]                               |     r2 = *((r8 + 0xc));
    0x0001441a cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0001441c bne.w 0x13da4                                     |         goto label_16;
                                                                 |     }
    0x00014420 b.w 0x13b1c                                       |     goto label_17;
                                                                 | label_133:
    0x00014430 str r4, [sp, 0x30]                                |     var_30h = r4;
    0x00014432 mov r6, r4                                        |     r6 = r4;
    0x00014434 blx 0xc15c                                        |     fcn_0000c15c ();
    0x00014438 ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x0001443a ldr r0, [r0]                                      |     r0 = *(r0);
    0x0001443c ldr r4, [r5]                                      |     r4 = *(r5);
    0x0001443e bl 0x26fdc                                        |     zbx_strerror ();
    0x00014442 ldr r1, [sp, 0x78]                                |     r1 = var_78h;
    0x00014444 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00014446 mov r0, r4                                        |     r0 = r4;
    0x00014448 ldrd r2, r3, [sp, 0x7c]                           |     __asm ("ldrd r2, r3, [var_7ch]");
    0x0001444c mov.w r4, -1                                      |     r4 = -1;
    0x00014450 str r1, [sp]                                      |     *(sp) = r1;
    0x00014452 ldr.w r1, [pc, 0xb48]                             |     r1 = *(0x00014f9c);
    0x00014456 add r1, pc                                        |     r1 += pc;
    0x00014458 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001445c str r6, [sp, 0x34]                                |     var_34h = r6;
    0x0001445e str r0, [r5]                                      |     *(r5) = r0;
    0x00014460 b 0x13d28                                         |     goto label_18;
                                                                 | label_166:
    0x00014482 mov.w r4, -1                                      |     r4 = -1;
    0x00014486 mov r3, r5                                        |     r3 = r5;
    0x00014488 b 0x143f2                                         |     goto label_19;
                                                                 | label_164:
    0x000144c6 ldr r3, [sp, 0x7c]                                |     r3 = var_7ch;
    0x000144c8 movs r0, 4                                        |     r0 = 4;
    0x000144ca ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x000144ce ldr.w r1, [pc, 0xad0]                             |     r1 = *(0x00014fa0);
    0x000144d2 str r3, [sp]                                      |     *(sp) = r3;
    0x000144d4 ldr r3, [sp, 0x80]                                |     r3 = var_80h;
    0x000144d6 add r1, pc                                        |     r1 += pc;
    0x000144d8 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000144da bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000144de b.w 0x13b46                                       |     goto label_20;
                                                                 | label_165:
    0x0001451c ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x0001451e cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x00014520 bgt.w 0x13ff2                                     |         goto label_21;
                                                                 |     }
    0x00014524 b 0x143d0                                         |     goto label_22;
                                                                 | label_134:
    0x00014546 ldr.w r0, [pc, 0xa5c]                             |     
    0x0001454a movs r3, 1                                        |     
    0x0001454c movt r3, 4                                        |     r3 = 0x40001;
    0x00014550 movw r1, 0x73a                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00014554 add r0, pc                                        |     r0 = 0x294fe;
    0x00014556 bl 0x35c28                                        |     zbx_malloc2 ();
    0x0001455a str r0, [r4]                                      |     *(r4) = r0;
    0x0001455c b.w 0x13bcc                                       |     goto label_23;
                                                                 | label_27:
    0x00014560 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00014562 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014564 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00014566 bgt.w 0x1547a                                     |         goto label_167;
                                                                 |     }
                                                                 | label_76:
    0x0001456a vcmp.f32 s16, 0                                   |     __asm ("vcmp.f32 s16, 0");
    0x0001456e vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 == 3) {
    0x00014572 beq.w 0x151e2                                     |         goto label_168;
                                                                 |     }
                                                                 | label_128:
    0x00014576 ldr r3, [sp, 0xd4]                                |     r3 = var_d4h;
    0x00014578 vldr d16, [r3]                                    |     __asm ("vldr d16, [r3]");
    0x0001457c vcmp.f64 d16, 0                                   |     __asm ("vcmp.f64 d16, 0");
    0x00014580 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 == 3) {
    0x00014584 beq 0x145c6                                       |         goto label_57;
                                                                 |     }
    0x00014586 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00014588 cmp r3, 0                                         |     
                                                                 |     if (r3 <= 0) {
    0x0001458a ble 0x145c6                                       |         goto label_57;
                                                                 |     }
    0x0001458c movs r1, 0x58                                     |     r1 = 0x58;
    0x0001458e movs r6, 0                                        |     r6 = 0;
    0x00014590 mla r1, r1, r3, r7                                |     __asm ("mla r1, r1, r3, r7");
    0x00014594 mov r8, r6                                        |     r8 = r6;
    0x00014596 mov r3, r7                                        |     r3 = r7;
                                                                 |     do {
    0x00014598 ldr r0, [r3, 0x40]                                |         r0 = *((r3 + 0x40));
    0x0001459a adds r3, 0x58                                     |         r3 += 0x58;
    0x0001459c ldr r2, [r3, -0x20]                               |         r2 = *((r3 - 0x20));
    0x000145a0 ldr r4, [r3, -0x14]                               |         r4 = *((r3 - 0x14));
    0x000145a4 subs r2, r2, r0                                   |         r2 -= r0;
    0x000145a6 ldr r0, [r3, -0x1c]                               |         r0 = *((r3 - 0x1c));
    0x000145aa sbc.w r0, r0, r4                                  |         __asm ("sbc.w r0, r0, r4");
    0x000145ae adds r2, r2, r6                                   |         r2 += r6;
    0x000145b0 adc.w r5, r8, r0                                  |         __asm ("adc.w r5, r8, r0");
    0x000145b4 cmp r1, r3                                        |         
    0x000145b6 mov r6, r2                                        |         r6 = r2;
    0x000145b8 mov r8, r5                                        |         r8 = r5;
    0x000145ba bne 0x14598                                       |         
                                                                 |     } while (r1 != r3);
    0x000145bc orrs.w r3, r2, r5                                 |     r3 = r2 | r5;
    0x000145c0 mov r4, r2                                        |     r4 = r2;
                                                                 |     if (r3 != r2) {
    0x000145c2 bne.w 0x14f14                                     |         goto label_169;
                                                                 |     }
                                                                 | label_57:
    0x000145c6 ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x000145c8 mov.w sl, 0                                       |     sl = 0;
    0x000145cc str r3, [sp, 0x40]                                |     var_40h = r3;
                                                                 | label_80:
    0x000145ce bl 0x34f20                                        |     zbx_time ();
    0x000145d2 ldr r3, [sp, 0xd4]                                |     r3 = var_d4h;
    0x000145d4 vstr d0, [r3]                                     |     __asm ("vstr d0, [r3]");
    0x000145d8 b.w 0x13aa2                                       |     goto label_24;
                                                                 | label_145:
    0x000145fc ldr r3, [sp, 0xe8]                                |     r3 = var_e8h;
    0x000145fe ldr r2, [sp, 0xa0]                                |     r2 = var_a0h;
    0x00014600 str r2, [r3]                                      |     *(r3) = r2;
    0x00014602 ldr r2, [sp, 0xa4]                                |     r2 = var_a4h;
    0x00014604 str r2, [r3, 4]                                   |     *((r3 + 4)) = r2;
    0x00014606 ldr r3, [sp, 0x84]                                |     r3 = var_84h;
    0x00014608 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x0001460a beq.w 0x138ca                                     |         goto label_25;
                                                                 |     }
    0x0001460e mov sl, r3                                        |     sl = r3;
    0x00014610 b.w 0x13e02                                       |     goto label_7;
                                                                 | label_124:
    0x00014614 ldr r4, [sp, 0x54]                                |     r4 = var_54h;
    0x00014616 subs r3, r4, 1                                    |     r3 = r4 - 1;
    0x00014618 cmp r3, 0                                         |     
    0x0001461a str r3, [sp, 0x9c]                                |     var_9ch = r3;
                                                                 |     if (r3 <= 0) {
    0x0001461c ble.w 0x154b2                                     |         goto label_170;
                                                                 |     }
    0x00014620 mov r3, r7                                        |     r3 = r7;
                                                                 |     do {
    0x00014622 str r2, [r3, 0xc]                                 |         *((r3 + 0xc)) = r2;
    0x00014624 adds r2, 1                                        |         r2++;
    0x00014626 ldrd r0, r1, [r3, 0x38]                           |         __asm ("ldrd r0, r1, [r3, 0x38]");
    0x0001462a cmp r2, r4                                        |         
    0x0001462c add.w r3, r3, 0x58                                |         r3 += 0x58;
    0x00014630 strd r0, r1, [r3, -0x18]                          |         __asm ("strd r0, r1, [r3, -0x18]");
    0x00014634 bne 0x14622                                       |         
                                                                 |     } while (r2 != r4);
    0x00014636 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00014638 str r3, [sp, 0x90]                                |     var_90h = r3;
    0x0001463a b.w 0x13a44                                       |     goto label_26;
                                                                 | label_127:
    0x000146b8 ldr.w r2, [pc, 0x8f0]                             |     r2 = *(0x00014fac);
    0x000146bc movs r0, 4                                        |     r0 = 4;
    0x000146be ldr.w r1, [pc, 0x8f0]                             |     r1 = *(0x00014fb0);
    0x000146c2 add r2, pc                                        |     r2 += pc;
    0x000146c4 adds r2, 0xc                                      |     r2 += 0xc;
    0x000146c6 add r1, pc                                        |     r1 += pc;
    0x000146c8 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000146cc ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x000146ce ldr r0, [r3]                                      |     r0 = *(r3);
    0x000146d0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000146d2 beq.w 0x14aca                                     |         goto label_171;
                                                                 |     }
    0x000146d6 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x000146d8 ldr r1, [r3]                                      |     r1 = *(r3);
    0x000146da bl 0x12d4c                                        |     fcn_00012d4c (r0, r1);
                                                                 | label_41:
    0x000146de ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000146e0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000146e2 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000146e4 ble 0x1470c                                       |         
    0x000146e6 ldr r3, [sp, 0x9c]                                |         r3 = var_9ch;
    0x000146e8 movs r0, 4                                        |         r0 = 4;
    0x000146ea ldr r4, [sp, 0x28]                                |         r4 = var_28h;
    0x000146ec ldr.w r2, [pc, 0x8c4]                             |         
    0x000146f0 str r3, [sp, 8]                                   |         var_8h = r3;
    0x000146f2 ldr.w r1, [pc, 0x8c4]                             |         
    0x000146f6 ldr r3, [sp, 0x6c]                                |         r3 = var_6ch;
    0x000146f8 add r2, pc                                        |         r2 = 0x296b0;
    0x000146fa ldrd r4, r5, [r4]                                 |         __asm ("ldrd r4, r5, [r4]");
    0x000146fe adds r2, 0xc                                      |         r2 += 0xc;
    0x00014700 add r1, pc                                        |         r1 = 0x296be;
    0x00014702 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00014704 strd r4, r5, [sp]                                 |         __asm ("strd r4, r5, [sp]");
    0x00014708 bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_40:
    0x0001470c cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0001470e beq.w 0x14560                                     |         goto label_27;
                                                                 |     }
    0x00014712 ldr r1, [sp, 0x54]                                |     r1 = var_54h;
    0x00014714 mov r0, r7                                        |     r0 = r7;
    0x00014716 bl 0x12d4c                                        |     fcn_00012d4c (r0, r1);
    0x0001471a b.w 0x13a8e                                       |     goto label_28;
                                                                 | label_123:
    0x0001471e mov r4, r7                                        |     r4 = r7;
    0x00014720 ldr r7, [sp, 0x30]                                |     r7 = var_30h;
    0x00014722 adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00014724 bics r3, r3, 4                                    |     __asm ("bics r3, r3, 4");
                                                                 |     if (r3 == r4) {
    0x00014728 beq.w 0x14e32                                     |         goto label_172;
                                                                 |     }
    0x0001472c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0001472e beq.w 0x13a30                                     |         goto label_29;
                                                                 |     }
                                                                 | label_55:
    0x00014732 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00014734 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014736 beq.w 0x13a24                                     |         goto label_30;
                                                                 |     }
    0x0001473a b 0x13fd8                                         |     goto label_31;
                                                                 | label_125:
    0x0001473c ldr r4, [sp, 0x40]                                |     r4 = var_40h;
    0x0001473e movw r1, 0x49f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00014742 ldr r5, [sp, 0x38]                                |     r5 = var_38h;
    0x00014744 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00014746 ldr.w r0, [pc, 0x874]                             |     r0 = *(0x00014fbc);
    0x0001474a ldr r4, [r4]                                      |     r4 = *(r4);
    0x0001474c ldr r5, [r5]                                      |     r5 = *(r5);
    0x0001474e mul r3, r2, r3                                    |     r3 = r2 * r3;
    0x00014752 add r0, pc                                        |     r0 += pc;
    0x00014754 movs r2, 0                                        |     r2 = 0;
    0x00014756 str r4, [sp, 0x80]                                |     var_80h = r4;
    0x00014758 str r5, [sp, 0x44]                                |     var_44h = r5;
    0x0001475a add.w r8, r4, 0x48                                |     r8 = r4 + 0x48;
    0x0001475e bl 0x35c28                                        |     zbx_malloc2 ();
    0x00014762 ldr.w r3, [pc, 0x85c]                             |     
    0x00014766 strd fp, sb, [sp, 0xcc]                           |     __asm ("strd fp, sb, [var_cch]");
    0x0001476a ldr r6, [sp, 0x298]                               |     r6 = *(arg_298h);
    0x0001476c add r3, pc                                        |     r3 = 0x29732;
    0x0001476e ldr.w fp, [sp, 0x64]                              |     fp = var_64h;
    0x00014772 adds r3, 0x50                                     |     r3 += 0x50;
    0x00014774 str r0, [sp, 0x4c]                                |     var_4ch = r0;
    0x00014776 str r3, [sp, 0xa0]                                |     var_a0h = r3;
    0x00014778 ldr.w r3, [pc, 0x848]                             |     
    0x0001477c str r0, [sp, 0x50]                                |     var_50h = r0;
    0x0001477e str r7, [sp, 0xa4]                                |     var_a4h = r7;
    0x00014780 add r3, pc                                        |     r3 = 0x29748;
    0x00014782 adds r3, 0x50                                     |     r3 += 0x50;
    0x00014784 str r3, [sp, 0x74]                                |     var_74h = r3;
    0x00014786 movs r3, 0                                        |     r3 = 0;
    0x00014788 str r3, [sp, 0x70]                                |     var_70h = r3;
    0x0001478a add.w r3, r7, 0x48                                |     r3 = r7 + 0x48;
    0x0001478c lsls r0, r1, 0xd                                  |     r0 = r1 << 0xd;
    0x0001478e str r3, [sp, 0x68]                                |     var_68h = r3;
                                                                 | label_32:
    0x00014790 ldr.w r3, [pc, 0x834]                             |     
    0x00014794 mov.w sb, 0                                       |     sb = 0;
    0x00014798 ldr r7, [sp, 0x50]                                |     r7 = var_50h;
    0x0001479a ldr r4, [sp, 0x68]                                |     r4 = var_68h;
    0x0001479c add r3, pc                                        |     r3 = 0x29768;
    0x0001479e str r3, [sp, 0x78]                                |     var_78h = r3;
    0x000147a0 ldr.w r3, [pc, 0x828]                             |     
    0x000147a4 add r3, pc                                        |     r3 = 0x29774;
    0x000147a6 str r3, [sp, 0x7c]                                |     var_7ch = r3;
    0x000147a8 sub.w r3, r8, 0x48                                |     r3 = r8 - 0x48;
    0x000147ac str r3, [sp, 0x60]                                |     var_60h = r3;
                                                                 |     do {
    0x000147ae cmp r6, 1                                         |         
    0x000147b0 sub.w sl, r4, 0x48                                |         sl = r4 - 0x48;
                                                                 |         if (r6 == 1) {
    0x000147b4 beq.w 0x150b4                                     |             goto label_173;
                                                                 |         }
    0x000147b8 ldr r5, [sp, 0x44]                                |         r5 = var_44h;
    0x000147ba subs r3, r5, 1                                    |         r3 = r5 - 1;
    0x000147bc cmp r3, 1                                         |         
                                                                 |         if (r3 >= 1) {
    0x000147be bls 0x1481e                                       |             
                                                                 | label_60:
    0x000147c0 ldr r0, [r8, -0x10]                               |             r0 = *((r8 - 0x10));
    0x000147c4 ldr r1, [r4, -0x10]                               |             r1 = *((r4 - 0x10));
    0x000147c8 ldr r2, [r8, -0xc]                                |             r2 = *((r8 - 0xc));
    0x000147cc ldr r3, [r4, -0xc]                                |             r3 = *((r4 - 0xc));
    0x000147d0 cmp r1, r0                                        |             
    0x000147d2 sbcs.w r5, r3, r2                                 |             __asm ("sbcs.w r5, r3, r2");
                                                                 |             if (r1 > r0) {
    0x000147d6 blo 0x14840                                       |                 
    0x000147d8 cmp r2, r3                                        |                 
    0x000147da it eq                                             |                 
                                                                 |                 if (r2 == r3) {
    0x000147dc cmpeq r0, r1                                      |                     __asm ("cmpeq r0, r1");
                                                                 |                 }
                                                                 |                 if (r2 == r3) {
    0x000147de beq.w 0x14d96                                     |                     goto label_174;
                                                                 |                 }
                                                                 | label_50:
    0x000147e2 ldr r3, [r8, -0x40]                               |                 r3 = *((r8 - 0x40));
    0x000147e6 adds r1, r3, 1                                    |                 r1 = r3 + 1;
                                                                 |                 if (r1 == r3) {
    0x000147e8 beq 0x14840                                       |                     goto label_51;
                                                                 |                 }
    0x000147ea ldr r1, [r4, -0x40]                               |                 r1 = *((r4 - 0x40));
    0x000147ee cmp r3, r1                                        |                 
    0x000147f0 ite le                                            |                 
                                                                 |                 if (r3 > r1) {
    0x000147f2 movle r2, 0                                       |                     r2 = 0;
                                                                 |                 }
                                                                 |                 if (r3 <= r1) {
    0x000147f4 movgt r2, 1                                       |                     r2 = 1;
                                                                 |                 }
    0x000147f6 cmp.w r1, -1                                      |                 
    0x000147fa it eq                                             |                 
                                                                 |                 if (r1 != -1) {
    0x000147fc orreq r2, r2, 1                                   |                     r2 |= 1;
                                                                 |                 }
                                                                 |                 if (r2 != 0) {
    0x00014800 cbnz r2, 0x14840                                  |                     goto label_51;
                                                                 |                 }
    0x00014802 cmp r3, r1                                        |                 
                                                                 |                 if (r3 == r1) {
    0x00014804 beq.w 0x1549e                                     |                     goto label_175;
                                                                 |                 }
    0x00014808 cmp r3, 0                                         |                 
                                                                 |                 if (r3 > 0) {
    0x0001480a bgt.w 0x15264                                     |                     goto label_176;
                                                                 |                 }
                                                                 | label_69:
    0x0001480e ldr r3, [r8, -0x38]                               |                 r3 = *((r8 - 0x38));
                                                                 | label_85:
    0x00014812 cmp r3, 1                                         |                 
                                                                 |                 if (r3 == 1) {
    0x00014814 beq.w 0x1548a                                     |                     goto label_177;
                                                                 |                 }
                                                                 | label_77:
    0x00014818 movs r3, 0x31                                     |                 r3 = 0x31;
    0x0001481a strb r3, [r7]                                     |                 *(r7) = r3;
    0x0001481c b 0x14844                                         |                 
                                                                 |             } else {
    0x0001481e ldrd r0, r2, [r8, -0x20]                          |                 __asm ("ldrd r0, r2, [r8, -0x20]");
    0x00014822 ldrd r1, r3, [r4, -0x20]                          |                 __asm ("ldrd r1, r3, [r4, -0x20]");
    0x00014826 cmp r2, r3                                        |                 
    0x00014828 it eq                                             |                 
                                                                 |                 if (r2 == r3) {
    0x0001482a cmpeq r0, r1                                      |                     __asm ("cmpeq r0, r1");
                                                                 |                 }
                                                                 |                 if (r2 != r3) {
    0x0001482c bne 0x14840                                       |                     goto label_51;
                                                                 |                 }
    0x0001482e ldrd r0, r2, [r8, -0x28]                          |                 __asm ("ldrd r0, r2, [r8, -0x28]");
    0x00014832 ldrd r1, r3, [r4, -0x28]                          |                 __asm ("ldrd r1, r3, [r4, -0x28]");
    0x00014836 cmp r2, r3                                        |                 
    0x00014838 it eq                                             |                 
                                                                 |                 if (r2 == r3) {
    0x0001483a cmpeq r0, r1                                      |                     __asm ("cmpeq r0, r1");
                                                                 |                 }
                                                                 |                 if (r2 == r3) {
    0x0001483c beq.w 0x151c6                                     |                     goto label_178;
                                                                 |                 }
                                                                 |             }
                                                                 | label_51:
    0x00014840 movs r3, 0x30                                     |             r3 = 0x30;
    0x00014842 strb r3, [r7]                                     |             *(r7) = r3;
                                                                 |         }
                                                                 | label_70:
    0x00014844 ldr.w r3, [fp]                                    |         r3 = *(fp);
    0x00014848 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x0001484a bgt.w 0x14b14                                     |             goto label_179;
                                                                 |         }
                                                                 | label_42:
    0x0001484e ldr r3, [sp, 0x54]                                |         r3 = var_54h;
    0x00014850 add.w sb, sb, 1                                   |         sb++;
    0x00014854 adds r7, 1                                        |         r7++;
    0x00014856 adds r4, 0x58                                     |         r4 += 0x58;
    0x00014858 cmp sb, r3                                        |         
    0x0001485a blt 0x147ae                                       |         
                                                                 |     } while (sb < r3);
    0x0001485c ldrd r2, r1, [sp, 0x50]                           |     __asm ("ldrd r2, r1, [var_54h]");
    0x00014860 add.w r8, r8, 0x58                                |     r8 += 0x58;
    0x00014864 ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x00014866 add r2, r1                                        |     r2 += r1;
    0x00014868 str r2, [sp, 0x50]                                |     var_50h = r2;
    0x0001486a adds r3, 1                                        |     r3++;
    0x0001486c ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0001486e str r3, [sp, 0x70]                                |     var_70h = r3;
    0x00014870 cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x00014872 bgt 0x14790                                       |         goto label_32;
                                                                 |     }
    0x00014874 ldr r3, [sp, 0x298]                               |     r3 = *(arg_298h);
    0x00014876 ldr r7, [sp, 0xa4]                                |     r7 = var_a4h;
    0x00014878 ldrd fp, sb, [sp, 0xcc]                           |     __asm ("ldrd fp, sb, [var_cch]");
    0x0001487c cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x0001487e beq 0x1488e                                       |         
    0x00014880 ldr r3, [sp, 0x30]                                |         r3 = var_30h;
    0x00014882 ldr r2, [sp, 0x54]                                |         r2 = var_54h;
    0x00014884 cmp r2, 1                                         |         
    0x00014886 it le                                             |         
                                                                 |         if (r2 <= 1) {
    0x00014888 cmple r3, 1                                       |             __asm ("cmple r3, 1");
                                                                 |         }
                                                                 |         if (r2 > 1) {
    0x0001488a bgt.w 0x15822                                     |             goto label_180;
                                                                 |         }
                                                                 |     }
                                                                 | label_99:
    0x0001488e ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x00014890 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00014892 beq.w 0x1518c                                     |         goto label_88;
                                                                 |     }
    0x00014896 mov sl, r2                                        |     sl = r2;
    0x00014898 add.w r8, r2, -1                                  |     r8 = r2 + -1;
    0x0001489c str.w fp, [sp, 0x68]                              |     __asm ("str.w fp, [var_68h]");
    0x000148a0 mov.w lr, 0                                       |     lr = 0;
    0x000148a4 ldr r3, [sp, 0x80]                                |     r3 = var_80h;
    0x000148a6 mov ip, lr                                        |     
    0x000148a8 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x000148aa ldr.w fp, [sp, 0xec]                              |     fp = var_ech;
    0x000148ae str.w sb, [sp, 0x70]                              |     __asm ("str.w sb, [var_70h]");
    0x000148b2 mov sb, lr                                        |     sb = lr;
    0x000148b4 str r7, [sp, 0x50]                                |     var_50h = r7;
                                                                 | label_33:
    0x000148b6 ldr r1, [sp, 0x298]                               |     r1 = *(arg_298h);
    0x000148b8 ldrd r4, r5, [r3, 0x40]                           |     __asm ("ldrd r4, r5, [r3, 0x40]");
    0x000148bc ldr r6, [r3, 0x14]                                |     r6 = *((r3 + 0x14));
    0x000148be cmp r1, 1                                         |     
                                                                 |     if (r1 == 1) {
    0x000148c0 beq.w 0x15300                                     |         goto label_181;
                                                                 |     }
    0x000148c4 orrs.w r1, r4, r5                                 |     r1 = r4 | r5;
                                                                 |     if (r1 == r4) {
    0x000148c8 beq.w 0x152a0                                     |         goto label_182;
                                                                 |     }
    0x000148cc cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000148ce bne.w 0x152a0                                     |         goto label_182;
                                                                 |     }
    0x000148d2 mov r0, r8                                        |     r0 = r8;
    0x000148d4 b 0x148dc                                         |     
                                                                 |     while (r1 > 1) {
    0x000148d6 adds r6, 1                                        |         r6++;
    0x000148d8 cmp r6, r2                                        |         
                                                                 |         if (r6 >= r2) {
    0x000148da bge 0x1491a                                       |             goto label_64;
                                                                 |         }
    0x000148dc ldrb r1, [r0, 1]!                                 |         r1 = *((r0 += 1));
    0x000148e0 subs r1, 0x31                                     |         r1 -= 0x31;
    0x000148e2 cmp r1, 1                                         |         
    0x000148e4 bhi 0x148d6                                       |         
                                                                 |     }
    0x000148e6 ldr r1, [sp, 0x50]                                |     r1 = var_50h;
    0x000148e8 movs r0, 0x58                                     |     r0 = 0x58;
    0x000148ea mla r6, r0, r6, r1                                |     __asm ("mla r6, r0, r6, r1");
    0x000148ee ldrd r1, r0, [r3, 0x38]                           |     __asm ("ldrd r1, r0, [r3, 0x38]");
    0x000148f2 cmp r0, r5                                        |     
    0x000148f4 it eq                                             |     
                                                                 |     if (r0 == r5) {
    0x000148f6 cmpeq r1, r4                                      |         __asm ("cmpeq r1, r4");
                                                                 |     }
                                                                 |     if (r0 == r5) {
    0x000148f8 beq.w 0x15416                                     |         goto label_183;
                                                                 |     }
                                                                 | label_71:
    0x000148fc ldrd r0, r1, [r6, 0x40]                           |     __asm ("ldrd r0, r1, [r6, 0x40]");
    0x00014900 cmp r0, r4                                        |     
    0x00014902 sbcs r1, r5                                       |     __asm ("sbcs r1, r5");
                                                                 |     if (r0 < r4) {
    0x00014904 bhs 0x1491a                                       |         
    0x00014906 ldrd r0, r1, [r6, 0x38]                           |         __asm ("ldrd r0, r1, [r6, 0x38]");
    0x0001490a cmp r4, r0                                        |         
    0x0001490c sbcs.w r7, r5, r1                                 |         __asm ("sbcs.w r7, r5, r1");
    0x00014910 itt lo                                            |         
                                                                 |         if (r4 >= r0) {
    0x00014912 movlo r0, r4                                      |             r0 = r4;
                                                                 |         }
                                                                 |         if (r4 >= r0) {
    0x00014914 movlo r1, r5                                      |             r1 = r5;
                                                                 |         }
    0x00014916 strd r0, r1, [r6, 0x40]                           |         __asm ("strd r0, r1, [r6, 0x40]");
                                                                 |     }
                                                                 | label_64:
    0x0001491a ldr r1, [r3, 0xc]                                 |     r1 = *((r3 + 0xc));
    0x0001491c add sl, r2                                        |     sl += r2;
    0x0001491e add r8, r2                                        |     r8 += r2;
    0x00014920 adds r3, 0x58                                     |     r3 += 0x58;
    0x00014922 cmp r1, sb                                        |     
    0x00014924 it gt                                             |     
                                                                 |     if (r1 <= sb) {
    0x00014926 movgt sb, r1                                      |         sb = r1;
                                                                 |     }
    0x00014928 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x0001492a it gt                                             |     
                                                                 |     if (r1 <= sb) {
    0x0001492c movgt fp, ip                                      |         
                                                                 |     }
    0x0001492e add.w ip, ip, 1                                   |     
    0x00014932 cmp r1, ip                                        |     
                                                                 |     if (r1 > ip) {
    0x00014934 bgt 0x148b6                                       |         goto label_33;
                                                                 |     }
    0x00014936 mov lr, sb                                        |     lr = sb;
    0x00014938 mov r2, fp                                        |     r2 = fp;
    0x0001493a cmp.w lr, 0                                       |     
    0x0001493e ldr r7, [sp, 0x50]                                |     r7 = var_50h;
    0x00014940 ldr.w fp, [sp, 0x68]                              |     fp = var_68h;
    0x00014944 ldr.w sb, [sp, 0x70]                              |     sb = var_70h;
                                                                 |     if (lr <= 0) {
    0x00014948 ble 0x1496c                                       |         goto label_75;
                                                                 |     }
    0x0001494a ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x0001494c movs r1, 0                                        |     r1 = 0;
    0x0001494e ldr r0, [sp, 0x54]                                |     r0 = var_54h;
    0x00014950 mla r2, r0, r2, r3                                |     __asm ("mla r2, r0, r2, r3");
    0x00014954 subs r2, 1                                        |     r2--;
    0x00014956 b 0x14960                                         |     
                                                                 |     while (r3 > 1) {
    0x00014958 adds r1, 1                                        |         r1++;
    0x0001495a cmp r1, r0                                        |         
                                                                 |         if (r1 >= r0) {
    0x0001495c bge.w 0x15468                                     |             goto label_184;
                                                                 |         }
    0x00014960 ldrb r3, [r2, 1]!                                 |         r3 = *((r2 += 1));
    0x00014964 subs r3, 0x31                                     |         r3 -= 0x31;
    0x00014966 cmp r3, 1                                         |         
    0x00014968 bhi 0x14958                                       |         
                                                                 |     }
    0x0001496a str r1, [sp, 0x9c]                                |     var_9ch = r1;
                                                                 | label_75:
    0x0001496c ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x0001496e blx 0xbd14                                        |     gai_strerror ();
    0x00014972 b.w 0x13a66                                       |     goto label_34;
                                                                 | label_142:
    0x00014976 movs r3, 1                                        |     r3 = 1;
    0x00014978 mov sl, r4                                        |     sl = r4;
    0x0001497a str r3, [sp, 0x84]                                |     var_84h = r3;
    0x0001497c b.w 0x13dd6                                       |     goto label_35;
                                                                 | label_122:
    0x00014980 ldr r7, [sp, 0x30]                                |     r7 = var_30h;
    0x00014982 b.w 0x139f4                                       |     goto label_36;
                                                                 | label_157:
    0x00014986 ldr r2, [sp, 0x160]                               |     r2 = var_160h;
    0x00014988 cmp r2, sl                                        |     
                                                                 |     if (r2 < sl) {
    0x0001498a blt.w 0x13f3a                                     |         goto label_4;
                                                                 |     }
    0x0001498e ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x00014990 mov r0, sb                                        |     r0 = sb;
    0x00014992 bl 0x27e80                                        |     r0 = zbx_regexp_match_precompiled ();
    0x00014996 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00014998 bne.w 0x13f3a                                     |         goto label_4;
                                                                 |     }
    0x0001499c mov r3, r4                                        |     r3 = r4;
    0x0001499e add r2, sp, 0xf0                                  |     r2 += var_f0h;
    0x000149a0 add r1, sp, 0xf4                                  |     r1 += var_f4h;
    0x000149a2 add r0, sp, 0xf8                                  |     r0 += var_f8h;
    0x000149a4 str r7, [sp]                                      |     *(sp) = r7;
    0x000149a6 bl 0x12e4c                                        |     fcn_00012e4c (r0, r1, r2, r3, r4);
    0x000149aa b.w 0x13f3a                                       |     goto label_4;
                                                                 | label_149:
    0x000149ae ldr.w r2, [pc, 0x620]                             |     
    0x000149b2 mov r3, r4                                        |     r3 = r4;
    0x000149b4 ldr.w r1, [pc, 0x61c]                             |     
    0x000149b8 str r0, [sp]                                      |     *(sp) = r0;
    0x000149ba movs r0, 4                                        |     r0 = 4;
    0x000149bc add r2, pc                                        |     r2 = 0x29992;
    0x000149be adds r2, 0x2c                                     |     r2 += 0x2c;
    0x000149c0 add r1, pc                                        |     r1 = 0x29998;
    0x000149c2 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000149c6 mov r0, r4                                        |     r0 = r4;
    0x000149c8 blx 0xc114                                        |     fcn_0000c114 ();
    0x000149cc cmp r4, r5                                        |     
                                                                 |     if (r4 < r5) {
    0x000149ce bls.w 0x13e72                                     |         goto label_37;
                                                                 |     }
                                                                 | label_150:
    0x000149d2 ldr r5, [sp, 0x64]                                |     r5 = var_64h;
    0x000149d4 ldr r3, [r5]                                      |     r3 = *(r5);
    0x000149d6 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000149d8 bgt.w 0x15774                                     |         goto label_185;
                                                                 |     }
                                                                 | label_90:
    0x000149dc ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x000149de movs r2, 0x2f                                     |     r2 = 0x2f;
    0x000149e0 ldr.w r1, [pc, 0x5f4]                             |     r1 = *(0x00014fd8);
    0x000149e4 ldr r0, [r4]                                      |     r0 = *(r4);
    0x000149e6 add r1, pc                                        |     r1 += pc;
    0x000149e8 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000149ec ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000149ee str r0, [r4]                                      |     *(r4) = r0;
    0x000149f0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000149f2 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000149f4 ble 0x14a1e                                       |         
    0x000149f6 mov.w r0, -1                                      |         r0 = -1;
    0x000149fa bl 0x3a204                                        |         zbx_result_string ();
    0x000149fe ldr.w r2, [pc, 0x5dc]                             |         r2 = *(0x00014fdc);
    0x00014a02 mov r3, r0                                        |         r3 = r0;
    0x00014a04 ldr.w r1, [pc, 0x5d8]                             |         
    0x00014a08 movs r0, 4                                        |         r0 = 4;
    0x00014a0a add r2, pc                                        |         r2 += pc;
    0x00014a0c strd r2, r2, [sp]                                 |         __asm ("strd r2, r2, [sp]");
    0x00014a10 add r1, pc                                        |         r1 = 0x299f4;
    0x00014a12 ldr.w r2, [pc, 0x5d0]                             |         r2 = *(0x00014fe4);
    0x00014a16 add r2, pc                                        |         r2 += pc;
    0x00014a18 adds r2, 0x1c                                     |         r2 += 0x1c;
    0x00014a1a bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
                                                                 | label_53:
    0x00014a1e mov.w r4, -1                                      |     r4 = -1;
    0x00014a22 b.w 0x13a10                                       |     goto label_38;
                                                                 | label_135:
    0x00014a26 ldr r2, [sp, 0xc8]                                |     r2 = var_c8h;
    0x00014a28 movs r3, 0                                        |     r3 = 0;
    0x00014a2a ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00014a2c mov r6, r3                                        |     r6 = r3;
    0x00014a2e str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00014a30 str r3, [r2]                                      |     *(r2) = r3;
    0x00014a32 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00014a36 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00014a38 ldr r4, [r5]                                      |     r4 = *(r5);
    0x00014a3a ldr.w r8, [sp, 0x34]                              |     r8 = var_34h;
    0x00014a3e bl 0x26fdc                                        |     zbx_strerror ();
    0x00014a42 ldr.w r1, [pc, 0x5a4]                             |     r1 = *(0x00014fe8);
    0x00014a46 mov r2, r0                                        |     r2 = r0;
    0x00014a48 mov r0, r4                                        |     r0 = r4;
    0x00014a4a mov.w r4, -1                                      |     r4 = -1;
    0x00014a4e add r1, pc                                        |     r1 += pc;
    0x00014a50 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014a54 str r6, [sp, 0x34]                                |     var_34h = r6;
    0x00014a56 str r0, [r5]                                      |     *(r5) = r0;
    0x00014a58 b.w 0x13d28                                       |     goto label_18;
                                                                 | label_151:
    0x00014a5c movs r0, 0                                        |     r0 = 0;
    0x00014a5e bl 0x3a204                                        |     zbx_result_string ();
    0x00014a62 mov r2, r8                                        |     r2 = r8;
    0x00014a64 mov r3, r0                                        |     r3 = r0;
    0x00014a66 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00014a6a beq.w 0x154c6                                     |         goto label_186;
                                                                 |     }
                                                                 | label_78:
    0x00014a6e ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00014a70 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00014a72 beq.w 0x154d0                                     |         goto label_187;
                                                                 |     }
    0x00014a76 str r2, [sp]                                      |     *(sp) = r2;
    0x00014a78 movs r0, 4                                        |     r0 = 4;
    0x00014a7a ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x00014a7c add r7, sp, 0x110                                 |     r7 += var_110h;
    0x00014a7e ldr.w r1, [pc, 0x56c]                             |     
    0x00014a82 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00014a84 ldr.w r2, [pc, 0x568]                             |     r2 = *(0x00014ff0);
    0x00014a88 add r1, pc                                        |     r1 = 0x29a7a;
    0x00014a8a add r2, pc                                        |     r2 += pc;
    0x00014a8c adds r2, 0x2c                                     |     r2 += 0x2c;
    0x00014a8e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014a92 mov r1, r7                                        |     r1 = r7;
    0x00014a94 mov r0, r8                                        |     r0 = r8;
    0x00014a96 blx 0xbe7c                                        |     unlink (r0);
    0x00014a9a adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00014a9c beq.w 0x15aa6                                     |         goto label_188;
                                                                 |     }
    0x00014aa0 ldr r3, [sp, 0x120]                               |     r3 = var_120h;
    0x00014aa2 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00014aa6 cmp.w r3, 0x4000                                  |     
    0x00014aa8 ldr r7, [pc, 0x200]                               |     r7 = *(0x14cac);
                                                                 |     if (r3 == 0x4000) {
    0x00014aaa beq.w 0x13ee0                                     |         goto label_39;
                                                                 |     }
    0x00014aae ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x00014ab0 mov r2, r8                                        |     r2 = r8;
    0x00014ab2 ldr.w r1, [pc, 0x540]                             |     
    0x00014ab6 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00014ab8 add r1, pc                                        |     r1 = 0x29ab2;
    0x00014aba bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014abe str r0, [r4]                                      |     *(r4) = r0;
    0x00014ac0 mov r0, r8                                        |     r0 = r8;
    0x00014ac2 blx 0xbd14                                        |     gai_strerror ();
    0x00014ac6 b.w 0x15804                                       |     goto label_100;
                                                                 | label_171:
    0x00014aca ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00014acc ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014ace cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00014ad0 ble.w 0x1470c                                     |         goto label_40;
                                                                 |     }
    0x00014ad4 ldr.w r1, [pc, 0x520]                             |     r1 = *(0x00014ff8);
    0x00014ad8 movs r0, 4                                        |     r0 = 4;
    0x00014ada add r1, pc                                        |     r1 += pc;
    0x00014adc bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014ae0 b 0x146de                                         |     goto label_41;
                                                                 | label_136:
    0x00014ae2 ldr r2, [sp, 0xc8]                                |     r2 = var_c8h;
    0x00014ae4 movs r3, 0                                        |     r3 = 0;
    0x00014ae6 ldr r6, [sp, 0x88]                                |     r6 = var_88h;
    0x00014ae8 mov r7, r3                                        |     r7 = r3;
    0x00014aea str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00014aec str r3, [r2]                                      |     *(r2) = r3;
    0x00014aee blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00014af2 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00014af4 ldr r5, [r6]                                      |     r5 = *(r6);
    0x00014af6 ldr.w r8, [sp, 0x34]                              |     r8 = var_34h;
    0x00014afa bl 0x26fdc                                        |     zbx_strerror ();
    0x00014afe ldr.w r1, [pc, 0x4fc]                             |     r1 = *(0x00014ffc);
    0x00014b02 mov r2, r0                                        |     r2 = r0;
    0x00014b04 mov r0, r5                                        |     r0 = r5;
    0x00014b06 add r1, pc                                        |     r1 += pc;
    0x00014b08 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014b0c str r7, [sp, 0x34]                                |     var_34h = r7;
    0x00014b0e str r0, [r6]                                      |     *(r6) = r0;
    0x00014b10 b.w 0x13d28                                       |     goto label_18;
                                                                 | label_179:
    0x00014b14 ldrb r2, [r7]                                     |     r2 = *(r7);
    0x00014b16 movs r0, 4                                        |     r0 = 4;
    0x00014b18 ldr r3, [r8, -0x48]                               |     r3 = *((r8 - 0x48));
    0x00014b1c ldr.w r1, [pc, 0x4e0]                             |     r1 = *(0x00015000);
    0x00014b20 str r2, [sp, 4]                                   |     var_4h = r2;
    0x00014b22 ldr r2, [r4, -0x48]                               |     r2 = *((r4 - 0x48));
    0x00014b24 cmp r4, 0x48                                      |     
    0x00014b26 add r1, pc                                        |     r1 += pc;
    0x00014b28 str r2, [sp]                                      |     *(sp) = r2;
    0x00014b2a ldr r2, [sp, 0x74]                                |     r2 = var_74h;
    0x00014b2c bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014b30 b 0x1484e                                         |     goto label_42;
                                                                 | label_121:
    0x00014b32 ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00014b34 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00014b38 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00014b3a ldr r4, [r5]                                      |     r4 = *(r5);
    0x00014b3c ldr r7, [sp, 0x30]                                |     r7 = var_30h;
    0x00014b3e bl 0x26fdc                                        |     zbx_strerror ();
    0x00014b42 ldr.w r1, [pc, 0x4c0]                             |     
    0x00014b46 mov r3, r0                                        |     r3 = r0;
    0x00014b48 mov r2, r6                                        |     r2 = r6;
    0x00014b4a mov r0, r4                                        |     r0 = r4;
    0x00014b4c add r1, pc                                        |     r1 = 0x29b56;
    0x00014b4e bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014b52 str r0, [r5]                                      |     *(r5) = r0;
    0x00014b54 b.w 0x139f4                                       |     goto label_36;
                                                                 | label_144:
    0x00014b58 ldr r7, [sp, 0x54]                                |     r7 = var_54h;
    0x00014b5a mov.w fp, 0                                       |     
    0x00014b5e ldr r3, [sp, 0xf8]                                |     r3 = var_f8h;
    0x00014b60 str.w sl, [sp, 0x38]                              |     __asm ("str.w sl, [var_38h]");
    0x00014b64 subs r2, r7, 1                                    |     r2 = r7 - 1;
    0x00014b66 mov sb, r3                                        |     sb = r3;
    0x00014b68 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00014b6a strd r2, r2, [sp, 0x2c]                           |     __asm ("strd r2, r2, [var_2ch]");
    0x00014b6c movs r2, 0xb                                      |     r2 = 0xb;
    0x00014b6e b 0x14b78                                         |     
                                                                 |     while (r3 == r2) {
                                                                 | label_43:
    0x00014b70 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00014b72 mov sb, r8                                        |         sb = r8;
    0x00014b74 cmp r3, fp                                        |         
                                                                 |         if (r3 <= fp) {
    0x00014b76 ble 0x14be2                                       |             goto label_189;
                                                                 |         }
    0x00014b78 ldrd r3, r2, [sb, 0x38]                           |         __asm ("ldrd r3, r2, [sb, 0x38]");
    0x00014b7c mov sl, fp                                        |         sl = fp;
    0x00014b7e add.w r8, sb, 0x58                                |         r8 = sb + 0x58;
    0x00014b82 add.w fp, fp, 1                                   |         
    0x00014b86 orrs r3, r2                                       |         r3 |= r2;
    0x00014b88 beq 0x14b70                                       |         
                                                                 |     }
    0x00014b8a cmp fp, r7                                        |     
    0x00014b8c ittt lt                                           |     
                                                                 |     if (fp >= r7) {
    0x00014b8e movlt r5, fp                                      |         r5 = fp;
                                                                 |     }
                                                                 |     if (fp >= r7) {
    0x00014b90 movlt r4, r8                                      |         r4 = r8;
                                                                 |     }
                                                                 |     if (fp < r7) {
    0x00014b92 movlt r6, -1                                      |         r6 = -1;
                                                                 |         goto label_190;
                                                                 |     }
                                                                 |     if (fp >= r7) {
                                                                 | label_190:
    0x00014b96 bge 0x14b70                                       |         goto label_43;
                                                                 |     }
                                                                 |     do {
    0x00014b98 ldrd r2, r3, [r4, 0x38]                           |         __asm ("ldrd r2, r3, [r4, 0x38]");
    0x00014b9c orrs r3, r2                                       |         r3 |= r2;
                                                                 |         if (r3 != r2) {
    0x00014b9e beq 0x14bc8                                       |             
    0x00014ba0 mov r1, r4                                        |             r1 = r4;
    0x00014ba2 mov r0, sb                                        |             r0 = sb;
    0x00014ba4 bl 0x1328c                                        |             r0 = fcn_0001328c (r0, r1, r2, r3);
                                                                 |             if (r0 != 0) {
    0x00014ba8 cbnz r0, 0x14bc8                                  |                 goto label_191;
                                                                 |             }
    0x00014baa ldr.w r1, [sb, 0x40]                              |             r1 = *((sb + 0x40));
    0x00014bae ldr r0, [r4, 0x40]                                |             r0 = *((r4 + 0x40));
    0x00014bb0 ldr.w r3, [sb, 0x44]                              |             r3 = *((sb + 0x44));
    0x00014bb4 ldr r2, [r4, 0x44]                                |             r2 = *((r4 + 0x44));
    0x00014bb6 cmp r0, r1                                        |             
    0x00014bb8 sbcs.w r3, r2, r3                                 |             __asm ("sbcs.w r3, r2, r3");
    0x00014bbc ite hs                                            |             
                                                                 |             if (r0 < r1) {
    0x00014bbe movhs r3, r5                                      |                 r3 = r5;
                                                                 |             }
                                                                 |             if (r0 >= r1) {
    0x00014bc0 movlo r3, sl                                      |                 r3 = sl;
                                                                 |             }
    0x00014bc2 cmp r6, r3                                        |             
    0x00014bc4 it lt                                             |             
                                                                 |             if (r6 < r3) {
    0x00014bc6 movlt r6, r3                                      |                 r6 = r3;
                                                                 |                 goto label_191;
                                                                 |             }
                                                                 |         }
                                                                 | label_191:
    0x00014bc8 adds r5, 1                                        |         r5++;
    0x00014bca adds r4, 0x58                                     |         r4 += 0x58;
    0x00014bcc cmp r5, r7                                        |         
    0x00014bce bne 0x14b98                                       |         
                                                                 |     } while (r5 != r7);
    0x00014bd0 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00014bd2 cmp.w r6, -1                                      |     
    0x00014bd6 it ne                                             |     
                                                                 |     if (r6 != -1) {
    0x00014bd8 cmpne r6, r3                                      |         __asm ("cmpne r6, r3");
                                                                 |     }
    0x00014bda it lt                                             |     
                                                                 |     if (r6 >= -1) {
    0x00014bdc movlt r3, r6                                      |         r3 = r6;
                                                                 |     }
    0x00014bde str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00014be0 b 0x14b70                                         |     goto label_43;
                                                                 | label_189:
    0x00014be2 ldrd r2, r3, [sp, 0x30]                           |     __asm ("ldrd r2, r3, [var_34h]");
    0x00014be6 movs r4, 0x58                                     |     r4 = 0x58;
    0x00014be8 ldr.w sl, [sp, 0x38]                              |     sl = var_38h;
    0x00014bec mla r4, r4, r2, r3                                |     __asm ("mla r4, r4, r2, r3");
    0x00014bf0 ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00014bf2 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00014bf4 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x00014bf6 cmp r3, r2                                        |     
                                                                 |     if (r3 >= r2) {
    0x00014bf8 bge 0x14c36                                       |         goto label_192;
                                                                 |     }
    0x00014bfa ldr r1, [sp, 0x64]                                |     r1 = var_64h;
    0x00014bfc ldr r1, [r1]                                      |     r1 = *(r1);
    0x00014bfe cmp r1, 3                                         |     
                                                                 |     if (r1 > 3) {
    0x00014c00 bgt.w 0x155c8                                     |         goto label_193;
                                                                 |     }
                                                                 | label_81:
    0x00014c04 ldr r2, [sp, 0x6c]                                |     r2 = var_6ch;
    0x00014c06 ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x00014c08 str r3, [r2]                                      |     *(r2) = r3;
    0x00014c0a ldrd r2, r3, [r4, 0x40]                           |     __asm ("ldrd r2, r3, [r4, 0x40]");
    0x00014c0e strd r2, r3, [r1]                                 |     __asm ("strd r2, r3, [r1]");
    0x00014c12 ldrd r2, r3, [sp, 0x2c]                           |     __asm ("ldrd r2, r3, [var_2ch]");
    0x00014c16 cmp r2, r3                                        |     
                                                                 |     if (r2 <= r3) {
    0x00014c18 ble 0x14c36                                       |         goto label_192;
                                                                 |     }
    0x00014c1a ldr r1, [sp, 0x54]                                |     r1 = var_54h;
    0x00014c1c adds r3, 1                                        |     r3++;
    0x00014c1e cmp r3, r1                                        |     
                                                                 |     if (r3 >= r1) {
    0x00014c20 bge 0x14c36                                       |         goto label_192;
                                                                 |     }
    0x00014c22 ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00014c24 movs r2, 0x58                                     |     r2 = 0x58;
    0x00014c26 subs r3, 0x58                                     |     r3 -= 0x58;
    0x00014c28 mla r3, r2, r1, r3                                |     __asm ("mla r3, r2, r1, r3");
    0x00014c2c movs r2, 0                                        |     r2 = 0;
                                                                 |     do {
    0x00014c2e str r2, [r4, 0x64]                                |         *((r4 + 0x64)) = r2;
    0x00014c30 adds r4, 0x58                                     |         r4 += 0x58;
    0x00014c32 cmp r4, r3                                        |         
    0x00014c34 bne 0x14c2e                                       |         
                                                                 |     } while (r4 != r3);
                                                                 | label_192:
    0x00014c36 ldr r3, [sp, 0xdc]                                |     r3 = var_dch;
    0x00014c38 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00014c3a str r2, [r3]                                      |     *(r3) = r2;
    0x00014c3c b.w 0x13de8                                       |     goto label_44;
                                                                 | label_126:
    0x00014c40 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
    0x00014c42 add.w r4, r7, 0x58                                |     r4 = r7 + 0x58;
    0x00014c46 ldr r2, [pc, 0x3c0]                               |     
    0x00014c48 mov.w r8, 0                                       |     r8 = 0;
    0x00014c4c str.w fp, [sp, 0x4c]                              |     __asm ("str.w fp, [var_4ch]");
    0x00014c50 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014c52 add r2, pc                                        |     r2 = 0x29c60;
    0x00014c54 str r7, [sp, 0x44]                                |     var_44h = r7;
    0x00014c56 str r2, [sp, 0x60]                                |     var_60h = r2;
    0x00014c58 str r3, [sp, 0x30]                                |     var_30h = r3;
    0x00014c5a ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00014c5c ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00014c5e str.w sb, [sp, 0x50]                              |     __asm ("str.w sb, [var_50h]");
    0x00014c62 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014c64 add.w sl, r2, -1                                  |     sl = r2 + -1;
    0x00014c68 add r2, sp, 0x178                                 |     r2 += var_178h;
    0x00014c6a str r2, [sp, 0x38]                                |     var_38h = r2;
    0x00014c6c mov fp, r3                                        |     
    0x00014c6e b 0x14c78                                         |     
                                                                 |     while (r2 != r3) {
                                                                 | label_45:
    0x00014c70 cmp sl, r8                                        |         
    0x00014c72 add.w r4, r4, 0x58                                |         r4 += 0x58;
                                                                 |         if (sl <= r8) {
    0x00014c76 ble 0x14d04                                       |             goto label_194;
                                                                 |         }
    0x00014c78 ldr r2, [r4, -0x54]                               |         r2 = *((r4 - 0x54));
    0x00014c7c mov sb, r8                                        |         sb = r8;
    0x00014c7e ldr r3, [r4, 4]                                   |         r3 = *((r4 + 4));
    0x00014c80 add.w r8, r8, 1                                   |         r8++;
    0x00014c84 sub.w r5, r4, 0x58                                |         r5 = r4 - 0x58;
    0x00014c88 cmp r2, r3                                        |         
    0x00014c8a bne 0x14c70                                       |         
                                                                 |     }
    0x00014c8c ldr ip, [r4, -0x4c]                               |     ip = *((r4 - 0x4c));
    0x00014c90 cmp.w ip, 0                                       |     
                                                                 |     if (ip == 0) {
    0x00014c94 bne 0x14c9c                                       |         
    0x00014c96 ldr r3, [r4, 0xc]                                 |         r3 = *((r4 + 0xc));
    0x00014c98 cmp r3, 0                                         |         
                                                                 |         if (r3 > 0) {
    0x00014c9a bgt 0x14ccc                                       |             goto label_48;
                                                                 |         }
                                                                 |     }
    0x00014c9c ldr r6, [r4, 0x18]                                |     r6 = *((r4 + 0x18));
    0x00014c9e cmp.w fp, 0                                       |     
    0x00014ca2 it ne                                             |     
                                                                 |     if (fp == 0) {
    0x00014ca4 cmpne r6, -1                                      |         __asm ("cmpne r6, -1");
                                                                 |         goto label_195;
                                                                 |     }
                                                                 |     if (fp == 0) {
                                                                 | label_195:
    0x00014ca8 beq 0x14c70                                       |         goto label_45;
                                                                 |     }
    0x00014caa movs r3, 0x58                                     |     r3 = 0x58;
    0x00014cac mul r6, r3, r6                                    |     r6 = r3 * r6;
    0x00014cb0 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00014cb2 subs r3, 1                                        |     r3--;
    0x00014cb4 cmp r3, 1                                         |     
    0x00014cb6 add.w r7, fp, r6                                  |     r7 = fp + r6;
                                                                 |     if (r3 < 1) {
    0x00014cba bls 0x14d0e                                       |         goto label_196;
                                                                 |     }
                                                                 | label_47:
    0x00014cbc ldr.w r0, [fp, r6]                                |     r0 = *((fp + r6));
    0x00014cc0 ldr r1, [r4, -0x58]                               |     r1 = *((r4 - 0x58));
    0x00014cc4 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00014cc8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00014cca bne 0x14c70                                       |         goto label_45;
                                                                 |     }
                                                                 | label_48:
    0x00014ccc ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00014cce ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014cd0 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00014cd2 bgt.w 0x15434                                     |         goto label_197;
                                                                 |     }
                                                                 | label_72:
    0x00014cd6 ldr r2, [sp, 0x9c]                                |     r2 = var_9ch;
    0x00014cd8 mov r1, r5                                        |     r1 = r5;
    0x00014cda ldr r6, [sp, 0x38]                                |     r6 = var_38h;
    0x00014cdc mov r3, r2                                        |     r3 = r2;
    0x00014cde cmp r2, r8                                        |     
    0x00014ce0 it eq                                             |     
                                                                 |     if (r2 != r8) {
    0x00014ce2 moveq r3, sb                                      |         r3 = sb;
                                                                 |     }
    0x00014ce4 mov r0, r6                                        |     r0 = r6;
    0x00014ce6 movs r2, 0x58                                     |     r2 = 0x58;
    0x00014ce8 str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x00014cea blx 0xbd78                                        |     fcn_0000bd78 ();
    0x00014cee mov r1, r4                                        |     r1 = r4;
    0x00014cf0 mov r0, r5                                        |     r0 = r5;
    0x00014cf2 movs r2, 0x58                                     |     r2 = 0x58;
    0x00014cf4 blx 0xbd78                                        |     fcn_0000bd78 ();
    0x00014cf8 movs r2, 0x58                                     |     r2 = 0x58;
    0x00014cfa mov r1, r6                                        |     r1 = r6;
    0x00014cfc mov r0, r4                                        |     r0 = r4;
    0x00014cfe blx 0xbd78                                        |     fcn_0000bd78 ();
    0x00014d02 b 0x14c70                                         |     goto label_45;
                                                                 | label_194:
    0x00014d04 ldr r7, [sp, 0x44]                                |     r7 = var_44h;
    0x00014d06 ldrd fp, sb, [sp, 0x4c]                           |     __asm ("ldrd fp, sb, [var_4ch]");
    0x00014d0a b.w 0x13a84                                       |     goto label_46;
                                                                 | label_196:
    0x00014d0e ldr r0, [r7, 0x28]                                |     r0 = *((r7 + 0x28));
    0x00014d10 ldrd r1, r3, [r4, -0x30]                          |     __asm ("ldrd r1, r3, [r4, -0x30]");
    0x00014d14 ldr r2, [r7, 0x2c]                                |     r2 = *((r7 + 0x2c));
    0x00014d16 cmp r2, r3                                        |     
    0x00014d18 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x00014d1a cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_198;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_198:
    0x00014d1c bne 0x14cbc                                       |         goto label_47;
                                                                 |     }
    0x00014d1e ldr r0, [r7, 0x20]                                |     r0 = *((r7 + 0x20));
    0x00014d20 ldrd r1, r3, [r4, -0x38]                          |     __asm ("ldrd r1, r3, [r4, -0x38]");
    0x00014d24 ldr r2, [r7, 0x24]                                |     r2 = *((r7 + 0x24));
    0x00014d26 cmp r2, r3                                        |     
    0x00014d28 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x00014d2a cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_199;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_199:
    0x00014d2c bne 0x14cbc                                       |         goto label_47;
                                                                 |     }
    0x00014d2e ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00014d30 cmp r3, 2                                         |     
                                                                 |     if (r3 != 2) {
    0x00014d32 bne 0x14d44                                       |         goto label_200;
                                                                 |     }
    0x00014d34 ldrd r1, r0, [r7, 0x30]                           |     __asm ("ldrd r1, r0, [r7, 0x30]");
    0x00014d38 ldrd r7, r3, [r4, -0x28]                          |     __asm ("ldrd r7, r3, [r4, -0x28]");
    0x00014d3c cmp r0, r3                                        |     
    0x00014d3e it eq                                             |     
                                                                 |     if (r0 != r3) {
    0x00014d40 cmpeq r1, r7                                      |         __asm ("cmpeq r1, r7");
                                                                 |         goto label_201;
                                                                 |     }
                                                                 |     if (r0 != r3) {
                                                                 | label_201:
    0x00014d42 bne 0x14cbc                                       |         goto label_47;
                                                                 |     }
                                                                 | label_200:
    0x00014d44 ldr r3, [r4, 0xc]                                 |     r3 = *((r4 + 0xc));
    0x00014d46 cmp ip, r3                                        |     
                                                                 |     if (ip < r3) {
    0x00014d48 blt 0x14c70                                       |         goto label_45;
                                                                 |     }
    0x00014d4a b 0x14ccc                                         |     goto label_48;
                                                                 | label_141:
    0x00014d4c mov sl, r4                                        |     sl = r4;
    0x00014d4e b.w 0x13dd6                                       |     goto label_35;
                                                                 | label_158:
    0x00014d52 mov r0, r5                                        |     r0 = r5;
    0x00014d54 ldr.w fp, [sp, 0x54]                              |     fp = var_54h;
    0x00014d58 ldr.w sb, [sp, 0x60]                              |     sb = var_60h;
    0x00014d5c blx 0xc494                                        |     r0 = fcn_0000c494 ();
    0x00014d60 adds r2, r0, 1                                    |     r2 = r0 + 1;
    0x00014d62 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r2 == r0) {
    0x00014d64 beq.w 0x15a86                                     |         goto label_202;
                                                                 |     }
    0x00014d68 ldr r3, [sp, 0xf0]                                |     r3 = var_f0h;
    0x00014d6a cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014d6c beq.w 0x155ec                                     |         goto label_203;
                                                                 |     }
                                                                 | label_82:
    0x00014d70 ldr r0, [sp, 0x10c]                               |     r0 = var_10ch;
    0x00014d72 bl 0x27e54                                        |     zbx_regexp_free ();
    0x00014d76 mov r0, r8                                        |     r0 = r8;
    0x00014d78 blx 0xbd14                                        |     gai_strerror ();
    0x00014d7c ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00014d7e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014d80 beq.w 0x1395e                                     |         goto label_49;
                                                                 |     }
    0x00014d84 movs r5, 1                                        |     r5 = 1;
    0x00014d86 movs r4, 0                                        |     r4 = 0;
                                                                 | label_84:
    0x00014d88 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00014d8a blx 0xbd14                                        |     gai_strerror ();
    0x00014d8e cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00014d90 bne.w 0x1395e                                     |         goto label_49;
                                                                 |     }
    0x00014d94 b 0x14e30                                         |     goto label_83;
                                                                 | label_174:
    0x00014d96 ldr r2, [r8, -0x44]                               |     r2 = *((r8 - 0x44));
    0x00014d9a ldr r3, [r4, -0x44]                               |     r3 = *((r4 - 0x44));
    0x00014d9e cmp r2, r3                                        |     
                                                                 |     if (r2 >= r3) {
    0x00014da0 bge.w 0x147e2                                     |         goto label_50;
                                                                 |     }
    0x00014da4 ldr r3, [r8, -0x38]                               |     r3 = *((r8 - 0x38));
    0x00014da8 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014daa beq.w 0x156ee                                     |         goto label_204;
                                                                 |     }
    0x00014dae cmp r6, 3                                         |     
    0x00014db0 ldr.w r2, [fp]                                    |     r2 = *(fp);
                                                                 |     if (r6 == 3) {
    0x00014db4 beq.w 0x1567e                                     |         goto label_205;
                                                                 |     }
    0x00014db8 cmp r2, 2                                         |     
                                                                 |     if (r2 <= 2) {
    0x00014dba ble.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x00014dbe ldr r2, [r8, -0x48]                               |     r2 = *((r8 - 0x48));
    0x00014dc2 movs r0, 3                                        |     r0 = 3;
    0x00014dc4 ldr r1, [sp, 0x7c]                                |     r1 = var_7ch;
    0x00014dc6 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014dca b 0x14840                                         |     goto label_51;
                                                                 | label_154:
    0x00014dcc movs r0, 0                                        |     r0 = 0;
    0x00014dce bl 0x3a204                                        |     zbx_result_string ();
    0x00014dd2 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x00014dd4 mov r3, r0                                        |     r3 = r0;
    0x00014dd6 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x00014dd8 bne.w 0x1555a                                     |         goto label_206;
                                                                 |     }
    0x00014ddc ldr r1, [pc, 0x22c]                               |     
    0x00014dde movs r0, 4                                        |     r0 = 4;
    0x00014de0 ldr r2, [pc, 0x22c]                               |     
    0x00014de2 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00014de6 add r1, pc                                        |     r1 = 0x29df6;
    0x00014de8 str r1, [sp, 4]                                   |     var_4h = r1;
    0x00014dea add r2, pc                                        |     r2 = 0x29dfe;
    0x00014dec ldr r1, [pc, 0x224]                               |     
    0x00014dee adds r2, 0x1c                                     |     r2 += 0x1c;
    0x00014df0 add r1, pc                                        |     r1 = 0x29e08;
    0x00014df2 bl 0x271b0                                        |     zbx_zabbix_log ();
                                                                 | label_79:
    0x00014df6 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00014df8 mov r2, r7                                        |     r2 = r7;
    0x00014dfa add r1, sp, 0x10c                                 |     r1 += var_10ch;
    0x00014dfc bl 0x27e3c                                        |     r0 = zbx_regexp_compile ();
    0x00014e00 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00014e02 beq.w 0x13efa                                     |         goto label_52;
                                                                 |     }
    0x00014e06 ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x00014e08 ldr r1, [pc, 0x20c]                               |     
    0x00014e0a ldr r2, [sp, 0x110]                               |     r2 = var_110h;
    0x00014e0c ldr r0, [r4]                                      |     r0 = *(r4);
    0x00014e0e add r1, pc                                        |     r1 = 0x29e2a;
    0x00014e10 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014e14 str r0, [r4]                                      |     *(r4) = r0;
    0x00014e16 cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00014e1a bne.w 0x15760                                     |         goto label_207;
                                                                 |     }
    0x00014e1e ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00014e20 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00014e22 beq.w 0x14a1e                                     |         goto label_53;
                                                                 |     }
    0x00014e26 mov.w r4, -1                                      |     r4 = -1;
    0x00014e2a ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00014e2c blx 0xbd14                                        |     gai_strerror ();
                                                                 | label_83:
    0x00014e30 ldr r7, [sp, 0xf8]                                |     r7 = var_f8h;
                                                                 |     if (r7 != 0) {
                                                                 | label_172:
    0x00014e32 cbz r7, 0x14e3e                                   |         
    0x00014e34 add r2, sp, 0xf0                                  |         r2 += var_f0h;
    0x00014e36 add r1, sp, 0xf4                                  |         r1 += var_f4h;
    0x00014e38 add r0, sp, 0xf8                                  |         r0 += var_f8h;
    0x00014e3a bl 0x13780                                        |         destroy_logfile_list ();
                                                                 |     }
    0x00014e3e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00014e40 beq.w 0x13a24                                     |         goto label_30;
                                                                 |     }
    0x00014e44 cmp r4, 3                                         |     
                                                                 |     if (r4 != 3) {
    0x00014e46 beq 0x14e6a                                       |         
    0x00014e48 b.w 0x13a08                                       |         goto label_54;
                                                                 | label_118:
    0x00014e4c ldr r6, [sp, 0x88]                                |         r6 = var_88h;
    0x00014e4e blx 0xc15c                                        |         fcn_0000c15c ();
    0x00014e50 invalid                                           |         
    0x00014e54 ldr r5, [r6]                                      |         r5 = *(r6);
    0x00014e56 bl 0x26fdc                                        |         zbx_strerror ();
    0x00014e5a ldr r1, [pc, 0x1c0]                               |         
    0x00014e5c mov r3, r0                                        |         r3 = r0;
    0x00014e5e mov r2, r4                                        |         r2 = r4;
    0x00014e60 mov r0, r5                                        |         r0 = r5;
    0x00014e62 add r1, pc                                        |         r1 = 0x29e84;
    0x00014e64 bl 0x396b0                                        |         zbx_dsprintf ()
    0x00014e68 str r0, [r6]                                      |         *(r6) = r0;
                                                                 |     }
    0x00014e6a ldr r3, [sp, 0x94]                                |     r3 = var_94h;
    0x00014e6c ldrb r3, [r3]                                     |     r3 = *(r3);
    0x00014e6e cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x00014e70 beq 0x14eda                                       |         goto label_208;
                                                                 |     }
                                                                 | label_56:
    0x00014e72 ldr r3, [sp, 0x98]                                |     r3 = var_98h;
    0x00014e74 lsls r5, r3, 0x1c                                 |     r5 = r3 << 0x1c;
                                                                 |     if (r5 >= r3) {
    0x00014e76 bpl.w 0x14732                                     |         goto label_55;
                                                                 |     }
    0x00014e7a ldr r3, [sp, 0x34]                                |     r3 = var_34h;
    0x00014e7c ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014e7e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00014e80 bne.w 0x14732                                     |         goto label_55;
                                                                 |     }
    0x00014e84 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00014e86 vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x00014e8a vstr d16, [r3]                                    |     __asm ("vstr d16, [r3]");
    0x00014e8e b 0x14732                                         |     goto label_55;
                                                                 | label_138:
    0x00014e90 ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00014e92 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00014e96 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00014e98 ldr r4, [r5]                                      |     r4 = *(r5);
    0x00014e9a bl 0x26fdc                                        |     zbx_strerror ();
    0x00014e9e ldr r1, [pc, 0x180]                               |     
    0x00014ea0 mov r3, r0                                        |     r3 = r0;
    0x00014ea2 ldr r2, [sp, 0x78]                                |     r2 = var_78h;
    0x00014ea4 mov r0, r4                                        |     r0 = r4;
    0x00014ea6 add r1, pc                                        |     r1 = 0x29ecc;
    0x00014ea8 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00014eac str r0, [r5]                                      |     *(r5) = r0;
                                                                 | label_73:
    0x00014eae ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00014eb0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014eb2 cmp r3, 3                                         |     
    0x00014eb4 it le                                             |     
                                                                 |     if (r3 <= 3) {
    0x00014eb6 movle r4, -1                                      |         r4 = -1;
                                                                 |         goto label_209;
                                                                 |     }
                                                                 |     if (r3 <= 3) {
                                                                 | label_209:
    0x00014eba ble.w 0x13d40                                     |         goto label_15;
                                                                 |     }
    0x00014ebe ldr r3, [sp, 0x6c]                                |     r3 = var_6ch;
    0x00014ec0 mov.w r0, -1                                      |     r0 = -1;
    0x00014ec4 movs r5, 0                                        |     r5 = 0;
    0x00014ec6 mov r4, r0                                        |     r4 = r0;
    0x00014ec8 ldr r6, [r3]                                      |     r6 = *(r3);
    0x00014eca ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00014ecc vldr d9, [r3]                                     |     __asm ("vldr d9, [r3]");
    0x00014ed0 bl 0x3a204                                        |     zbx_result_string ();
    0x00014ed4 mov r3, r5                                        |     r3 = r5;
    0x00014ed6 b.w 0x143f2                                       |     goto label_19;
                                                                 | label_208:
    0x00014eda ldr r2, [sp, 0x94]                                |     r2 = var_94h;
    0x00014edc movs r3, 0                                        |     r3 = 0;
    0x00014ede strb r3, [r2]                                     |     *(r2) = r3;
    0x00014ee0 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00014ee2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00014ee4 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x00014ee6 ble 0x14e72                                       |         goto label_56;
                                                                 |     }
    0x00014ee8 ldr r2, [pc, 0x138]                               |     
    0x00014eea movs r0, 4                                        |     r0 = 4;
    0x00014eec ldr r1, [pc, 0x138]                               |     
    0x00014eee add r2, pc                                        |     r2 = 0x29f16;
    0x00014ef0 adds r2, 0xc                                      |     r2 += 0xc;
    0x00014ef2 add r1, pc                                        |     r1 = 0x29f1e;
    0x00014ef4 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00014ef8 b 0x14e72                                         |     goto label_56;
                                                                 | label_169:
    0x00014f14 ldr r3, [sp, 0xe8]                                |     r3 = var_e8h;
    0x00014f16 vcvt.f64.f32 d11, s16                             |     __asm ("vcvt.f64.f32 d11, s16");
    0x00014f1a ldrd sl, r1, [r3]                                 |     __asm ("ldrd sl, r1, [r3]");
    0x00014f1c adr r1, 0                                         |     r1 = 0;
    0x00014f1e str r1, [sp, 0x30]                                |     var_30h = r1;
    0x00014f20 bl 0x34f20                                        |     zbx_time ();
    0x00014f24 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00014f26 orrs.w r3, sl, r1                                 |     r3 = sl | r1;
                                                                 |     if (r3 != sl) {
    0x00014f2a bne.w 0x151f0                                     |         goto label_210;
                                                                 |     }
    0x00014f2c strh r1, [r4, 0xa]                                |     *((r4 + 0xa)) = r1;
                                                                 | label_61:
    0x00014f2e vmov.i64 d10, 0                                   |     __asm ("vmov.i64 d10, 0");
                                                                 | label_62:
    0x00014f32 vcmpe.f64 d11, d10                                |     __asm ("vcmpe.f64 d11, d10");
    0x00014f36 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 >= sl) {
    0x00014f3a bpl.w 0x145c6                                     |         goto label_57;
                                                                 |     }
    0x00014f3e vsub.f64 d11, d10, d11                            |     __asm ("vsub.f64 d11, d10, d11");
    0x00014f42 mov r0, r4                                        |     r0 = r4;
    0x00014f44 mov r1, r5                                        |     r1 = r5;
    0x00014f46 bl 0x4152c                                        |     r0 = fcn_0004152c (r0, r1, r2);
    0x00014f4a vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x00014f4c lsrs r0, r6, 0xc                                  |     r0 = r6 >> 0xc;
    0x00014f4e vmul.f64 d16, d16, d11                            |     __asm ("vmul.f64 d16, d16, d11");
    0x00014f52 vdiv.f64 d16, d16, d10                            |     __asm ("vdiv.f64 d16, d16, d10");
    0x00014f56 vmov r0, r1, d16                                  |     __asm ("vmov r0, r1, d16");
    0x00014f5a bl 0x415d8                                        |     fcn_000415d8 (r0, r1);
    0x00014f5e ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00014f60 mov sl, r0                                        |     sl = r0;
    0x00014f62 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00014f64 mov r0, r1                                        |     r0 = r1;
    0x00014f66 ldrd r3, r4, [r3]                                 |     __asm ("ldrd r3, r4, [r3]");
    0x00014f6a strd r3, r4, [sp, 0x38]                           |     __asm ("strd r3, r4, [var_38h]");
    0x00014f6e ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x00014f70 cmp r3, r2                                        |     
                                                                 |     if (r3 >= r2) {
    0x00014f72 bge.w 0x157e0                                     |         goto label_211;
                                                                 |     }
    0x00014f76 ldr r1, [pc, 0xb4]                                |     
    0x00014f78 mov r8, r3                                        |     r8 = r3;
    0x00014f7a movs r3, 1                                        |     r3 = 1;
    0x00014f7c mov.w r4, -1                                      |     r4 = -1;
    0x00014f80 strd r3, r7, [sp, 0x30]                           |     __asm ("strd r3, r7, [var_34h]");
    0x00014f84 mov r7, r0                                        |     r7 = r0;
    0x00014f86 add r1, pc                                        |     r1 = 0x29fb8;
    0x00014f88 str.w fp, [sp, 0x44]                              |     __asm ("str.w fp, [var_44h]");
    0x00014f8c str.w sb, [sp, 0x4c]                              |     __asm ("str.w sb, [var_4ch]");
    0x00014f90 b 0x15040                                         |     
                                                                 |     while (r3 == 0) {
    0x00015030 ldr r3, [sp, 0x54]                                |         r3 = var_54h;
    0x00015032 add.w r8, r8, 1                                   |         r8++;
    0x00015036 cmp r8, r3                                        |         
                                                                 |         if (r8 >= r3) {
    0x00015038 bge.w 0x15576                                     |             goto label_212;
                                                                 |         }
                                                                 | label_58:
    0x0001503c movs r3, 0                                        |         r3 = 0;
    0x0001503e str r3, [sp, 0x30]                                |         var_30h = r3;
    0x00015040 ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00015042 movs r2, 0x58                                     |         r2 = 0x58;
    0x00015044 mla r5, r2, r8, r3                                |         __asm ("mla r5, r2, r8, r3");
    0x00015048 ldrd r3, r6, [r5, 0x38]                           |         __asm ("ldrd r3, r6, [r5, 0x38]");
    0x0001504c ldrd r2, ip, [r5, 0x40]                           |         __asm ("ldrd r2, ip, [r5, 0x40]");
    0x00015050 cmp r6, ip                                        |         
    0x00015052 it eq                                             |         
                                                                 |         if (r6 == ip) {
    0x00015054 cmpeq r3, r2                                      |             __asm ("cmpeq r3, r2");
                                                                 |         }
                                                                 |         if (r6 != ip) {
    0x00015056 beq 0x150a0                                       |             
    0x00015058 subs r4, r3, r2                                   |             r4 = r3 - r2;
    0x0001505a sbc.w r6, r6, ip                                  |             __asm ("sbc.w r6, r6, ip");
    0x0001505e cmp sl, r4                                        |             
    0x00015060 sbcs.w r3, r7, r6                                 |             __asm ("sbcs.w r3, r7, r6");
    0x00015064 ldr r3, [sp, 0x64]                                |             r3 = var_64h;
    0x00015066 itt lo                                            |             
                                                                 |             if (sl >= r4) {
    0x00015068 movlo r4, sl                                      |                 r4 = sl;
                                                                 |             }
                                                                 |             if (sl >= r4) {
    0x0001506a movlo r6, r7                                      |                 r6 = r7;
                                                                 |             }
    0x0001506c adds.w fp, r2, r4                                 |             
    0x00015070 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00015072 adc.w sb, ip, r6                                  |             __asm ("adc.w sb, ip, r6");
    0x00015076 cmp r3, 2                                         |             
                                                                 |             if (r3 > 2) {
    0x00015078 bgt.w 0x1544c                                     |                 goto label_213;
                                                                 |             }
                                                                 | label_74:
    0x0001507c ldr r3, [sp, 0x28]                                |             r3 = var_28h;
    0x0001507e subs.w r4, sl, r4                                 |             r4 = sl - r4;
    0x00015082 strd fp, sb, [r5, 0x40]                           |             __asm ("strd fp, sb, [r5, 0x40]");
    0x00015086 mov sl, r4                                        |             sl = r4;
    0x00015088 ldr r2, [sp, 0x6c]                                |             r2 = var_6ch;
    0x0001508a sbc.w r7, r7, r6                                  |             __asm ("sbc.w r7, r7, r6");
    0x0001508e strd fp, sb, [r3]                                 |             __asm ("strd fp, sb, [r3]");
    0x00015092 mov r4, r8                                        |             r4 = r8;
    0x00015094 ldr r3, [r5, 4]                                   |             r3 = *((r5 + 4));
    0x00015096 str r3, [r2]                                      |             *(r2) = r3;
    0x00015098 ldr r3, [sp, 0x90]                                |             r3 = var_90h;
    0x0001509a str r3, [r5, 0xc]                                 |             *((r5 + 0xc)) = r3;
    0x0001509c adds r3, 1                                        |             r3++;
    0x0001509e str r3, [sp, 0x90]                                |             var_90h = r3;
                                                                 |         }
    0x000150a0 orrs.w r3, sl, r7                                 |         r3 = sl | r7;
                                                                 |         if (r3 == sl) {
    0x000150a4 beq.w 0x15576                                     |             goto label_212;
                                                                 |         }
    0x000150a8 ldr r3, [sp, 0x30]                                |         r3 = var_30h;
    0x000150aa cmp r3, 0                                         |         
    0x000150ac beq 0x15030                                       |         
                                                                 |     }
    0x000150ae mov.w r8, 0                                       |     r8 = 0;
    0x000150b2 b 0x1503c                                         |     goto label_58;
                                                                 | label_173:
    0x000150b4 ldr r2, [r8, -0x44]                               |     r2 = *((r8 - 0x44));
    0x000150b8 ldr r3, [r4, -0x44]                               |     r3 = *((r4 - 0x44));
    0x000150bc cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x000150be bgt.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000150c2 ldr r1, [r8, -0x40]                               |     r1 = *((r8 - 0x40));
    0x000150c6 adds r0, r1, 1                                    |     r0 = r1 + 1;
                                                                 |     if (r0 == r1) {
    0x000150c8 beq.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000150cc ldr ip, [r4, -0x40]                               |     ip = *((r4 - 0x40));
    0x000150d0 cmp.w ip, -1                                      |     
                                                                 |     if (ip == -1) {
    0x000150d4 beq.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000150d8 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000150da subs r3, 1                                        |     r3--;
    0x000150dc cmp r3, 1                                         |     
    0x000150de it hi                                             |     
                                                                 |     if (r3 <= 1) {
    0x000150e0 movhi r5, -1                                      |         r5 = -1;
                                                                 |     }
                                                                 |     if (r3 < 1) {
    0x000150e4 bls.w 0x156ac                                     |         goto label_214;
                                                                 |     }
                                                                 | label_87:
    0x000150e8 cmp r1, ip                                        |     
                                                                 |     if (r1 == ip) {
    0x000150ea beq.w 0x153f2                                     |         goto label_215;
                                                                 |     }
    0x000150ee cmp.w ip, 0                                       |     
    0x000150f2 it gt                                             |     
                                                                 |     if (ip <= 0) {
    0x000150f4 cmpgt r1, 0                                       |         __asm ("cmpgt r1, 0");
                                                                 |         goto label_216;
                                                                 |     }
                                                                 |     if (ip <= 0) {
                                                                 | label_216:
    0x000150f6 ble.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000150fa cmp r1, ip                                        |     
    0x000150fc ldr r1, [sp, 0x88]                                |     r1 = var_88h;
    0x000150fe itte ge                                           |     
                                                                 |     if (r1 < ip) {
    0x00015100 strge sl, [sp, 0xd8]                              |         var_d8h = sl;
                                                                 |     }
                                                                 |     if (r1 >= ip) {
    0x00015104 ldrlt sl, [sp, 0x60]                              |         sl = var_60h;
                                                                 |     }
                                                                 |     if (r1 < ip) {
    0x00015108 ldr r3, [sp, 0x60]                                |         r3 = var_60h;
                                                                 |     }
    0x0001510a ldr.w r0, [sl]                                    |     r0 = *(sl);
    0x0001510e it lt                                             |     
                                                                 |     if (r1 >= ip) {
    0x00015110 strlt r3, [sp, 0xd8]                              |         var_d8h = r3;
                                                                 |     }
    0x00015112 bl 0x13368                                        |     r0 = fcn_00013368 (r0, r1);
    0x00015116 mov r3, r0                                        |     r3 = r0;
    0x00015118 str r0, [sp, 0x84]                                |     var_84h = r0;
    0x0001511a adds r3, 1                                        |     r3++;
                                                                 |     if (r3 != 1) {
    0x0001511c beq 0x15184                                       |         
    0x0001511e ldr r2, [sp, 0xd8]                                |         r2 = var_d8h;
    0x00015120 ldr.w r3, [sl]                                    |         r3 = *(sl);
    0x00015124 ldr r1, [r2, 8]                                   |         r1 = *((r2 + 8));
    0x00015126 ldr r2, [sp, 0x88]                                |         r2 = var_88h;
    0x00015128 str r2, [sp]                                      |         *(sp) = r2;
    0x0001512a add r2, sp, 0x1d4                                 |         r2 += var_1d4h;
    0x0001512c str r2, [sp, 0xe4]                                |         var_e4h = r2;
    0x0001512e bl 0x13050                                        |         r0 = fcn_00013050 (r0, r1, r2, r3, r4);
    0x00015132 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00015134 bne.w 0x15a7c                                     |             goto label_217;
                                                                 |         }
    0x00015138 ldr r2, [sp, 0xe4]                                |         r2 = var_e4h;
    0x0001513a mov r1, r2                                        |         r1 = r2;
    0x0001513c ldr r2, [sp, 0xd8]                                |         r2 = var_d8h;
    0x0001513e adds r2, 0x48                                     |         r2 += 0x48;
    0x00015140 mov r0, r2                                        |         r0 = r2;
    0x00015142 movs r2, 0x10                                     |         r2 = 0x10;
    0x00015144 blx 0xbddc                                        |         r0 = fcn_0000bddc ();
    0x00015148 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0001514a bne.w 0x15a6c                                     |             goto label_218;
                                                                 |         }
    0x0001514e ldr r0, [sp, 0x84]                                |         r0 = var_84h;
    0x00015150 cmp r5, 0                                         |         
                                                                 |         if (r5 != 0) {
    0x00015152 bne.w 0x15aee                                     |             goto label_219;
                                                                 |         }
    0x00015156 blx 0xc47c                                        |         r0 = fcn_0000c47c ();
    0x0001515a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0001515c beq.w 0x15408                                     |             goto label_220;
                                                                 |         }
                                                                 | label_110:
    0x00015160 ldr r6, [sp, 0x88]                                |         r6 = var_88h;
    0x00015162 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x00015166 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00015168 ldr.w r5, [sl]                                    |         r5 = *(sl);
    0x0001516c ldr r4, [r6]                                      |         r4 = *(r6);
    0x0001516e bl 0x26fdc                                        |         zbx_strerror ();
    0x00015172 ldr.w r1, [pc, 0x988]                             |         
    0x00015176 mov r3, r0                                        |         r3 = r0;
    0x00015178 mov r2, r5                                        |         r2 = r5;
    0x0001517a mov r0, r4                                        |         r0 = r4;
    0x0001517c add r1, pc                                        |         r1 = 0x2ac7e;
    0x0001517e bl 0x396b0                                        |         zbx_dsprintf ()
    0x00015180 invalid                                           |         
                                                                 |     }
                                                                 | label_63:
    0x00015184 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
                                                                 |     if (r0 != 0) {
    0x00015186 cbz r0, 0x1518c                                   |         
    0x00015188 blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
                                                                 | label_88:
    0x0001518c add r2, sp, 0xf0                                  |     r2 += var_f0h;
    0x0001518e add r1, sp, 0xf4                                  |     r1 += var_f4h;
    0x00015190 add r0, sp, 0xf8                                  |     r0 += var_f8h;
    0x00015192 bl 0x13780                                        |     destroy_logfile_list ();
    0x00015196 b.w 0x13fd8                                       |     goto label_31;
                                                                 | label_159:
    0x000151aa ldr.w r3, [pc, 0x954]                             |     r3 = *(0x00015b00);
    0x000151ae add r3, pc                                        |     r3 += pc;
    0x000151b0 b.w 0x13fb6                                       |     goto label_59;
                                                                 | label_115:
    0x000151b4 ldr r3, [sp, 0xe8]                                |     r3 = var_e8h;
    0x000151b6 mov.w sl, 0                                       |     sl = 0;
    0x000151ba vmov.i32 d16, 0                                   |     __asm ("vmov.i32 d16, 0");
    0x000151be vstr d16, [r3]                                    |     __asm ("vstr d16, [r3]");
    0x000151c2 b.w 0x13e02                                       |     goto label_7;
                                                                 | label_178:
    0x000151c6 cmp r5, 2                                         |     
                                                                 |     if (r5 != 2) {
    0x000151c8 bne.w 0x147c0                                     |         goto label_60;
                                                                 |     }
    0x000151cc ldrd r0, r2, [r8, -0x18]                          |     __asm ("ldrd r0, r2, [r8, -0x18]");
    0x000151d0 ldrd r1, r3, [r4, -0x18]                          |     __asm ("ldrd r1, r3, [r4, -0x18]");
    0x000151d4 cmp r2, r3                                        |     
    0x000151d6 it eq                                             |     
                                                                 |     if (r2 != r3) {
    0x000151d8 cmpeq r0, r1                                      |         __asm ("cmpeq r0, r1");
                                                                 |         goto label_221;
                                                                 |     }
                                                                 |     if (r2 != r3) {
                                                                 | label_221:
    0x000151da bne.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000151de b.w 0x147c0                                       |     goto label_60;
                                                                 | label_168:
    0x000151e2 movs r3, 0                                        |     r3 = 0;
    0x000151e4 mov sl, r3                                        |     sl = r3;
    0x000151e6 strd r3, r3, [sp, 0xa0]                           |     __asm ("strd r3, r3, [var_a0h]");
    0x000151ea str r3, [sp, 0x84]                                |     var_84h = r3;
    0x000151ec b.w 0x13dd6                                       |     goto label_35;
                                                                 | label_210:
    0x000151f0 ldr r3, [sp, 0xd4]                                |     r3 = var_d4h;
    0x000151f2 vldr d9, [r3]                                     |     __asm ("vldr d9, [r3]");
    0x000151f6 vsub.f64 d9, d0, d9                               |     __asm ("vsub.f64 d9, d0, d9");
    0x000151fa vcmpe.f64 d9, 0                                   |     __asm ("vcmpe.f64 d9, 0");
    0x000151fe vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r3 <= 0) {
    0x00015202 ble.w 0x14f2e                                     |         goto label_61;
                                                                 |     }
    0x00015206 mov r0, sl                                        |     r0 = sl;
    0x00015208 bl 0x4152c                                        |     r0 = fcn_0004152c (r0, r1, r2);
    0x0001520c vmov d12, r0, r1                                  |     __asm ("vmov d12, r0, r1");
    0x00015210 mov r0, r6                                        |     r0 = r6;
    0x00015212 mov r1, r5                                        |     r1 = r5;
    0x00015214 bl 0x4152c                                        |     fcn_0004152c (r0, r1, r2);
    0x00015218 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x0001521a vmov d16, r0, r1                                  |     __asm ("vmov d16, r0, r1");
    0x0001521e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00015220 vmul.f64 d16, d16, d9                             |     __asm ("vmul.f64 d16, d16, d9");
    0x00015224 cmp r3, 3                                         |     
    0x00015226 vdiv.f64 d10, d16, d12                            |     __asm ("vdiv.f64 d10, d16, d12");
    0x00015228 add r3, sp, 0x230                                 |     r3 = sp + case.0x3207a.11;
                                                                 |     if (r3 <= 3) {
    0x0001522a ble.w 0x14f32                                     |         goto label_62;
                                                                 |     }
    0x0001522c add r6, sp, 0x208                                 |     r6 = sp + case.0x3207a.11;
    0x0001522e ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00015230 mov r2, sl                                        |     r2 = sl;
    0x00015232 mov r0, r6                                        |     r0 = r6;
    0x00015234 mov r1, r5                                        |     r1 = r5;
    0x00015236 vstr d10, [sp, 0x20]                              |     __asm ("vstr d10, [sp, 0x20]");
    0x0001523a bl 0x41598                                        |     fcn_00041598 (r0, r1, r2, r3);
    0x0001523e vdiv.f64 d16, d12, d9                             |     __asm ("vdiv.f64 d16, d12, d9");
    0x00015242 mov r2, sl                                        |     r2 = sl;
    0x00015244 strd r0, r1, [sp, 0x18]                           |     __asm ("strd r0, r1, [var_18h]");
    0x00015248 movs r0, 4                                        |     r0 = 4;
    0x0001524a ldr.w r1, [pc, 0x8b8]                             |     
    0x0001524e ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00015250 strd r6, r5, [sp]                                 |     __asm ("strd r6, r5, [sp]");
    0x00015254 add r1, pc                                        |     r1 = 0x2ad5e;
    0x00015256 vstr d9, [sp, 8]                                  |     __asm ("vstr d9, [sp, 8]");
    0x0001525a vstr d16, [sp, 0x10]                              |     __asm ("vstr d16, [sp, 0x10]");
    0x0001525e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015262 b 0x14f32                                         |     goto label_62;
                                                                 | label_176:
    0x00015264 ldr r0, [r4, -0x48]                               |     r0 = *((r4 - 0x48));
    0x00015268 ldr r1, [sp, 0x88]                                |     r1 = var_88h;
    0x0001526a bl 0x13368                                        |     r0 = fcn_00013368 (r0, r1);
    0x0001526e adds r3, r0, 1                                    |     r3 = r0 + 1;
    0x00015270 mov r5, r0                                        |     r5 = r0;
                                                                 |     if (r3 == r0) {
    0x00015272 beq 0x15184                                       |         goto label_63;
                                                                 |     }
    0x00015274 ldr r2, [sp, 0x88]                                |     r2 = var_88h;
    0x00015276 ldr r3, [r4, -0x48]                               |     r3 = *((r4 - 0x48));
    0x0001527a ldr r1, [r8, -0x40]                               |     r1 = *((r8 - 0x40));
    0x0001527e str r2, [sp]                                      |     *(sp) = r2;
    0x00015280 add r2, sp, 0x1d4                                 |     r2 += var_1d4h;
    0x00015282 str r2, [sp, 0x84]                                |     var_84h = r2;
    0x00015284 bl 0x13050                                        |     fcn_00013050 (r0, r1, r2, r3, r4);
    0x00015288 ldr r2, [sp, 0x84]                                |     r2 = var_84h;
    0x0001528a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001528c beq.w 0x15712                                     |         goto label_222;
                                                                 |     }
    0x00015290 mov r0, r5                                        |     r0 = r5;
    0x00015292 blx 0xc47c                                        |     fcn_0000c47c ();
    0x00015296 b 0x15184                                         |     goto label_63;
                                                                 | label_160:
    0x00015298 mov.w sl, -1                                      |     sl = -1;
    0x0001529c b.w 0x138ce                                       |     goto label_2;
                                                                 | label_182:
    0x000152a0 cmp r6, 1                                         |     
                                                                 |     if (r6 != 1) {
    0x000152a2 bne.w 0x1491a                                     |         goto label_64;
                                                                 |     }
    0x000152a6 mov r0, r8                                        |     r0 = r8;
    0x000152a8 movs r6, 0                                        |     r6 = 0;
    0x000152aa b 0x152b4                                         |     goto label_223;
                                                                 | label_65:
    0x000152ac adds r6, 1                                        |     r6++;
    0x000152ae cmp r6, r2                                        |     
                                                                 |     if (r6 >= r2) {
    0x000152b0 bge.w 0x1491a                                     |         goto label_64;
                                                                 |     }
                                                                 | label_223:
    0x000152b4 ldrb r1, [r0, 1]!                                 |     r1 = *((r0 += 1));
    0x000152b8 subs r1, 0x31                                     |     r1 -= 0x31;
    0x000152ba cmp r1, 1                                         |     
                                                                 |     if (r1 > 1) {
    0x000152bc bhi 0x152ac                                       |         goto label_65;
                                                                 |     }
    0x000152be ldr r1, [sp, 0x50]                                |     r1 = var_50h;
    0x000152c0 movs r0, 0x58                                     |     r0 = 0x58;
    0x000152c2 mla r6, r0, r6, r1                                |     __asm ("mla r6, r0, r6, r1");
    0x000152c6 ldrd r0, r1, [r3, 0x38]                           |     __asm ("ldrd r0, r1, [r3, 0x38]");
    0x000152ca ldr r7, [r6, 0x38]                                |     r7 = *((r6 + 0x38));
    0x000152cc ldr.w lr, [r6, 0x3c]                              |     
    0x000152d0 cmp r0, r7                                        |     
    0x000152d2 sbcs.w r1, r1, lr                                 |     __asm ("sbcs.w r1, r1, lr");
    0x000152d6 ldr r1, [r6, 0x44]                                |     r1 = *((r6 + 0x44));
    0x000152d8 ite hs                                            |     
                                                                 |     if (r0 < r7) {
    0x000152da movhs r0, 1                                       |         r0 = 1;
                                                                 |     }
                                                                 |     if (r0 >= r7) {
    0x000152dc movlo r0, 0                                       |         r0 = 0;
                                                                 |     }
    0x000152de str r0, [r6, 0x14]                                |     *((r6 + 0x14)) = r0;
    0x000152e0 ldr r0, [r6, 0x40]                                |     r0 = *((r6 + 0x40));
    0x000152e2 cmp r0, r4                                        |     
    0x000152e4 sbcs r1, r5                                       |     __asm ("sbcs r1, r5");
                                                                 |     if (r0 >= r4) {
    0x000152e6 bhs.w 0x1491a                                     |         goto label_64;
                                                                 |     }
    0x000152ea cmp r4, r7                                        |     
    0x000152ec mov r1, lr                                        |     r1 = lr;
    0x000152ee sbcs.w r0, r5, lr                                 |     __asm ("sbcs.w r0, r5, lr");
    0x000152f2 itt lo                                            |     
                                                                 |     if (r4 >= r7) {
    0x000152f4 movlo r7, r4                                      |         r7 = r4;
                                                                 |     }
                                                                 |     if (r4 >= r7) {
    0x000152f6 movlo r1, r5                                      |         r1 = r5;
                                                                 |     }
    0x000152f8 strd r7, r1, [r6, 0x40]                           |     __asm ("strd r7, r1, [r6, 0x40]");
    0x000152fc b.w 0x1491a                                       |     goto label_64;
                                                                 | label_181:
    0x00015300 orrs r4, r5                                       |     r4 |= r5;
                                                                 |     if (r4 == r5) {
    0x00015302 beq 0x15366                                       |         goto label_224;
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x00015304 cbnz r6, 0x15366                                  |         goto label_224;
                                                                 |     }
    0x00015306 str.w sb, [sp, 0x60]                              |     __asm ("str.w sb, [var_60h]");
    0x0001530a mov r6, r8                                        |     r6 = r8;
    0x0001530c ldr r5, [sp, 0x50]                                |     r5 = var_50h;
    0x0001530e mov sb, ip                                        |     sb = ip;
    0x00015310 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x00015312 b 0x15322                                         |     
                                                                 |     while (r0 > 1) {
                                                                 | label_66:
    0x00015314 ldr r2, [sp, 0x44]                                |         r2 = var_44h;
    0x00015316 adds r1, 2                                        |         r1 += 2;
    0x00015318 sub.w r1, r1, sl                                  |         r1 -= sl;
    0x0001531c adds r5, 0x58                                     |         r5 += 0x58;
    0x0001531e cmp r1, r2                                        |         
                                                                 |         if (r1 >= r2) {
    0x00015320 bge 0x153e8                                       |             goto label_225;
                                                                 |         }
    0x00015322 mov r1, r6                                        |         r1 = r6;
    0x00015324 ldrb r0, [r6, 1]!                                 |         r0 = *((r6 += 1));
    0x00015328 subs r0, 0x31                                     |         r0 -= 0x31;
    0x0001532a cmp r0, 1                                         |         
    0x0001532c bhi 0x15314                                       |         
                                                                 |     }
    0x0001532e ldrd ip, r0, [r3, 0x38]                           |     __asm ("ldrd ip, r0, [r3, 0x38]");
    0x00015332 mov r7, r0                                        |     r7 = r0;
    0x00015334 mov r2, r0                                        |     r2 = r0;
    0x00015336 ldrd r4, r0, [r3, 0x40]                           |     __asm ("ldrd r4, r0, [r3, 0x40]");
    0x0001533a cmp r7, r0                                        |     
    0x0001533c it eq                                             |     
                                                                 |     if (r7 == r0) {
    0x0001533e cmpeq ip, r4                                      |         __asm ("cmpeq ip, r4");
                                                                 |     }
                                                                 |     if (r7 == r0) {
    0x00015340 beq 0x153c4                                       |         goto label_226;
                                                                 |     }
                                                                 | label_68:
    0x00015342 ldr r7, [r5, 0x44]                                |     r7 = *((r5 + 0x44));
    0x00015344 mov r2, r7                                        |     r2 = r7;
    0x00015346 ldr r7, [r5, 0x40]                                |     r7 = *((r5 + 0x40));
    0x00015348 cmp r7, r4                                        |     
    0x0001534a mov r7, r2                                        |     r7 = r2;
    0x0001534c sbcs r7, r0                                       |     __asm ("sbcs r7, r0");
                                                                 |     if (r7 >= r4) {
    0x0001534e bhs 0x15314                                       |         goto label_66;
                                                                 |     }
    0x00015350 ldrd ip, r7, [r5, 0x38]                           |     __asm ("ldrd ip, r7, [r5, 0x38]");
    0x00015354 cmp r4, ip                                        |     
    0x00015356 sbcs.w lr, r0, r7                                 |     __asm ("sbcs.w lr, r0, r7");
    0x0001535a itt lo                                            |     
                                                                 |     if (r4 >= ip) {
    0x0001535c movlo ip, r4                                      |         
                                                                 |     }
                                                                 |     if (r4 >= ip) {
    0x0001535e movlo r7, r0                                      |         r7 = r0;
                                                                 |     }
    0x00015360 strd ip, r7, [r5, 0x40]                           |     __asm ("strd ip, r7, [r5, 0x40]");
    0x00015364 b 0x15314                                         |     goto label_66;
                                                                 | label_224:
    0x00015366 cmp r6, 1                                         |     
                                                                 |     if (r6 != 1) {
    0x00015368 bne.w 0x1491a                                     |         goto label_64;
                                                                 |     }
    0x0001536c str.w ip, [sp, 0x44]                              |     __asm ("str.w ip, [var_44h]");
    0x00015370 mov r6, r8                                        |     r6 = r8;
    0x00015372 ldr r0, [sp, 0x50]                                |     r0 = var_50h;
    0x00015374 mov ip, r2                                        |     
    0x00015376 b 0x15384                                         |     
                                                                 |     while (r2 > 1) {
                                                                 | label_67:
    0x00015378 adds r1, 2                                        |         r1 += 2;
    0x0001537a adds r0, 0x58                                     |         r0 += 0x58;
    0x0001537c sub.w r1, r1, sl                                  |         r1 -= sl;
    0x00015380 cmp r1, ip                                        |         
                                                                 |         if (r1 >= ip) {
    0x00015382 bge 0x153de                                       |             goto label_227;
                                                                 |         }
    0x00015384 mov r1, r6                                        |         r1 = r6;
    0x00015386 ldrb r2, [r6, 1]!                                 |         r2 = *((r6 += 1));
    0x0001538a subs r2, 0x31                                     |         r2 -= 0x31;
    0x0001538c cmp r2, 1                                         |         
    0x0001538e bhi 0x15378                                       |         
                                                                 |     }
    0x00015390 ldr r2, [r3, 0x38]                                |     r2 = *((r3 + 0x38));
    0x00015392 ldr r5, [r0, 0x38]                                |     r5 = *((r0 + 0x38));
    0x00015394 ldr r7, [r3, 0x3c]                                |     r7 = *((r3 + 0x3c));
    0x00015396 ldr r4, [r0, 0x3c]                                |     r4 = *((r0 + 0x3c));
    0x00015398 cmp r2, r5                                        |     
    0x0001539a ldrd lr, r2, [r3, 0x40]                           |     __asm ("ldrd lr, r2, [r3, 0x40]");
    0x0001539e sbcs r7, r4                                       |     __asm ("sbcs r7, r4");
    0x000153a0 ite hs                                            |     
                                                                 |     if (r2 < r5) {
    0x000153a2 movhs r7, 1                                       |         r7 = 1;
                                                                 |     }
                                                                 |     if (r2 >= r5) {
    0x000153a4 movlo r7, 0                                       |         r7 = 0;
                                                                 |     }
    0x000153a6 str r7, [r0, 0x14]                                |     *((r0 + 0x14)) = r7;
    0x000153a8 ldr r7, [r0, 0x40]                                |     r7 = *((r0 + 0x40));
    0x000153aa cmp r7, lr                                        |     
    0x000153ac ldr r7, [r0, 0x44]                                |     r7 = *((r0 + 0x44));
    0x000153ae sbcs r7, r2                                       |     __asm ("sbcs r7, r2");
                                                                 |     if (r7 >= lr) {
    0x000153b0 bhs 0x15378                                       |         goto label_67;
                                                                 |     }
    0x000153b2 cmp lr, r5                                        |     
    0x000153b4 sbcs.w r7, r2, r4                                 |     __asm ("sbcs.w r7, r2, r4");
    0x000153b8 itt lo                                            |     
                                                                 |     if (lr >= r5) {
    0x000153ba movlo r5, lr                                      |         r5 = lr;
                                                                 |     }
                                                                 |     if (lr >= r5) {
    0x000153bc movlo r4, r2                                      |         r4 = r2;
                                                                 |     }
    0x000153be strd r5, r4, [r0, 0x40]                           |     __asm ("strd r5, r4, [r0, 0x40]");
    0x000153c2 b 0x15378                                         |     goto label_67;
                                                                 | label_226:
    0x000153c4 ldrd r7, lr, [r5, 0x38]                           |     __asm ("ldrd r7, lr, [r5, 0x38]");
    0x000153c8 cmp r2, lr                                        |     
    0x000153ca it eq                                             |     
                                                                 |     if (r2 != lr) {
    0x000153cc cmpeq ip, r7                                      |         __asm ("cmpeq ip, r7");
                                                                 |         goto label_228;
                                                                 |     }
                                                                 |     if (r2 != lr) {
                                                                 | label_228:
    0x000153ce bne 0x15342                                       |         goto label_68;
                                                                 |     }
    0x000153d0 ldr r0, [sp, 0x90]                                |     r0 = var_90h;
    0x000153d2 strd r7, lr, [r5, 0x40]                           |     __asm ("strd r7, lr, [r5, 0x40]");
    0x000153d6 str r0, [r5, 0xc]                                 |     *((r5 + 0xc)) = r0;
    0x000153d8 adds r0, 1                                        |     r0++;
    0x000153da str r0, [sp, 0x90]                                |     var_90h = r0;
    0x000153dc b 0x15314                                         |     goto label_66;
                                                                 | label_227:
    0x000153de mov r2, ip                                        |     r2 = ip;
    0x000153e0 ldr.w ip, [sp, 0x44]                              |     ip = var_44h;
    0x000153e4 b.w 0x1491a                                       |     goto label_64;
                                                                 | label_225:
    0x000153e8 mov ip, sb                                        |     
    0x000153ea ldr.w sb, [sp, 0x60]                              |     sb = var_60h;
    0x000153ee b.w 0x1491a                                       |     goto label_64;
                                                                 | label_215:
    0x000153f2 movs r2, 0x10                                     |     r2 = 0x10;
    0x000153f4 mov r1, r4                                        |     r1 = r4;
    0x000153f6 mov r0, r8                                        |     r0 = r8;
    0x000153f8 blx 0xbddc                                        |     r0 = fcn_0000bddc ();
    0x000153fc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000153fe bne.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x00015402 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00015404 bne.w 0x1480e                                     |         goto label_69;
                                                                 |     }
                                                                 | label_220:
    0x00015408 movs r3, 0x32                                     |     r3 = 0x32;
    0x0001540a strb r3, [r7]                                     |     *(r7) = r3;
    0x0001540c ldr r3, [sp, 0x70]                                |     r3 = var_70h;
    0x0001540e str r3, [r4, -0x30]                               |     *((r4 - 0x30)) = r3;
    0x00015412 b.w 0x14844                                       |     goto label_70;
                                                                 | label_183:
    0x00015416 ldrd lr, r7, [r6, 0x38]                           |     __asm ("ldrd lr, r7, [r6, 0x38]");
    0x0001541a cmp r0, r7                                        |     
    0x0001541c it eq                                             |     
                                                                 |     if (r0 != r7) {
    0x0001541e cmpeq r1, lr                                      |         __asm ("cmpeq r1, lr");
                                                                 |         goto label_229;
                                                                 |     }
                                                                 |     if (r0 != r7) {
                                                                 | label_229:
    0x00015420 bne.w 0x148fc                                     |         goto label_71;
                                                                 |     }
    0x00015424 ldr r1, [sp, 0x90]                                |     r1 = var_90h;
    0x00015426 strd lr, r7, [r6, 0x40]                           |     __asm ("strd lr, r7, [r6, 0x40]");
    0x0001542a str r1, [r6, 0xc]                                 |     *((r6 + 0xc)) = r1;
    0x0001542c adds r1, 1                                        |     r1++;
    0x0001542e str r1, [sp, 0x90]                                |     var_90h = r1;
    0x00015430 b.w 0x1491a                                       |     goto label_64;
                                                                 | label_197:
    0x00015434 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00015436 movs r0, 4                                        |     r0 = 4;
    0x00015438 ldr r2, [r4, -0x58]                               |     r2 = *((r4 - 0x58));
    0x0001543c ldr r1, [sp, 0x60]                                |     r1 = var_60h;
    0x0001543e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015442 b 0x14cd6                                         |     goto label_72;
                                                                 | label_132:
    0x00015444 movs r3, 0                                        |     r3 = 0;
    0x00015446 strd r3, r3, [sp, 0x30]                           |     __asm ("strd r3, r3, [var_34h]");
    0x0001544a b 0x14eae                                         |     goto label_73;
                                                                 | label_213:
    0x0001544c ldr r3, [r5]                                      |     r3 = *(r5);
    0x0001544e movs r0, 3                                        |     r0 = 3;
    0x00015450 strd r2, ip, [sp, 8]                              |     __asm ("strd r2, ip, [var_8h]");
    0x00015454 strd fp, sb, [sp, 0x10]                           |     __asm ("strd fp, sb, [var_10h]");
    0x00015458 ldr r2, [sp, 0xa8]                                |     r2 = var_a8h;
    0x0001545a strd r4, r6, [sp]                                 |     __asm ("strd r4, r6, [sp]");
    0x0001545e str r1, [sp, 0x40]                                |     var_40h = r1;
    0x00015460 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015464 ldr r1, [sp, 0x40]                                |     r1 = var_40h;
    0x00015466 b 0x1507c                                         |     goto label_74;
                                                                 | label_184:
    0x00015468 movs r3, 0                                        |     r3 = 0;
    0x0001546a ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x0001546c str r3, [sp, 0x9c]                                |     var_9ch = r3;
    0x0001546e ldrd r2, r3, [r7, 0x40]                           |     __asm ("ldrd r2, r3, [r7, 0x40]");
    0x00015472 strd r2, r3, [r1]                                 |     __asm ("strd r2, r3, [r1]");
    0x00015476 b.w 0x1496c                                       |     goto label_75;
                                                                 | label_167:
    0x0001547a ldr.w r1, [pc, 0x68c]                             |     
    0x0001547e movs r0, 4                                        |     r0 = 4;
    0x00015480 add r1, pc                                        |     r1 = 0x2af8e;
    0x00015482 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015486 b.w 0x1456a                                       |     goto label_76;
                                                                 | label_177:
    0x0001548a ldr.w r3, [fp]                                    |     r3 = *(fp);
    0x0001548e cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00015490 bgt.w 0x1569c                                     |         goto label_230;
                                                                 |     }
                                                                 | label_86:
    0x00015494 movs r3, 0                                        |     r3 = 0;
    0x00015496 str r3, [r8, -0x38]                               |     *((r8 - 0x38)) = r3;
    0x0001549a b.w 0x14818                                       |     goto label_77;
                                                                 | label_175:
    0x0001549e movs r2, 0x10                                     |     r2 = 0x10;
    0x000154a0 mov r1, r4                                        |     r1 = r4;
    0x000154a2 mov r0, r8                                        |     r0 = r8;
    0x000154a4 blx 0xbddc                                        |     r0 = fcn_0000bddc ();
    0x000154a8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000154aa bne.w 0x14840                                     |         goto label_51;
                                                                 |     }
    0x000154ae b.w 0x1480e                                       |     goto label_69;
                                                                 | label_170:
    0x000154b2 str r2, [sp, 0x90]                                |     var_90h = r2;
    0x000154b4 b.w 0x13a44                                       |     goto label_26;
                                                                 | label_186:
    0x000154c6 ldr.w r2, [pc, 0x648]                             |     r2 = *(0x00015b10);
    0x000154ca add r2, pc                                        |     r2 += pc;
    0x000154cc b.w 0x14a6e                                       |     goto label_78;
                                                                 | label_187:
    0x000154d0 ldr.w r1, [pc, 0x640]                             |     r1 = *(0x00015b14);
    0x000154d4 movs r0, 4                                        |     r0 = 4;
    0x000154d6 str r2, [sp]                                      |     *(sp) = r2;
    0x000154d8 add r7, sp, 0x110                                 |     r7 += var_110h;
    0x000154da ldr.w r2, [pc, 0x63c]                             |     r2 = *(0x00015b18);
    0x000154de add r1, pc                                        |     r1 += pc;
    0x000154e0 str r1, [sp, 4]                                   |     var_4h = r1;
    0x000154e2 ldr.w r1, [pc, 0x638]                             |     r1 = *(0x00015b1c);
    0x000154e6 add r2, pc                                        |     r2 += pc;
    0x000154e8 adds r2, 0x2c                                     |     r2 += 0x2c;
    0x000154ea add r1, pc                                        |     r1 += pc;
    0x000154ec bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000154f0 mov r1, r7                                        |     r1 = r7;
    0x000154f2 mov r0, r8                                        |     r0 = r8;
    0x000154f4 blx 0xbe7c                                        |     unlink (r0);
    0x000154f8 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x000154fa beq.w 0x15aca                                     |         goto label_231;
                                                                 |     }
    0x000154fe ldr r3, [sp, 0x120]                               |     r3 = var_120h;
    0x00015500 and r3, r3, 0xf000                                |     r3 &= case.0x3207a.11;
    0x00015504 cmp.w r3, 0x4000                                  |     
                                                                 |     if (r3 == 0x4000) {
    0x00015508 beq.w 0x13ee0                                     |         goto label_39;
                                                                 |     }
    0x0001550c ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x0001550e mov r2, r8                                        |     r2 = r8;
    0x00015510 ldr.w r1, [pc, 0x60c]                             |     r1 = *(0x00015b20);
    0x00015514 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00015516 add r1, pc                                        |     r1 += pc;
    0x00015518 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001551c str r0, [r4]                                      |     *(r4) = r0;
    0x0001551e mov r0, r8                                        |     r0 = r8;
    0x00015520 blx 0xbd14                                        |     gai_strerror ();
                                                                 | label_94:
    0x00015524 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x00015526 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00015528 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0001552a ble.w 0x14a1e                                     |         goto label_53;
                                                                 |     }
    0x0001552e mov.w r0, -1                                      |     r0 = -1;
    0x00015532 bl 0x3a204                                        |     zbx_result_string ();
    0x00015536 ldr.w r2, [pc, 0x5ec]                             |     r2 = *(0x00015b24);
    0x0001553a mov r3, r0                                        |     r3 = r0;
    0x0001553c ldr.w r1, [pc, 0x5e8]                             |     
    0x00015540 movs r0, 4                                        |     r0 = 4;
    0x00015542 add r2, pc                                        |     r2 += pc;
    0x00015544 strd r2, r2, [sp]                                 |     __asm ("strd r2, r2, [sp]");
    0x00015548 add r1, pc                                        |     r1 = 0x2b074;
    0x0001554a ldr.w r2, [pc, 0x5e0]                             |     r2 = *(0x00015b2c);
    0x0001554e add r2, pc                                        |     r2 += pc;
    0x00015550 adds r2, 0x1c                                     |     r2 += 0x1c;
    0x00015552 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015556 b.w 0x14a1e                                       |     goto label_53;
                                                                 | label_206:
    0x0001555a ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x0001555c movs r0, 4                                        |     r0 = 4;
    0x0001555e ldr.w r1, [pc, 0x5d0]                             |     r1 = *(0x00015b30);
    0x00015562 strd r8, r2, [sp]                                 |     __asm ("strd r8, r2, [sp]");
    0x00015566 ldr.w r2, [pc, 0x5cc]                             |     
    0x0001556a add r1, pc                                        |     r1 += pc;
    0x0001556c add r2, pc                                        |     r2 = 0x2b0a6;
    0x0001556e adds r2, 0x1c                                     |     r2 += 0x1c;
    0x00015570 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015574 b 0x14df6                                         |     goto label_79;
                                                                 | label_212:
    0x00015576 str r4, [sp, 0x40]                                |     var_40h = r4;
    0x00015578 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x0001557a ldr r7, [sp, 0x34]                                |     r7 = var_34h;
    0x0001557c ldr.w fp, [sp, 0x44]                              |     fp = var_44h;
    0x00015580 adds r4, r3, 1                                    |     r4 = r3 + 1;
    0x00015582 ldr.w sb, [sp, 0x4c]                              |     sb = var_4ch;
                                                                 |     if (r4 == r3) {
    0x00015586 beq.w 0x157e0                                     |         goto label_211;
                                                                 |     }
    0x0001558a ldr r2, [sp, 0x9c]                                |     r2 = var_9ch;
    0x0001558c cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x0001558e beq 0x15598                                       |         
    0x00015590 vmov.i32 d16, 0                                   |         __asm ("vmov.i32 d16, 0");
    0x00015594 vstr d16, [sp, 0x38]                              |         __asm ("vstr d16, [sp, 0x38]");
                                                                 |     }
    0x00015598 ldr r1, [sp, 0x88]                                |     r1 = var_88h;
    0x0001559a movs r0, 0x58                                     |     r0 = 0x58;
    0x0001559c ldrd r2, r3, [sp, 0x38]                           |     __asm ("ldrd r2, r3, [var_38h]");
    0x000155a0 str r1, [sp, 4]                                   |     var_4h = r1;
    0x000155a2 ldr r1, [sp, 0x2c]                                |     r1 = var_2ch;
    0x000155a4 str r1, [sp]                                      |     *(sp) = r1;
    0x000155a6 ldr r1, [sp, 0x40]                                |     r1 = var_40h;
    0x000155a8 mla r0, r0, r1, r7                                |     __asm ("mla r0, r0, r1, r7");
    0x000155ac ldr r1, [sp, 0x28]                                |     r1 = var_28h;
    0x000155ae bl 0x133a4                                        |     r0 = fcn_000133a4 (r0, r1, r2, r3, r4, r5, r6);
    0x000155b2 mov sl, r0                                        |     sl = r0;
    0x000155b4 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000155b6 bne.w 0x145ce                                     |         goto label_80;
                                                                 |     }
                                                                 | label_93:
    0x000155ba ldr r2, [sp, 0x48]                                |     r2 = var_48h;
    0x000155bc movs r3, 1                                        |     r3 = 1;
    0x000155be mov.w sl, 0                                       |     sl = 0;
    0x000155c2 str r3, [r2]                                      |     *(r2) = r3;
    0x000155c4 b.w 0x145ce                                       |     goto label_80;
                                                                 | label_193:
    0x000155c8 ldrd r6, r7, [r4, 0x40]                           |     __asm ("ldrd r6, r7, [r4, 0x40]");
    0x000155cc movs r0, 4                                        |     r0 = 4;
    0x000155ce ldr r5, [sp, 0x28]                                |     r5 = var_28h;
    0x000155d0 ldr.w r1, [pc, 0x564]                             |     
    0x000155d4 strd r6, r7, [sp, 8]                              |     __asm ("strd r6, r7, [var_8h]");
    0x000155d8 ldrd r6, r7, [r5]                                 |     __asm ("ldrd r6, r7, [r5]");
    0x000155dc add r1, pc                                        |     r1 = 0x2b118;
    0x000155de strd r6, r7, [sp]                                 |     __asm ("strd r6, r7, [sp]");
    0x000155e2 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000155e6 ldr r3, [r4, 4]                                   |     r3 = *((r4 + 4));
    0x000155e8 b.w 0x14c04                                       |     goto label_81;
                                                                 | label_203:
    0x000155ec movs r1, 1                                        |     r1 = 1;
    0x000155ee mov r0, r8                                        |     r0 = r8;
    0x000155f0 blx 0xc230                                        |     pipe ();
    0x000155f4 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000155f6 ldr r3, [r3]                                      |     r3 = *(r3);
                                                                 |     if (r0 == 0) {
    0x000155f8 cbz r0, 0x1565a                                   |         goto label_232;
                                                                 |     }
    0x000155fa cmp r3, 2                                         |     
                                                                 |     if (r3 <= 2) {
    0x000155fc ble.w 0x14d70                                     |         goto label_82;
                                                                 |     }
    0x00015600 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015604 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015606 bl 0x26fdc                                        |     zbx_strerror ();
    0x0001560a ldr.w r1, [pc, 0x530]                             |     
    0x0001560e mov r3, r0                                        |     r3 = r0;
    0x00015610 mov r2, r8                                        |     r2 = r8;
    0x00015612 movs r0, 3                                        |     r0 = 3;
    0x00015614 add r1, pc                                        |     r1 = 0x2b156;
    0x00015616 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0001561a b.w 0x14d70                                       |     goto label_82;
                                                                 | label_232:
    0x0001565a cmp r3, 2                                         |     
    0x0001565c it le                                             |     
                                                                 |     if (r3 > 2) {
    0x0001565e movle r4, 3                                       |         r4 = 3;
                                                                 |     }
                                                                 |     if (r3 > 2) {
    0x00015660 bgt.w 0x157b4                                     |         goto label_233;
                                                                 |     }
                                                                 | label_91:
    0x00015664 ldr r0, [sp, 0x10c]                               |     r0 = var_10ch;
    0x00015666 bl 0x27e54                                        |     zbx_regexp_free ();
    0x0001566a mov r0, r8                                        |     r0 = r8;
    0x0001566c blx 0xbd14                                        |     gai_strerror ();
    0x00015670 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00015672 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015674 beq.w 0x14e30                                     |         goto label_83;
                                                                 |     }
                                                                 | label_89:
    0x00015678 movs r5, 0                                        |     r5 = 0;
    0x0001567a b.w 0x14d88                                       |     goto label_84;
                                                                 | label_205:
    0x0001567e cmp r2, 2                                         |     
                                                                 |     if (r2 <= 2) {
    0x00015680 ble.w 0x14812                                     |         goto label_85;
                                                                 |     }
    0x00015684 ldr.w r1, [pc, 0x4bc]                             |     r1 = *(0x00015b44);
    0x00015688 mov r0, r6                                        |     r0 = r6;
    0x0001568a ldr r2, [r8, -0x48]                               |     r2 = *((r8 - 0x48));
    0x0001568e add r1, pc                                        |     r1 += pc;
    0x00015690 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015694 ldr r3, [r8, -0x38]                               |     r3 = *((r8 - 0x38));
    0x00015698 b.w 0x14812                                       |     goto label_85;
                                                                 | label_230:
    0x0001569c ldr r3, [r8, -0x48]                               |     r3 = *((r8 - 0x48));
    0x000156a0 movs r0, 4                                        |     r0 = 4;
    0x000156a2 ldr r2, [sp, 0xa0]                                |     r2 = var_a0h;
    0x000156a4 ldr r1, [sp, 0x78]                                |     r1 = var_78h;
    0x000156a6 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000156aa b 0x15494                                         |     goto label_86;
                                                                 | label_214:
    0x000156ac ldrd r0, r5, [r8, -0x20]                          |     __asm ("ldrd r0, r5, [r8, -0x20]");
    0x000156b0 ldrd r2, r3, [r4, -0x20]                          |     __asm ("ldrd r2, r3, [r4, -0x20]");
    0x000156b4 cmp r5, r3                                        |     
    0x000156b6 it eq                                             |     
                                                                 |     if (r5 == r3) {
    0x000156b8 cmpeq r0, r2                                      |         __asm ("cmpeq r0, r2");
                                                                 |     }
                                                                 |     if (r5 != r3) {
    0x000156ba bne 0x157b0                                       |         goto label_234;
                                                                 |     }
    0x000156bc ldrd r0, r5, [r8, -0x28]                          |     __asm ("ldrd r0, r5, [r8, -0x28]");
    0x000156c0 ldrd r2, r3, [r4, -0x28]                          |     __asm ("ldrd r2, r3, [r4, -0x28]");
    0x000156c4 cmp r5, r3                                        |     
    0x000156c6 it eq                                             |     
                                                                 |     if (r5 == r3) {
    0x000156c8 cmpeq r0, r2                                      |         __asm ("cmpeq r0, r2");
                                                                 |     }
                                                                 |     if (r5 != r3) {
    0x000156ca bne 0x157b0                                       |         goto label_234;
                                                                 |     }
    0x000156cc ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000156ce cmp r3, 2                                         |     
    0x000156d0 it ne                                             |     
                                                                 |     if (r3 != 2) {
    0x000156d2 movne r5, r6                                      |         r5 = r6;
                                                                 |         goto label_235;
                                                                 |     }
                                                                 |     if (r3 != 2) {
                                                                 | label_235:
    0x000156d4 bne.w 0x150e8                                     |         goto label_87;
                                                                 |     }
    0x000156d8 ldrd r0, r5, [r8, -0x18]                          |     __asm ("ldrd r0, r5, [r8, -0x18]");
    0x000156dc ldrd r2, r3, [r4, -0x18]                          |     __asm ("ldrd r2, r3, [r4, -0x18]");
    0x000156e0 cmp r5, r3                                        |     
    0x000156e2 it eq                                             |     
                                                                 |     if (r5 == r3) {
    0x000156e4 cmpeq r0, r2                                      |         __asm ("cmpeq r0, r2");
                                                                 |     }
    0x000156e6 ite eq                                            |     
                                                                 |     if (r5 != r3) {
    0x000156e8 moveq r5, 1                                       |         r5 = 1;
                                                                 |     }
                                                                 |     if (r5 == r3) {
    0x000156ea movne r5, 0                                       |         r5 = 0;
                                                                 |     }
    0x000156ec b 0x150e8                                         |     goto label_87;
                                                                 | label_204:
    0x000156ee ldr r3, [sp, 0x298]                               |     r3 = *(arg_298h);
    0x000156f0 cmp r3, 3                                         |     
                                                                 |     if (r3 != 3) {
    0x000156f2 beq 0x156fc                                       |         
    0x000156f4 ldr r3, [sp, 0x64]                                |         r3 = var_64h;
    0x000156f6 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000156f8 cmp r3, 2                                         |         
                                                                 |         if (r3 > 2) {
    0x000156fa bgt 0x157d0                                       |             goto label_236;
                                                                 |         }
                                                                 |     }
                                                                 | label_92:
    0x000156fc ldr r2, [sp, 0x60]                                |     r2 = var_60h;
    0x000156fe movs r3, 1                                        |     r3 = 1;
    0x00015700 str r3, [r2, 0x10]                                |     *((r2 + 0x10)) = r3;
    0x00015702 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x00015704 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015706 beq.w 0x1518c                                     |         goto label_88;
                                                                 |     }
    0x0001570a mov r0, r3                                        |     r0 = r3;
    0x0001570c blx 0xbd14                                        |     gai_strerror ();
    0x00015710 b 0x1518c                                         |     goto label_88;
                                                                 | label_222:
    0x00015712 mov r1, r2                                        |     r1 = r2;
    0x00015714 mov r0, r8                                        |     r0 = r8;
    0x00015716 movs r2, 0x10                                     |     r2 = 0x10;
    0x00015718 blx 0xbddc                                        |     r0 = fcn_0000bddc ();
    0x0001571c mov r3, r0                                        |     r3 = r0;
    0x0001571e mov r0, r5                                        |     r0 = r5;
    0x00015720 mov r5, r3                                        |     r5 = r3;
    0x00015722 blx 0xc47c                                        |     r0 = fcn_0000c47c ();
    0x00015726 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00015728 beq 0x157c6                                       |         goto label_237;
                                                                 |     }
    0x0001572a ldr r6, [sp, 0x88]                                |     r6 = var_88h;
    0x0001572c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015730 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015732 ldr.w r5, [sl]                                    |     r5 = *(sl);
    0x00015736 ldr r4, [r6]                                      |     r4 = *(r6);
    0x00015738 bl 0x26fdc                                        |     zbx_strerror ();
    0x0001573c ldr.w r1, [pc, 0x408]                             |     r1 = *(0x00015b48);
    0x00015740 mov r3, r0                                        |     r3 = r0;
    0x00015742 mov r2, r5                                        |     r2 = r5;
    0x00015744 mov r0, r4                                        |     r0 = r4;
    0x00015746 add r1, pc                                        |     r1 += pc;
    0x00015748 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001574c str r0, [r6]                                      |     *(r6) = r0;
    0x0001574e b 0x15184                                         |     goto label_63;
                                                                 | label_155:
    0x00015750 ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x00015752 ldr r1, [pc, 0x3f8]                               |     
    0x00015754 ldr r2, [sp, 0x110]                               |     r2 = var_110h;
    0x00015756 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00015758 add r1, pc                                        |     r1 = 0x2b2aa;
    0x0001575a bl 0x396b0                                        |     zbx_dsprintf ()
    0x0001575e str r0, [r4]                                      |     *(r4) = r0;
                                                                 | label_207:
    0x00015760 mov r0, r8                                        |     r0 = r8;
    0x00015762 mov.w r4, -1                                      |     r4 = -1;
    0x00015766 blx 0xbd14                                        |     gai_strerror ();
    0x0001576a ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0001576c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001576e bne 0x15678                                       |         goto label_89;
                                                                 |     }
    0x00015770 b.w 0x14e30                                       |     goto label_83;
                                                                 | label_185:
    0x00015774 ldr r4, [pc, 0x3d8]                               |     
    0x00015776 movs r0, 4                                        |     r0 = 4;
    0x00015778 ldr r1, [pc, 0x3d8]                               |     
    0x0001577a add r4, pc                                        |     r4 = 0x2b2ce;
    0x0001577c adds r4, 0x2c                                     |     r4 += 0x2c;
    0x0001577e add r1, pc                                        |     r1 = 0x2b2d6;
    0x00015780 mov r2, r4                                        |     r2 = r4;
    0x00015782 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015786 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00015788 cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0001578a ble.w 0x149dc                                     |         goto label_90;
                                                                 |     }
    0x0001578e mov.w r0, -1                                      |     r0 = -1;
    0x00015792 bl 0x3a204                                        |     zbx_result_string ();
    0x00015796 ldr r1, [pc, 0x3c0]                               |     
    0x00015798 mov r3, r0                                        |     r3 = r0;
    0x0001579a mov r2, r4                                        |     r2 = r4;
    0x0001579c movs r0, 4                                        |     r0 = 4;
    0x0001579e add r1, pc                                        |     r1 = 0x2b2fc;
    0x000157a0 strd r1, r1, [sp]                                 |     __asm ("strd r1, r1, [sp]");
    0x000157a4 ldr r1, [pc, 0x3b4]                               |     
    0x000157a6 add r1, pc                                        |     r1 = 0x2b306;
    0x000157a8 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000157ac b.w 0x149dc                                       |     goto label_90;
                                                                 | label_234:
    0x000157b0 movs r5, 0                                        |     r5 = 0;
    0x000157b2 b 0x150e8                                         |     goto label_87;
                                                                 | label_233:
    0x000157b4 ldr r1, [pc, 0x3a8]                               |     
    0x000157b6 mov r3, r8                                        |     r3 = r8;
    0x000157b8 ldr r2, [sp, 0x30]                                |     r2 = var_30h;
    0x000157ba movs r0, 3                                        |     r0 = 3;
    0x000157bc movs r4, 3                                        |     r4 = 3;
    0x000157be add r1, pc                                        |     r1 = 0x2b322;
    0x000157c0 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000157c4 b 0x15664                                         |     goto label_91;
                                                                 | label_237:
    0x000157c6 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x000157c8 beq.w 0x1480e                                     |         goto label_69;
                                                                 |     }
    0x000157cc b.w 0x14840                                       |     goto label_51;
                                                                 | label_236:
    0x000157d0 ldr r3, [sp, 0x60]                                |     r3 = var_60h;
    0x000157d2 movs r0, 3                                        |     r0 = 3;
    0x000157d4 ldr r1, [pc, 0x38c]                               |     
    0x000157d6 ldr r2, [r3]                                      |     r2 = *(r3);
    0x000157d8 add r1, pc                                        |     r1 = 0x2b340;
    0x000157da bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000157de b 0x156fc                                         |     goto label_92;
                                                                 | label_211:
    0x000157e0 ldr r3, [sp, 0x9c]                                |     r3 = var_9ch;
    0x000157e2 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x000157e4 b 0x155ba                                         |     goto label_93;
                                                                 | label_153:
    0x000157e6 ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x000157e8 mov r2, r8                                        |     r2 = r8;
    0x000157ea ldr r1, [pc, 0x37c]                               |     
    0x000157ec ldr r0, [r4]                                      |     r0 = *(r4);
    0x000157ee add r1, pc                                        |     r1 = zbx_dshm_destroy;
    0x000157f0 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000157f4 str r0, [r4]                                      |     *(r4) = r0;
    0x000157f6 mov r0, r8                                        |     r0 = r8;
    0x000157f8 blx 0xbd14                                        |     gai_strerror ();
    0x000157fc ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000157fe cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00015800 beq.w 0x15524                                     |         goto label_94;
                                                                 |     }
                                                                 | label_100:
    0x00015804 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00015806 blx 0xbd14                                        |     gai_strerror ();
    0x0001580a b 0x15524                                         |     goto label_94;
                                                                 | label_147:
    0x0001580c ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x0001580e movs r1, 0x8c                                     |     r1 = 0x8c;
    0x00015810 ldr r3, [pc, 0x358]                               |     
    0x00015812 ldr r0, [pc, 0x35c]                               |     
    0x00015814 ldr r2, [r4]                                      |     r2 = *(r4);
    0x00015816 add r3, pc                                        |     r3 = 0x2b386;
    0x00015818 add r0, pc                                        |     r0 = 0x2b38e;
    0x0001581a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0001581e str r0, [r4]                                      |     *(r4) = r0;
    0x00015820 b 0x15524                                         |     goto label_94;
                                                                 | label_180:
    0x00015822 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x00015824 movs r6, 0                                        |     r6 = 0;
    0x00015826 mov r4, r2                                        |     r4 = r2;
                                                                 | label_96:
    0x00015828 movs r2, 0                                        |     r2 = 0;
    0x0001582a subs r1, r0, 1                                    |     r1 = r0 - 1;
    0x0001582c mov.w r5, -1                                      |     r5 = -1;
    0x00015830 mov ip, r2                                        |     
    0x00015832 b 0x1583a                                         |     
                                                                 |     while (r3 > 1) {
                                                                 | label_95:
    0x00015834 adds r2, 1                                        |         r2++;
    0x00015836 cmp r2, r4                                        |         
                                                                 |         if (r2 >= r4) {
    0x00015838 bge 0x15852                                       |             goto label_238;
                                                                 |         }
    0x0001583a ldrb r3, [r1, 1]!                                 |         r3 = *((r1 += 1));
    0x0001583e subs r3, 0x31                                     |         r3 -= 0x31;
    0x00015840 cmp r3, 1                                         |         
    0x00015842 bhi 0x15834                                       |         
                                                                 |     }
    0x00015844 cmp.w ip, 0                                       |     
                                                                 |     if (ip != 0) {
    0x00015848 bne 0x158c6                                       |         goto label_239;
                                                                 |     }
    0x0001584a mov r5, r2                                        |     r5 = r2;
    0x0001584c mov.w ip, 1                                       |     
    0x00015850 b 0x15834                                         |     goto label_95;
                                                                 | label_238:
    0x00015852 adds r5, 1                                        |     r5++;
                                                                 |     if (r5 == 1) {
    0x00015854 beq 0x158c6                                       |         goto label_239;
                                                                 |     }
    0x00015856 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x00015858 adds r6, 1                                        |     r6++;
    0x0001585a add r0, r4                                        |     r0 += r4;
    0x0001585c cmp r3, r6                                        |     
                                                                 |     if (r3 > r6) {
    0x0001585e bgt 0x15828                                       |         goto label_96;
                                                                 |     }
    0x00015860 ldr r4, [sp, 0x54]                                |     r4 = var_54h;
    0x00015862 movs r0, 0                                        |     r0 = 0;
    0x00015864 mov ip, r3                                        |     
                                                                 | label_98:
    0x00015866 ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x00015868 movs r3, 0                                        |     r3 = 0;
    0x0001586a mov.w r5, -1                                      |     r5 = -1;
    0x0001586e mov r6, r3                                        |     r6 = r3;
    0x00015870 adds r1, r2, r0                                   |     r1 = r2 + r0;
    0x00015872 b 0x1587c                                         |     
                                                                 |     while (r2 > 1) {
                                                                 | label_97:
    0x00015874 adds r3, 1                                        |         r3++;
    0x00015876 add r1, r4                                        |         r1 += r4;
    0x00015878 cmp ip, r3                                        |         
                                                                 |         if (ip <= r3) {
    0x0001587a ble 0x1588c                                       |             goto label_240;
                                                                 |         }
    0x0001587c ldrb r2, [r1]                                     |         r2 = *(r1);
    0x0001587e subs r2, 0x31                                     |         r2 -= 0x31;
    0x00015880 cmp r2, 1                                         |         
    0x00015882 bhi 0x15874                                       |         
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x00015884 cbnz r6, 0x158c6                                  |         goto label_239;
                                                                 |     }
    0x00015886 mov r5, r3                                        |     r5 = r3;
    0x00015888 movs r6, 1                                        |     r6 = 1;
    0x0001588a b 0x15874                                         |     goto label_97;
                                                                 | label_240:
    0x0001588c adds r5, 1                                        |     r5++;
                                                                 |     if (r5 == 1) {
    0x0001588e beq 0x158c6                                       |         goto label_239;
                                                                 |     }
    0x00015890 adds r0, 1                                        |     r0++;
    0x00015892 cmp r0, r4                                        |     
                                                                 |     if (r0 < r4) {
    0x00015894 blt 0x15866                                       |         goto label_98;
                                                                 |     }
    0x00015896 b.w 0x1488e                                       |     goto label_99;
                                                                 | label_152:
    0x0001589a ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x0001589c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000158a0 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000158a2 ldr r4, [r5]                                      |     r4 = *(r5);
    0x000158a4 bl 0x26fdc                                        |     zbx_strerror ();
    0x000158a8 ldr r1, [pc, 0x2c8]                               |     
    0x000158aa mov r2, r0                                        |     r2 = r0;
    0x000158ac mov r0, r4                                        |     r0 = r4;
    0x000158ae add r1, pc                                        |     r1 = 0x2b426;
    0x000158b0 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000158b4 str r0, [r5]                                      |     *(r5) = r0;
    0x000158b6 mov r0, r8                                        |     r0 = r8;
    0x000158b8 blx 0xbd14                                        |     gai_strerror ();
    0x000158bc ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000158be cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000158c0 beq.w 0x15524                                     |         goto label_94;
                                                                 |     }
    0x000158c4 b 0x15804                                         |     goto label_100;
                                                                 | label_239:
    0x000158c6 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000158c8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000158ca cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x000158cc bgt.w 0x15a26                                     |         goto label_241;
                                                                 |     }
                                                                 | label_109:
    0x000158d0 ldr r4, [pc, 0x2a4]                               |     
    0x000158d2 movs r5, 1                                        |     r5 = 1;
    0x000158d4 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000158d6 movs r2, 0                                        |     r2 = 0;
    0x000158d8 movw r1, 0x3fe                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000158dc str r5, [sp]                                      |     *(sp) = r5;
    0x000158de add r4, pc                                        |     r4 = 0x2b45a;
    0x000158e0 mov.w r8, 0x31                                    |     r8 = 0x31;
    0x000158e4 mov r0, r4                                        |     r0 = r4;
    0x000158e6 bl 0x35b8c                                        |     r0 = zbx_calloc2 ();
    0x000158ea mov r3, r0                                        |     r3 = r0;
    0x000158ec str r5, [sp]                                      |     *(sp) = r5;
    0x000158ee mov r0, r4                                        |     r0 = r4;
    0x000158f0 movs r2, 0                                        |     r2 = 0;
    0x000158f2 mov r4, r3                                        |     r4 = r3;
    0x000158f4 movw r1, 0x3ff                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000158f8 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x000158fa bl 0x35b8c                                        |     zbx_calloc2 ();
    0x000158fe ldr.w lr, [sp, 0x4c]                              |     lr = var_4ch;
    0x00015902 mov r5, r0                                        |     r5 = r0;
    0x00015904 mov.w ip, 0                                       |     
                                                                 | label_103:
    0x00015908 movs r3, 0                                        |     r3 = 0;
    0x0001590a ldr.w sl, [sp, 0x54]                              |     sl = var_54h;
    0x0001590e add.w r0, lr, -1                                  |     r0 = lr + -1;
    0x00015912 mov.w r2, -1                                      |     r2 = -1;
    0x00015916 mov r6, r3                                        |     r6 = r3;
    0x00015918 b 0x15920                                         |     
                                                                 |     while (r1 > 1) {
                                                                 | label_101:
    0x0001591a adds r3, 1                                        |         r3++;
    0x0001591c cmp r3, sl                                        |         
                                                                 |         if (r3 >= sl) {
    0x0001591e bge 0x15932                                       |             goto label_242;
                                                                 |         }
    0x00015920 ldrb r1, [r0, 1]!                                 |         r1 = *((r0 += 1));
    0x00015924 subs r1, 0x31                                     |         r1 -= 0x31;
    0x00015926 cmp r1, 1                                         |         
    0x00015928 bhi 0x1591a                                       |         
                                                                 |     }
                                                                 |     if (r6 != 0) {
    0x0001592a cbnz r6, 0x15972                                  |         goto label_243;
                                                                 |     }
    0x0001592c mov r2, r3                                        |     r2 = r3;
    0x0001592e movs r6, 1                                        |     r6 = 1;
    0x00015930 b 0x1591a                                         |     goto label_101;
                                                                 | label_242:
    0x00015932 adds r0, r2, 1                                    |     r0 = r2 + 1;
                                                                 |     if (r0 == r2) {
    0x00015934 beq 0x15972                                       |         goto label_243;
                                                                 |     }
    0x00015936 ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x00015938 movs r3, 0                                        |     r3 = 0;
    0x0001593a mov.w r6, -1                                      |     r6 = -1;
    0x0001593e mov sl, r3                                        |     sl = r3;
    0x00015940 add r1, r2                                        |     r1 += r2;
    0x00015942 b 0x15950                                         |     
                                                                 |     while (r0 > 1) {
                                                                 | label_102:
    0x00015944 ldr r0, [sp, 0x54]                                |         r0 = var_54h;
    0x00015946 adds r3, 1                                        |         r3++;
    0x00015948 add r1, r0                                        |         r1 += r0;
    0x0001594a ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x0001594c cmp r0, r3                                        |         
                                                                 |         if (r0 <= r3) {
    0x0001594e ble 0x15966                                       |             goto label_244;
                                                                 |         }
    0x00015950 ldrb r0, [r1]                                     |         r0 = *(r1);
    0x00015952 subs r0, 0x31                                     |         r0 -= 0x31;
    0x00015954 cmp r0, 1                                         |         
    0x00015956 bhi 0x15944                                       |         
                                                                 |     }
    0x00015958 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x0001595c bne 0x15972                                       |         
    0x0001595e mov r6, r3                                        |         r6 = r3;
    0x00015960 mov.w sl, 1                                       |         sl = 1;
    0x00015964 b 0x15944                                         |         goto label_102;
                                                                 | label_244:
    0x00015966 adds r6, 1                                        |         r6++;
    0x00015968 itt ne                                            |         
                                                                 |         if (r6 == 1) {
    0x0001596a strbne r8, [r4, ip]                               |             *((r4 + ip)) = r8;
                                                                 |         }
                                                                 |         if (r6 == 1) {
    0x0001596e strb.w r8, [r5, r2]                               |             *((r5 + r2)) = r8;
                                                                 |             goto label_243;
                                                                 |         }
                                                                 |     }
                                                                 | label_243:
    0x00015972 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x00015974 add.w ip, ip, 1                                   |     
    0x00015978 add lr, r3                                        |     lr += r3;
    0x0001597a ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0001597c cmp r3, ip                                        |     
                                                                 |     if (r3 > ip) {
    0x0001597e bgt 0x15908                                       |         goto label_103;
                                                                 |     }
    0x00015980 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x00015982 mov r1, r3                                        |     r1 = r3;
    0x00015984 cmp r3, r2                                        |     
                                                                 |     if (r3 > r2) {
    0x00015986 bgt 0x159de                                       |         goto label_245;
                                                                 |     }
    0x00015988 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x0001598a mov r8, r1                                        |     r8 = r1;
    0x0001598c subs r6, r3, 1                                    |     r6 = r3 - 1;
    0x0001598e movs r3, 0                                        |     r3 = 0;
                                                                 | label_105:
    0x00015990 ldrb r1, [r4, r3]                                 |     r1 = *((r4 + r3));
    0x00015992 cmp r1, 0x31                                      |     
                                                                 |     if (r1 == 0x31) {
    0x00015994 beq 0x159be                                       |         goto label_246;
                                                                 |     }
    0x00015996 mov ip, r6                                        |     
    0x00015998 movs r1, 0                                        |     r1 = 0;
    0x0001599a b 0x159a2                                         |     
                                                                 |     while (r0 > 1) {
                                                                 | label_104:
    0x0001599c adds r1, 1                                        |         r1++;
    0x0001599e cmp r1, r2                                        |         
                                                                 |         if (r1 >= r2) {
    0x000159a0 bge 0x159be                                       |             goto label_246;
                                                                 |         }
    0x000159a2 ldrb r0, [ip, 1]!                                 |         r0 = *((ip += 1));
    0x000159a6 subs r0, 0x31                                     |         r0 -= 0x31;
    0x000159a8 cmp r0, 1                                         |         
    0x000159aa bhi 0x1599c                                       |         
                                                                 |     }
    0x000159ac ldrb r0, [r5, r1]                                 |     r0 = *((r5 + r1));
    0x000159ae cmp r0, 0x31                                      |     
                                                                 |     if (r0 == 0x31) {
    0x000159b0 beq 0x1599c                                       |         goto label_104;
                                                                 |     }
    0x000159b2 stm.w sp, {r1, r4, r5}                            |     *(sp) = r1;
                                                                 |     *((sp + 4)) = r4;
                                                                 |     *((sp + 8)) = r5;
    0x000159b6 mov r1, r8                                        |     r1 = r8;
    0x000159b8 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x000159ba bl 0x12ce0                                        |     fcn_00012ce0 (r0, r1, r2, r3, r4, r5);
                                                                 | label_246:
    0x000159be adds r3, 1                                        |     r3++;
    0x000159c0 add r6, r2                                        |     r6 += r2;
    0x000159c2 cmp r8, r3                                        |     
                                                                 |     if (r8 > r3) {
    0x000159c4 bgt 0x15990                                       |         goto label_105;
                                                                 |     }
                                                                 |     if (r5 == 0) {
                                                                 | label_108:
    0x000159c6 cbz r5, 0x159d4                                   |         goto label_247;
                                                                 |     }
    0x000159c8 mov r0, r5                                        |     r0 = r5;
    0x000159ca blx 0xbd14                                        |     gai_strerror ();
    0x000159ce cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000159d0 beq.w 0x1488e                                     |         goto label_99;
                                                                 |     }
                                                                 | label_247:
    0x000159d4 mov r0, r4                                        |     r0 = r4;
    0x000159d6 blx 0xbd14                                        |     gai_strerror ();
    0x000159da b.w 0x1488e                                       |     goto label_99;
                                                                 | label_245:
    0x000159de ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x000159e0 ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x000159e2 ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x000159e4 subs r3, 1                                        |     r3--;
    0x000159e6 mul r6, r2, r3                                    |     r6 = r2 * r3;
    0x000159ea add.w r8, r1, r2                                  |     r8 = r1 + r2;
                                                                 | label_107:
    0x000159ee ldrb r1, [r4, r3]                                 |     r1 = *((r4 + r3));
    0x000159f0 cmp r1, 0x31                                      |     
                                                                 |     if (r1 == 0x31) {
    0x000159f2 beq 0x15a1c                                       |         goto label_248;
                                                                 |     }
    0x000159f4 subs r1, r2, 1                                    |     r1 = r2 - 1;
    0x000159f6 add.w ip, r8, r6                                  |     
    0x000159fa b 0x15a00                                         |     
                                                                 |     while (r0 > 1) {
                                                                 | label_106:
    0x000159fc subs r1, 1                                        |         r1--;
                                                                 |         if (r1 <= 1) {
    0x000159fe blo 0x15a1c                                       |             goto label_248;
                                                                 |         }
    0x00015a00 ldrb r0, [ip, -0x1]!                              |         r0 = *((ip -= 0x1));
    0x00015a04 subs r0, 0x31                                     |         r0 -= 0x31;
    0x00015a06 cmp r0, 1                                         |         
    0x00015a08 bhi 0x159fc                                       |         
                                                                 |     }
    0x00015a0a ldrb r0, [r5, r1]                                 |     r0 = *((r5 + r1));
    0x00015a0c cmp r0, 0x31                                      |     
                                                                 |     if (r0 == 0x31) {
    0x00015a0e beq 0x159fc                                       |         goto label_106;
                                                                 |     }
    0x00015a10 stm.w sp, {r1, r4, r5}                            |     *(sp) = r1;
                                                                 |     *((sp + 4)) = r4;
                                                                 |     *((sp + 8)) = r5;
    0x00015a14 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x00015a16 ldr r1, [sp, 0x30]                                |     r1 = var_30h;
    0x00015a18 bl 0x12ce0                                        |     fcn_00012ce0 (r0, r1, r2, r3, r4, r5);
                                                                 | label_248:
    0x00015a1c subs r3, 1                                        |     r3--;
    0x00015a1e subs r6, r6, r2                                   |     r6 -= r2;
    0x00015a20 adds r1, r3, 1                                    |     r1 = r3 + 1;
                                                                 |     if (r1 != r3) {
    0x00015a22 bne 0x159ee                                       |         goto label_107;
                                                                 |     }
    0x00015a24 b 0x159c6                                         |     goto label_108;
                                                                 | label_241:
    0x00015a26 ldr r1, [pc, 0x154]                               |     
    0x00015a28 movs r0, 4                                        |     r0 = 4;
    0x00015a2a add r1, pc                                        |     r1 = 0x2b5ac;
    0x00015a2c bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00015a30 b 0x158d0                                         |     goto label_109;
                                                                 | label_148:
    0x00015a32 ldr r4, [sp, 0x88]                                |     r4 = var_88h;
    0x00015a34 movs r2, 0x2f                                     |     r2 = 0x2f;
    0x00015a36 ldr r1, [pc, 0x148]                               |     
    0x00015a38 ldr r0, [r4]                                      |     r0 = *(r4);
    0x00015a3a add r1, pc                                        |     r1 = 0x2b5c0;
    0x00015a3c bl 0x396b0                                        |     zbx_dsprintf ()
    0x00015a40 str r0, [r4]                                      |     *(r4) = r0;
    0x00015a42 b 0x15524                                         |     goto label_94;
                                                                 | label_156:
    0x00015a44 ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00015a46 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015a4a ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015a4c ldr r4, [r5]                                      |     r4 = *(r5);
    0x00015a4e bl 0x26fdc                                        |     zbx_strerror ();
    0x00015a52 ldr r1, [pc, 0x130]                               |     
    0x00015a54 mov r3, r0                                        |     r3 = r0;
    0x00015a56 mov r2, r8                                        |     r2 = r8;
    0x00015a58 mov r0, r4                                        |     r0 = r4;
    0x00015a5a mov.w r4, -1                                      |     r4 = -1;
    0x00015a5e add r1, pc                                        |     r1 = 0x2b5e8;
    0x00015a60 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00015a64 str r0, [r5]                                      |     *(r5) = r0;
    0x00015a66 b 0x15664                                         |     goto label_91;
                                                                 | label_117:
    0x00015a68 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_218:
    0x00015a6c ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x00015a6e blx 0xc47c                                        |     r0 = fcn_0000c47c ();
    0x00015a72 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00015a74 bne.w 0x15160                                     |         goto label_110;
                                                                 |     }
    0x00015a78 b.w 0x14840                                       |     goto label_51;
                                                                 | label_217:
    0x00015a7c ldr r0, [sp, 0x84]                                |     r0 = var_84h;
    0x00015a7e blx 0xc47c                                        |     fcn_0000c47c ();
    0x00015a82 b.w 0x15184                                       |     goto label_63;
                                                                 | label_202:
    0x00015a86 ldr r6, [sp, 0x88]                                |     r6 = var_88h;
    0x00015a88 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015a8c ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015a8e ldr r5, [r6]                                      |     r5 = *(r6);
    0x00015a90 bl 0x26fdc                                        |     zbx_strerror ();
    0x00015a94 ldr r1, [pc, 0xf0]                                |     
    0x00015a96 mov r3, r0                                        |     r3 = r0;
    0x00015a98 mov r2, r8                                        |     r2 = r8;
    0x00015a9a mov r0, r5                                        |     r0 = r5;
    0x00015a9c add r1, pc                                        |     r1 = 0x2b628;
    0x00015a9e bl 0x396b0                                        |     zbx_dsprintf ()
    0x00015aa2 str r0, [r6]                                      |     *(r6) = r0;
    0x00015aa4 b 0x15664                                         |     goto label_91;
                                                                 | label_188:
    0x00015aa6 ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00015aa8 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015aac ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015aae ldr r4, [r5]                                      |     r4 = *(r5);
    0x00015ab0 bl 0x26fdc                                        |     zbx_strerror ();
    0x00015ab4 ldr r1, [pc, 0xd4]                                |     
    0x00015ab6 mov r2, r0                                        |     r2 = r0;
    0x00015ab8 mov r0, r4                                        |     r0 = r4;
    0x00015aba add r1, pc                                        |     r1 = 0x2b64a;
    0x00015abc bl 0x396b0                                        |     zbx_dsprintf ()
    0x00015ac0 str r0, [r5]                                      |     *(r5) = r0;
    0x00015ac2 mov r0, r8                                        |     r0 = r8;
    0x00015ac4 blx 0xbd14                                        |     gai_strerror ();
    0x00015ac8 b 0x15804                                         |     goto label_100;
                                                                 | label_231:
    0x00015aca ldr r5, [sp, 0x88]                                |     r5 = var_88h;
    0x00015acc blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00015ad0 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00015ad2 ldr r4, [r5]                                      |     r4 = *(r5);
    0x00015ad4 bl 0x26fdc                                        |     zbx_strerror ();
    0x00015ad8 ldr r1, [pc, 0xb4]                                |     
    0x00015ada mov r2, r0                                        |     r2 = r0;
    0x00015adc mov r0, r4                                        |     r0 = r4;
    0x00015ade add r1, pc                                        |     r1 = 0x2b672;
    0x00015ae0 bl 0x396b0                                        |     zbx_dsprintf ()
    0x00015ae4 str r0, [r5]                                      |     *(r5) = r0;
    0x00015ae6 mov r0, r8                                        |     r0 = r8;
    0x00015ae8 blx 0xbd14                                        |     gai_strerror ();
    0x00015aec b 0x15524                                         |     goto label_94;
                                                                 | label_219:
    0x00015aee blx 0xc47c                                        |     r0 = fcn_0000c47c ();
    0x00015af2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00015af4 bne.w 0x15160                                     |         goto label_110;
                                                                 |     }
    0x00015af8 b.w 0x1480e                                       |     goto label_69;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2ea40 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.telnet_execute ()                                    | void telnet_execute (int16_t arg_10000h, int16_t arg1, int16_t arg2, int16_t arg3, int16_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_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0002ea40 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0002ea44 sub.w sp, sp, 0x10000                                 |     
    0x0002ea48 ldr r6, [pc, 0x370]                                   |     
    0x0002ea4a sub sp, 0x34                                          |     
    0x0002ea4c add.w r7, sp, 0x10000                                 |     r7 += arg_10000h;
    0x0002ea50 mov sb, r0                                            |     sb = r0;
    0x0002ea52 ldr r5, [pc, 0x36c]                                   |     r5 = *(0x2edc2);
    0x0002ea54 adds r7, 0x2c                                         |     r7 += 0x2c;
    0x0002ea56 add r6, pc                                            |     r6 = 0x5d816;
    0x0002ea58 ldr r4, [pc, 0x368]                                   |     
    0x0002ea5a ldr r5, [r6, r5]                                      |     
    0x0002ea5c add r4, pc                                            |     r4 = server_num;
    0x0002ea5e ldr r5, [r5]                                          |     r5 = imp.__environ;
    0x0002ea60 str r5, [r7]                                          |     *(r7) = r5;
    0x0002ea62 mov.w r5, 0                                           |     r5 = 0;
    0x0002ea66 strd r2, r3, [sp, 0x14]                               |     __asm ("strd r2, r3, [sp, 0x14]");
    0x0002ea6a ldr r2, [pc, 0x35c]                                   |     r2 = *(0x2edca);
    0x0002ea6c mov r3, r4                                            |     r3 = r4;
    0x0002ea6e mov r5, r1                                            |     r5 = r1;
    0x0002ea70 ldr r3, [r4, r2]                                      |     
    0x0002ea72 str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0002ea74 ldr r3, [r3]                                          |     r3 = imp.__environ;
    0x0002ea76 cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0002ea78 bgt.w 0x2ed6a                                         |         goto label_13;
                                                                     |     }
                                                                     | label_8:
    0x0002ea7c ldr r4, [pc, 0x34c]                                   |     
    0x0002ea7e mov r0, r5                                            |     r0 = r5;
    0x0002ea80 add r6, sp, 0x30                                      |     r6 += var_30h;
    0x0002ea82 blx 0xc114                                            |     fcn_0000c114 ();
    0x0002ea86 add r4, pc                                            |     r4 = 0x5d856;
    0x0002ea88 add.w r8, r0, 1                                       |     r8 = r0 + 1;
    0x0002ea8c mov r7, r6                                            |     r7 = r6;
    0x0002ea8e mov r3, r8                                            |     r3 = r8;
    0x0002ea90 str r0, [r7, -0x8]!                                   |     *((r7 -= 0x8)) = r0;
    0x0002ea94 movs r2, 0                                            |     r2 = 0;
    0x0002ea96 movw r1, 0x1a7                                        |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ea9a mov r0, r4                                            |     r0 = r4;
    0x0002ea9c bl 0x35c28                                            |     zbx_malloc2 ();
    0x0002eaa0 mov r2, r8                                            |     r2 = r8;
    0x0002eaa2 mov r1, r5                                            |     r1 = r5;
    0x0002eaa4 mov r8, r0                                            |     r8 = r0;
    0x0002eaa6 str r0, [sp, 0xc]                                     |     var_ch = r0;
    0x0002eaa8 bl 0x394f0                                            |     zbx_strlcpy ();
    0x0002eaac mov r0, r8                                            |     r0 = r8;
    0x0002eaae mov r1, r7                                            |     r1 = r7;
    0x0002eab0 bl 0x2e050                                            |     fcn_0002e050 (r0, r1);
    0x0002eab4 mov r0, r4                                            |     r0 = r4;
    0x0002eab6 ldr r4, [r6, -0x8]                                    |     r4 = *((r6 - 0x8));
    0x0002eaba movs r2, 0                                            |     r2 = 0;
    0x0002eabc mov.w r1, 0x1ac                                       |     r1 = case.0x3207a.11;
    0x0002eac0 mov r5, r8                                            |     r5 = r8;
    0x0002eac2 str r4, [sp, 8]                                       |     var_8h = r4;
    0x0002eac4 lsls r3, r4, 1                                        |     r3 = r4 << 1;
    0x0002eac6 adds r3, 1                                            |     r3++;
    0x0002eac8 bl 0x35c28                                            |     r0 = zbx_malloc2 ();
    0x0002eacc mov r8, r0                                            |     r8 = r0;
    0x0002eace cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x0002ead0 beq.w 0x2ed8c                                         |         goto label_14;
                                                                     |     }
    0x0002ead4 subs r4, 1                                            |     r4--;
    0x0002ead6 subs r3, r5, 1                                        |     r3 = r5 - 1;
    0x0002ead8 add r4, r5                                            |     r4 += r5;
    0x0002eada movs r2, 0                                            |     r2 = 0;
    0x0002eadc movs r7, 0xd                                          |     r7 = 0xd;
                                                                     |     do {
    0x0002eade ldrb r1, [r3, 1]!                                     |         r1 = *((r3 += 1));
    0x0002eae2 adds r0, r2, 1                                        |         r0 = r2 + 1;
    0x0002eae4 cmp r1, 0xa                                           |         
    0x0002eae6 ittee eq                                              |         
                                                                     |         if (r1 != 0xa) {
    0x0002eae8 strbeq r7, [r8, r2]                                   |             *((r8 + r2)) = r7;
                                                                     |         }
                                                                     |         if (r1 == 0xa) {
    0x0002eaec addne r2, 2                                           |             r2 += 2;
                                                                     |         }
                                                                     |         if (r1 == 0xa) {
    0x0002eaee strbne r1, [r8, r2]                                   |             *((r8 + r2)) = r1;
                                                                     |         }
                                                                     |         if (r1 != 0xa) {
    0x0002eaf2 mov r2, r0                                            |             r2 = r0;
                                                                     |         }
    0x0002eaf4 it eq                                                 |         
                                                                     |         if (r1 != 0xa) {
    0x0002eaf6 strbeq r1, [r8, r0]                                   |             *((r8 + r0)) = r1;
                                                                     |         }
    0x0002eafa cmp r4, r3                                            |         
    0x0002eafc bne 0x2eade                                           |         
                                                                     |     } while (r4 != r3);
                                                                     | label_10:
    0x0002eafe mov r1, r8                                            |     r1 = r8;
    0x0002eb00 mov r0, sb                                            |     r0 = sb;
    0x0002eb02 bl 0x2e2c8                                            |     fcn_0002e2c8 (r0, r1, r2);
    0x0002eb06 ldr.w fp, [pc, 0x2c8]                                 |     fp = *(0x0002edd0);
    0x0002eb0a movs r2, 2                                            |     r2 = 2;
    0x0002eb0c ldr r1, [pc, 0x2c4]                                   |     
    0x0002eb0e mov r0, sb                                            |     r0 = sb;
    0x0002eb10 add.w sl, sp, 0x24                                    |     sl += var_24h;
    0x0002eb14 add r5, sp, 0x20                                      |     r5 += var_20h;
    0x0002eb16 add fp, pc                                            |     
    0x0002eb18 add r4, sp, 0x2c                                      |     r4 += var_2ch;
    0x0002eb1a add r1, pc                                            |     r1 = 0x5d8f2;
    0x0002eb1c bl 0x2e2c8                                            |     fcn_0002e2c8 (r0, r1, r2);
    0x0002eb20 mov.w r2, 0x10000                                     |     r2 = case.0x3207a.11;
    0x0002eb24 movs r3, 0                                            |     r3 = 0;
    0x0002eb26 strd r2, r3, [r6, -0x10]                              |     __asm ("strd r2, r3, [r6, -0x10]");
    0x0002eb28 movs r3, 4                                            |     r3 = 4;
                                                                     | label_0:
    0x0002eb2a mov r3, sl                                            |     r3 = sl;
    0x0002eb2c mov r2, r5                                            |     r2 = r5;
    0x0002eb2e mov r1, r4                                            |     r1 = r4;
    0x0002eb30 mov r0, sb                                            |     r0 = sb;
    0x0002eb32 bl 0x2e3a4                                            |     r0 = fcn_0002e3a4 (r0, r1, r2, r3);
    0x0002eb36 adds r3, r0, 1                                        |     r3 = r0 + 1;
                                                                     |     if (r3 == r0) {
    0x0002eb38 beq.w 0x2ecbc                                         |         goto label_15;
                                                                     |     }
    0x0002eb3c ldr r0, [r6, -0xc]                                    |     r0 = *((r6 - 0xc));
    0x0002eb40 add r0, r4                                            |     r0 += r4;
    0x0002eb42 b 0x2eb4c                                             |     
                                                                     |     while (r4 != r0) {
    0x0002eb44 ldrb r3, [r0, -0x1]!                                  |         r3 = *((r0 -= 0x1));
    0x0002eb48 cmp r3, 0x20                                          |         
                                                                     |         if (r3 != 0x20) {
    0x0002eb4a bne 0x2eb52                                           |             goto label_16;
                                                                     |         }
    0x0002eb4c cmp r4, r0                                            |         
    0x0002eb4e bne 0x2eb44                                           |         
                                                                     |     }
    0x0002eb50 movs r3, 0                                            |     r3 = 0;
                                                                     | label_16:
    0x0002eb52 ldrb.w r7, [fp]                                       |     r7 = *(fp);
    0x0002eb56 cmp r7, r3                                            |     
                                                                     |     if (r7 != r3) {
    0x0002eb58 bne 0x2eb2a                                           |         goto label_0;
                                                                     |     }
    0x0002eb5a mov r1, sl                                            |     r1 = sl;
    0x0002eb5c mov r0, r4                                            |     r0 = r4;
    0x0002eb5e bl 0x2e050                                            |     fcn_0002e050 (r0, r1);
    0x0002eb62 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0002eb64 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0002eb66 cmp r3, 3                                             |     
    0x0002eb68 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
                                                                     |     if (r3 > 3) {
    0x0002eb6a bgt.w 0x2ed9a                                         |         goto label_17;
                                                                     |     }
                                                                     | label_12:
    0x0002eb6e ldrd r2, r1, [sp, 8]                                  |     __asm ("ldrd r2, r1, [var_8h]");
    0x0002eb72 mov r0, r4                                            |     r0 = r4;
    0x0002eb74 blx 0xbddc                                            |     r0 = fcn_0000bddc ();
    0x0002eb78 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0002eb7a bne.w 0x2ed90                                         |         goto label_18;
                                                                     |     }
    0x0002eb7e ldr r3, [r6, -0xc]                                    |     r3 = *((r6 - 0xc));
    0x0002eb82 mov r0, r4                                            |     r0 = r4;
    0x0002eb84 ldr r1, [sp, 8]                                       |     r1 = var_8h;
    0x0002eb86 sub.w sb, r3, r1                                      |     sb = r3 - r1;
    0x0002eb8a mov.w r3, 0x10000                                     |     r3 = case.0x3207a.11;
    0x0002eb8e mov r2, sb                                            |     r2 = sb;
    0x0002eb90 adds r1, r4, r1                                       |     r1 = r4 + r1;
    0x0002eb92 str sb, [r6, -0xc]                                    |     *((r6 - 0xc)) = sb;
    0x0002eb96 blx 0xbd04                                            |     fcn_0000bd04 ();
                                                                     | label_11:
    0x0002eb9a ldr r3, [sp, 8]                                       |     r3 = var_8h;
                                                                     |     if (r3 == 0) {
    0x0002eb9c cbz r3, 0x2ebec                                       |         goto label_19;
                                                                     |     }
    0x0002eb9e subs r5, r3, 1                                        |     r5 = r3 - 1;
    0x0002eba0 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x0002eba2 sub.w sl, r6, 2                                       |     sl = r6 - 2;
    0x0002eba6 add.w fp, r3, r5                                      |     
    0x0002ebaa subs r5, r3, 1                                        |     r5 = r3 - 1;
    0x0002ebac mov r3, r4                                            |     r3 = r4;
    0x0002ebae mov r4, sb                                            |     r4 = sb;
    0x0002ebb0 mov sb, r3                                            |     sb = r3;
    0x0002ebb2 b 0x2ebb8                                             |     
                                                                     |     while (r3 != 0xa) {
    0x0002ebb4 cmp r5, fp                                            |         
                                                                     |         if (r5 == fp) {
    0x0002ebb6 beq 0x2ebe6                                           |             goto label_4;
                                                                     |         }
                                                                     | label_1:
    0x0002ebb8 ldrb r3, [r5, 1]!                                     |         r3 = *((r5 += 1));
    0x0002ebbc cmp r3, 0xa                                           |         
    0x0002ebbe bne 0x2ebb4                                           |         
                                                                     |     }
    0x0002ebc0 ldrh r3, [r6, -0x4]                                   |     r3 = *((r6 - 0x4));
    0x0002ebc4 movw r2, 0x2024                                       |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ebc8 cmp r3, r2                                            |     
                                                                     |     if (r3 != r2) {
    0x0002ebca bne.w 0x2ed0e                                         |         goto label_20;
                                                                     |     }
                                                                     | label_3:
    0x0002ebce subs r4, 2                                            |     r4 -= 2;
    0x0002ebd0 mov.w r3, 0x10000                                     |     r3 = case.0x3207a.11;
    0x0002ebd4 mov r2, r4                                            |     r2 = r4;
    0x0002ebd6 mov r1, sl                                            |     r1 = sl;
    0x0002ebd8 mov r0, sb                                            |     r0 = sb;
    0x0002ebda str r4, [r6, -0xc]                                    |     *((r6 - 0xc)) = r4;
    0x0002ebde blx 0xbd04                                            |     fcn_0000bd04 ();
    0x0002ebe2 cmp r5, fp                                            |     
                                                                     |     if (r5 != fp) {
    0x0002ebe4 bne 0x2ebb8                                           |         goto label_1;
                                                                     |     }
                                                                     | label_4:
    0x0002ebe6 mov r3, sb                                            |     r3 = sb;
    0x0002ebe8 mov sb, r4                                            |     sb = r4;
    0x0002ebea mov r4, r3                                            |     r4 = r3;
                                                                     | label_19:
    0x0002ebec ldrb r3, [r6, -0x4]                                   |     r3 = *((r6 - 0x4));
    0x0002ebf0 cmp r3, 0xa                                           |     
                                                                     |     if (r3 == 0xa) {
    0x0002ebf2 bne 0x2ec0a                                           |         
    0x0002ebf4 add.w sb, sb, -1                                      |         sb += -1;
    0x0002ebf8 mov.w r3, 0x10000                                     |         r3 = case.0x3207a.11;
    0x0002ebfc mov r2, sb                                            |         r2 = sb;
    0x0002ebfe subs r1, r6, 3                                        |         r1 = r6 - 3;
    0x0002ec00 mov r0, r4                                            |         r0 = r4;
    0x0002ec02 str sb, [r6, -0xc]                                    |         *((r6 - 0xc)) = sb;
    0x0002ec06 blx 0xbd04                                            |         fcn_0000bd04 ();
                                                                     |     }
    0x0002ec0a add.w r3, r4, sb                                      |     r3 = r4 + sb;
    0x0002ec0e mov r5, sb                                            |     r5 = sb;
    0x0002ec10 movs r1, 0                                            |     r1 = 0;
                                                                     |     do {
    0x0002ec12 cmp r5, 0                                             |         
                                                                     |         if (r5 == 0) {
    0x0002ec14 beq.w 0x2ed2e                                         |             goto label_21;
                                                                     |         }
    0x0002ec18 ldrb r2, [r3, -0x1]!                                  |         r2 = *((r3 -= 0x1));
    0x0002ec1c subs r5, 1                                            |         r5--;
    0x0002ec1e movs r1, 1                                            |         r1 = 1;
    0x0002ec20 cmp r2, r7                                            |         
    0x0002ec22 bne 0x2ec12                                           |         
                                                                     |     } while (r2 != r7);
    0x0002ec24 cmp r7, 0xa                                           |     
    0x0002ec26 str r5, [r6, -0xc]                                    |     *((r6 - 0xc)) = r5;
                                                                     |     if (r7 == 0xa) {
    0x0002ec2a beq 0x2ec4a                                           |         goto label_22;
                                                                     |     }
    0x0002ec2c adds r2, r4, r5                                       |     r2 = r4 + r5;
    0x0002ec2e mov r3, r5                                            |     r3 = r5;
    0x0002ec30 movs r0, 0                                            |     r0 = 0;
                                                                     |     do {
    0x0002ec32 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0002ec34 beq.w 0x2ed7c                                         |             goto label_23;
                                                                     |         }
    0x0002ec38 ldrb r1, [r2, -0x1]!                                  |         r1 = *((r2 -= 0x1));
    0x0002ec3c subs r3, 1                                            |         r3--;
    0x0002ec3e movs r0, 1                                            |         r0 = 1;
    0x0002ec40 cmp r1, 0xa                                           |         
    0x0002ec42 bne 0x2ec32                                           |         
                                                                     |     } while (r1 != 0xa);
    0x0002ec44 mov r5, r3                                            |     r5 = r3;
    0x0002ec46 str r3, [r6, -0xc]                                    |     *((r6 - 0xc)) = r3;
                                                                     | label_22:
    0x0002ec4a ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0002ec4c cmp r3, 3                                             |     
                                                                     |     if (r3 > 3) {
    0x0002ec4e bgt 0x2ed3a                                           |         goto label_24;
                                                                     |     }
                                                                     | label_6:
    0x0002ec50 cmp.w r5, 0x10000                                     |     
    0x0002ec54 itt eq                                                |     
                                                                     |     if (r5 == 0x10000) {
    0x0002ec56 movweq r5, 0xffff                                     |         __asm ("movweq r5, case.0x3207a.11");
                                                                     |     }
                                                                     |     if (r5 == 0x10000) {
    0x0002ec5a str r5, [r6, -0xc]                                    |         *((r6 - 0xc)) = r5;
                                                                     |     }
                                                                     | label_5:
    0x0002ec5e mov r0, r4                                            |     r0 = r4;
    0x0002ec60 ldr r4, [sp, 0x14]                                    |     r4 = var_14h;
    0x0002ec62 add r6, r5                                            |     r6 += r5;
    0x0002ec64 movs r7, 0                                            |     r7 = 0;
    0x0002ec66 ldr r2, [sp, 0x18]                                    |     r2 = var_18h;
    0x0002ec68 mov r1, r5                                            |     r1 = r5;
    0x0002ec6a ldr r3, [r4, 0x28]                                    |     r3 = *((r4 + 0x28));
    0x0002ec6c strb r7, [r6, -0x4]                                   |     *((r6 - 0x4)) = r7;
    0x0002ec70 orr r3, r3, 4                                         |     r3 |= 4;
    0x0002ec74 str r3, [r4, 0x28]                                    |     *((r4 + 0x28)) = r3;
    0x0002ec76 bl 0x3a550                                            |     convert_to_utf8 ();
    0x0002ec7a str r0, [r4, 0x18]                                    |     *((r4 + 0x18)) = r0;
                                                                     | label_2:
    0x0002ec7c ldr r0, [sp, 0xc]                                     |     r0 = var_ch;
    0x0002ec7e blx 0xbd14                                            |     gai_strerror ();
                                                                     |     do {
    0x0002ec82 cmp.w r8, 0                                           |         
                                                                     |         if (r8 != 0) {
    0x0002ec86 beq 0x2ec8e                                           |             
    0x0002ec88 mov r0, r8                                            |             r0 = r8;
    0x0002ec8a blx 0xbd14                                            |             gai_strerror ();
                                                                     |         }
    0x0002ec8e ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0002ec90 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0002ec92 cmp r3, 3                                             |         
                                                                     |         if (r3 > 3) {
    0x0002ec94 bgt 0x2ed50                                           |             goto label_25;
                                                                     |         }
                                                                     | label_7:
    0x0002ec96 ldr r2, [pc, 0x140]                                   |         
    0x0002ec98 add.w r1, sp, 0x10000                                 |         r1 += arg_10000h;
    0x0002ec9c ldr r3, [pc, 0x120]                                   |         r3 = *(0x2edc0);
    0x0002ec9e adds r1, 0x2c                                         |         r1 += 0x2c;
    0x0002eca0 add r2, pc                                            |         r2 = 0x5da7e;
    0x0002eca2 ldr r3, [r2, r3]                                      |         r3 = imp.__environ;
    0x0002eca4 ldr r2, [r3]                                          |         r2 = imp.__environ;
    0x0002eca6 ldr r3, [r1]                                          |         r3 = *(r1);
    0x0002eca8 eors r2, r3                                           |         r2 ^= r3;
    0x0002ecaa mov.w r3, 0                                           |         r3 = 0;
                                                                     |         if (r2 != r3) {
    0x0002ecae bne 0x2ed96                                           |             goto label_26;
                                                                     |         }
    0x0002ecb0 mov r0, r7                                            |         r0 = r7;
    0x0002ecb2 add.w sp, sp, 0x10000                                 |         
    0x0002ecb6 add sp, 0x34                                          |         
    0x0002ecb8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_15:
    0x0002ecbc mov r7, r0                                            |         r7 = r0;
    0x0002ecbe mov r1, sl                                            |         r1 = sl;
    0x0002ecc0 mov r0, r4                                            |         r0 = r4;
    0x0002ecc2 bl 0x2e050                                            |         fcn_0002e050 (r0, r1);
    0x0002ecc6 ldr r3, [sp, 0x10]                                    |         r3 = var_10h;
    0x0002ecc8 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0002ecca cmp r3, 3                                             |         
                                                                     |         if (r3 > 3) {
    0x0002eccc ble 0x2ece4                                           |             
    0x0002ecce ldr r2, [pc, 0x10c]                                   |             
    0x0002ecd0 movs r0, 4                                            |             r0 = 4;
    0x0002ecd2 ldr r1, [pc, 0x10c]                                   |             
    0x0002ecd4 str r4, [sp]                                          |             *(sp) = r4;
    0x0002ecd6 add r2, pc                                            |             r2 = 0x5dab8;
    0x0002ecd8 ldr r3, [r6, -0xc]                                    |             r3 = *((r6 - 0xc));
    0x0002ecdc adds r2, 0x6c                                         |             r2 += 0x6c;
    0x0002ecde add r1, pc                                            |             r1 = 0x5dac4;
    0x0002ece0 bl 0x271b0                                            |             zbx_zabbix_log ();
                                                                     |         }
    0x0002ece4 ldr r4, [sp, 0x14]                                    |         r4 = var_14h;
    0x0002ece6 ldr r3, [r4, 0x28]                                    |         r3 = *((r4 + 0x28));
    0x0002ece8 orr r3, r3, 0x20                                      |         r3 |= 0x20;
    0x0002ecec str r3, [r4, 0x28]                                    |         *((r4 + 0x28)) = r3;
    0x0002ecee blx 0xc15c                                            |         r0 = fcn_0000c15c ();
    0x0002ecf2 ldr r0, [r0]                                          |         r0 = *(r0);
    0x0002ecf4 bl 0x275f8                                            |         strerror_from_system ();
    0x0002ecf8 ldr r1, [pc, 0xe8]                                    |         
    0x0002ecfa mov r2, r0                                            |         r2 = r0;
    0x0002ecfc movs r0, 0                                            |         r0 = 0;
    0x0002ecfe add r1, pc                                            |         r1 = 0x5dae6;
    0x0002ed00 bl 0x396b0                                            |         zbx_dsprintf ()
    0x0002ed04 ldr r3, [sp, 0xc]                                     |         r3 = var_ch;
    0x0002ed06 str r0, [r4, 0x20]                                    |         *((r4 + 0x20)) = r0;
    0x0002ed08 cmp r3, 0                                             |         
    0x0002ed0a beq 0x2ec82                                           |         
                                                                     |     } while (r3 == 0);
    0x0002ed0c b 0x2ec7c                                             |     goto label_2;
                                                                     | label_20:
    0x0002ed0e movw r2, 0x2023                                       |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ed12 cmp r3, r2                                            |     
                                                                     |     if (r3 == r2) {
    0x0002ed14 beq.w 0x2ebce                                         |         goto label_3;
                                                                     |     }
    0x0002ed18 movw r2, 0x203e                                       |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ed1c cmp r3, r2                                            |     
                                                                     |     if (r3 == r2) {
    0x0002ed1e beq.w 0x2ebce                                         |         goto label_3;
                                                                     |     }
    0x0002ed22 movw r2, 0x2025                                       |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002ed26 cmp r3, r2                                            |     
                                                                     |     if (r3 == r2) {
    0x0002ed28 beq.w 0x2ebce                                         |         goto label_3;
                                                                     |     }
    0x0002ed2c b 0x2ebe6                                             |     goto label_4;
                                                                     |     if (r1 == 0) {
                                                                     | label_21:
    0x0002ed2e cbz r1, 0x2ed88                                       |         goto label_27;
                                                                     |     }
    0x0002ed30 str r5, [r6, -0xc]                                    |     *((r6 - 0xc)) = r5;
                                                                     | label_9:
    0x0002ed34 ldr r3, [sp, 0x1c]                                    |     r3 = var_1ch;
    0x0002ed36 cmp r3, 3                                             |     
                                                                     |     if (r3 <= 3) {
    0x0002ed38 ble 0x2ec5e                                           |         goto label_5;
                                                                     |     }
                                                                     | label_24:
    0x0002ed3a ldr r2, [pc, 0xac]                                    |     
    0x0002ed3c mov r3, r5                                            |     r3 = r5;
    0x0002ed3e ldr r1, [pc, 0xac]                                    |     
    0x0002ed40 movs r0, 4                                            |     r0 = 4;
    0x0002ed42 str r4, [sp]                                          |     *(sp) = r4;
    0x0002ed44 add r2, pc                                            |     r2 = 0x5db32;
    0x0002ed46 adds r2, 0x6c                                         |     r2 += 0x6c;
    0x0002ed48 add r1, pc                                            |     r1 = 0x5db3a;
    0x0002ed4a bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002ed4e b 0x2ec50                                             |     goto label_6;
                                                                     | label_25:
    0x0002ed50 mov r0, r7                                            |     r0 = r7;
    0x0002ed52 bl 0x3a204                                            |     zbx_result_string ();
    0x0002ed56 ldr r2, [pc, 0x98]                                    |     
    0x0002ed58 mov r3, r0                                            |     r3 = r0;
    0x0002ed5a ldr r1, [pc, 0x98]                                    |     
    0x0002ed5c movs r0, 4                                            |     r0 = 4;
    0x0002ed5e add r2, pc                                            |     r2 = 0x5db54;
    0x0002ed60 add r1, pc                                            |     r1 = 0x5db5a;
    0x0002ed62 adds r2, 0x6c                                         |     r2 += 0x6c;
    0x0002ed64 bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002ed68 b 0x2ec96                                             |     goto label_7;
                                                                     | label_13:
    0x0002ed6a ldr r2, [pc, 0x8c]                                    |     
    0x0002ed6c movs r0, 4                                            |     r0 = 4;
    0x0002ed6e ldr r1, [pc, 0x8c]                                    |     
    0x0002ed70 add r2, pc                                            |     r2 = 0x5db6e;
    0x0002ed72 adds r2, 0x6c                                         |     r2 += 0x6c;
    0x0002ed74 add r1, pc                                            |     r1 = 0x5db76;
    0x0002ed76 bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002ed7a b 0x2ea7c                                             |     goto label_8;
                                                                     | label_23:
    0x0002ed7c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0002ed7e beq 0x2ed34                                           |         goto label_9;
                                                                     |     }
    0x0002ed80 mov r5, r3                                            |     r5 = r3;
    0x0002ed82 str r3, [r6, -0xc]                                    |     *((r6 - 0xc)) = r3;
    0x0002ed86 b 0x2ed34                                             |     goto label_9;
                                                                     | label_27:
    0x0002ed88 mov r5, sb                                            |     r5 = sb;
    0x0002ed8a b 0x2ed34                                             |     goto label_9;
                                                                     | label_14:
    0x0002ed8c ldr r2, [sp, 8]                                       |     r2 = var_8h;
    0x0002ed8e b 0x2eafe                                             |     goto label_10;
                                                                     | label_18:
    0x0002ed90 ldr sb, [r6, -0xc]                                    |     sb = *((r6 - 0xc));
    0x0002ed94 b 0x2eb9a                                             |     goto label_11;
                                                                     | label_26:
    0x0002ed96 blx 0xbe48                                            |     fcn_0000be48 ();
                                                                     | label_17:
    0x0002ed9a ldr r2, [pc, 0x64]                                    |     
    0x0002ed9c movs r0, 4                                            |     r0 = 4;
    0x0002ed9e ldr r1, [pc, 0x64]                                    |     
    0x0002eda0 str r4, [sp]                                          |     *(sp) = r4;
    0x0002eda2 add r2, pc                                            |     r2 = 0x5dba8;
    0x0002eda4 ldr r3, [r6, -0xc]                                    |     r3 = *((r6 - 0xc));
    0x0002eda8 adds r2, 0x6c                                         |     r2 += 0x6c;
    0x0002edaa add r1, pc                                            |     r1 = 0x5dbb4;
    0x0002edac bl 0x271b0                                            |     zbx_zabbix_log ();
    0x0002edb0 ldr r3, [sp, 0x10]                                    |     r3 = var_10h;
    0x0002edb2 ldrb.w r7, [fp]                                       |     r7 = *(fp);
    0x0002edb6 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0002edb8 str r3, [sp, 0x1c]                                    |     var_1ch = r3;
    0x0002edba b 0x2eb6e                                             |     goto label_12;
                                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2700c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.zabbix_open_log ()                   | void zabbix_open_log (uint32_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                     |     int16_t var_0h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x0002700c push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00027010 cmp r0, 1                             |     
    0x00027012 ldr r5, [pc, 0x160]                   |     
    0x00027014 sub sp, 8                             |     
    0x00027016 ldr r4, [pc, 0x160]                   |     
    0x00027018 ldr.w r8, [pc, 0x160]                 |     
    0x0002701c add r5, pc                            |     r5 = 0x4e196;
    0x0002701e str.w r0, [r5, 0xc80]                 |     __asm ("str.w r0, case.0x3207a.11");
    0x00027022 add r4, pc                            |     r4 = 0x4e1a0;
    0x00027024 add r8, pc                            |     r8 = 0x4e1a4;
    0x00027026 str r1, [r4, 4]                       |     *((r4 + 4)) = r1;
                                                     |     if (r0 == 1) {
    0x00027028 beq 0x270b2                           |         goto label_1;
                                                     |     }
    0x0002702a cmp r0, 2                             |     
    0x0002702c mov r6, r3                            |     r6 = r3;
                                                     |     if (r0 == 2) {
    0x0002702e beq 0x27068                           |         goto label_2;
                                                     |     }
    0x00027030 cmp r0, 0                             |     
    0x00027032 it ne                                 |     
                                                     |     if (r0 != 0) {
    0x00027034 cmpne r0, 3                           |         __asm ("cmpne r0, 3");
                                                     |     }
                                                     |     if (r0 != 0) {
    0x00027036 bne 0x27102                           |         goto label_3;
                                                     |     }
    0x00027038 mov r0, r4                            |     r0 = r4;
    0x0002703a mov r2, r3                            |     r2 = r3;
    0x0002703c movs r1, 0                            |     r1 = 0;
    0x0002703e bl 0x2a23c                            |     r0 = zbx_mutex_create ();
    0x00027042 mov r4, r0                            |     r4 = r0;
    0x00027044 cmp r0, 0                             |     
                                                     |     if (r0 != 0) {
    0x00027046 bne 0x2711c                           |         goto label_4;
                                                     |     }
    0x00027048 ldr r3, [pc, 0x134]                   |     r3 = *(0x27180);
    0x0002704a ldr.w r3, [r8, r3]                    |     r3 = *((r8 + r3));
    0x0002704e ldr r0, [r3]                          |     r0 = *(0x27180);
    0x00027050 blx 0xbcd0                            |     fcn_0000bcd0 ();
    0x00027054 movs r1, 2                            |     r1 = 2;
    0x00027056 movs r0, 1                            |     r0 = 1;
    0x00027058 blx 0xbea0                            |     realloc (r0, r1);
    0x0002705c adds r0, 1                            |     r0++;
    0x0002705e beq 0x270ca                           |     
                                                     |     while (1) {
                                                     | label_0:
    0x00027060 mov r0, r4                            |         r0 = r4;
    0x00027062 add sp, 8                             |         
    0x00027064 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_2:
    0x00027068 mov r0, r2                            |         r0 = r2;
    0x0002706a mov r7, r2                            |         r7 = r2;
    0x0002706c blx 0xc114                            |         r0 = fcn_0000c114 ();
    0x00027070 cmp.w r0, 0x800                       |         
                                                     |         if (r0 >= 0x800) {
    0x00027074 bhs 0x27136                           |             goto label_5;
                                                     |         }
    0x00027076 mov r0, r4                            |         r0 = r4;
    0x00027078 mov r2, r6                            |         r2 = r6;
    0x0002707a movs r1, 0                            |         r1 = 0;
    0x0002707c bl 0x2a23c                            |         r0 = zbx_mutex_create ();
    0x00027080 mov r4, r0                            |         r4 = r0;
    0x00027082 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00027084 bne 0x270fc                           |             
    0x00027086 ldr r1, [pc, 0xfc]                    |             
    0x00027088 mov r0, r7                            |             r0 = r7;
    0x0002708a add r1, pc                            |             r1 = 0x4e214;
    0x0002708c blx 0xc39c                            |             r0 = fcn_0000c39c ();
    0x00027090 mov r8, r0                            |             r8 = r0;
    0x00027092 cmp r0, 0                             |             
                                                     |             if (r0 == 0) {
    0x00027094 beq 0x27150                           |                 goto label_6;
                                                     |             }
    0x00027096 mov.w r2, 0x800                       |             r2 = case.0x3207a.11;
    0x0002709a mov r1, r7                            |             r1 = r7;
    0x0002709c add.w r0, r5, 0x480                   |             r0 = r5 + case.0x3207a.11;
    0x000270a0 bl 0x394f0                            |             zbx_strlcpy ();
    0x000270a4 mov r0, r8                            |             r0 = r8;
    0x000270a6 blx 0xc248                            |             munmap (r0, r1);
    0x000270aa mov r0, r4                            |             r0 = r4;
    0x000270ac add sp, 8                             |             
    0x000270ae pop.w {r4, r5, r6, r7, r8, pc}        |             
                                                     | label_1:
    0x000270b2 ldr r3, [pc, 0xd4]                    |             r3 = *(0x2718a);
    0x000270b4 mov r1, r0                            |             r1 = r0;
    0x000270b6 movs r2, 0x18                         |             r2 = 0x18;
    0x000270b8 movs r4, 0                            |             r4 = 0;
    0x000270ba ldr.w r0, [r8, r3]                    |             r0 = *((r8 + r3));
    0x000270be blx 0xc36c                            |             fcn_0000c36c ();
    0x000270c2 mov r0, r4                            |             r0 = r4;
    0x000270c4 add sp, 8                             |             
    0x000270c6 pop.w {r4, r5, r6, r7, r8, pc}        |             
    0x000270ca blx 0xc15c                            |             r0 = fcn_0000c15c ();
    0x000270ce ldr r6, [r0]                          |             r6 = *(r0);
    0x000270d0 adds r5, 0x80                         |             r5 += 0x80;
    0x000270d2 mov r0, r6                            |             r0 = r6;
    0x000270d4 blx 0xc048                            |             fcn_0000c048 ();
    0x000270d8 ldr r2, [pc, 0xb0]                    |             
    0x000270da mov r3, r6                            |             r3 = r6;
    0x000270dc str r0, [sp]                          |             *(sp) = r0;
    0x000270de mov.w r1, 0x400                       |             r1 = case.0x3207a.11;
    0x000270e2 mov r0, r5                            |             r0 = r5;
    0x000270e4 add r2, pc                            |             r2 = 0x4e274;
    0x000270e6 bl 0x38ea0                            |             zbx_snprintf ();
    0x000270ea ldr r0, [pc, 0xa4]                    |             
    0x000270ec mov r1, r5                            |             r1 = r5;
    0x000270ee add r0, pc                            |             r0 = 0x4e284;
    0x000270f0 bl 0x38c64                            |             zbx_error ();
    0x000270f4 mov r0, r4                            |             r0 = r4;
    0x000270f6 add sp, 8                             |             
    0x000270f8 pop.w {r4, r5, r6, r7, r8, pc}        |             
                                                     |         }
    0x000270fc mov.w r4, -1                          |         r4 = -1;
    0x00027100 b 0x27060                             |         
                                                     |     }
                                                     | label_3:
    0x00027102 ldr r3, [pc, 0x90]                    |     
    0x00027104 mov.w r1, 0x14e                       |     r1 = case.0x3207a.11;
    0x00027108 ldr r0, [pc, 0x8c]                    |     
    0x0002710a mov.w r4, -1                          |     r4 = -1;
    0x0002710e ldr r2, [r6]                          |     r2 = *(r6);
    0x00027110 add r3, pc                            |     r3 = 0x4e2aa;
    0x00027112 add r0, pc                            |     r0 = 0x4e2ae;
    0x00027114 bl 0x35d28                            |     zbx_strdup2 ();
    0x00027118 str r0, [r6]                          |     *(r6) = r0;
    0x0002711a b 0x27060                             |     goto label_0;
                                                     | label_4:
    0x0002711c ldr r3, [pc, 0x7c]                    |     
    0x0002711e mov.w r1, 0x144                       |     r1 = case.0x3207a.11;
    0x00027122 ldr r0, [pc, 0x7c]                    |     
    0x00027124 mov.w r4, -1                          |     r4 = -1;
    0x00027128 ldr r2, [r6]                          |     r2 = *(r6);
    0x0002712a add r3, pc                            |     r3 = 0x4e2ca;
    0x0002712c add r0, pc                            |     r0 = 0x4e2d2;
    0x0002712e bl 0x35d28                            |     zbx_strdup2 ();
    0x00027132 str r0, [r6]                          |     *(r6) = r0;
    0x00027134 b 0x27060                             |     goto label_0;
                                                     | label_5:
    0x00027136 ldr r3, [pc, 0x6c]                    |     
    0x00027138 mov.w r1, 0x130                       |     r1 = case.0x3207a.11;
    0x0002713c ldr r0, [pc, 0x68]                    |     
    0x0002713e mov.w r4, -1                          |     r4 = -1;
    0x00027142 ldr r2, [r6]                          |     r2 = *(r6);
    0x00027144 add r3, pc                            |     r3 = 0x4e2ee;
    0x00027146 add r0, pc                            |     r0 = 0x4e2f2;
    0x00027148 bl 0x35d28                            |     zbx_strdup2 ();
    0x0002714c str r0, [r6]                          |     *(r6) = r0;
    0x0002714e b 0x27060                             |     goto label_0;
                                                     | label_6:
    0x00027150 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x00027154 ldr r0, [r0]                          |     r0 = *(r0);
    0x00027156 ldr r4, [r6]                          |     r4 = *(r6);
    0x00027158 bl 0x26fdc                            |     zbx_strerror ();
    0x0002715c ldr r1, [pc, 0x4c]                    |     
    0x0002715e mov r3, r0                            |     r3 = r0;
    0x00027160 mov r2, r7                            |     r2 = r7;
    0x00027162 mov r0, r4                            |     r0 = r4;
    0x00027164 mov.w r4, -1                          |     r4 = -1;
    0x00027168 add r1, pc                            |     r1 = 0x4e318;
    0x0002716a bl 0x396b0                            |     zbx_dsprintf ()
    0x0002716e str r0, [r6]                          |     *(r6) = r0;
    0x00027170 b 0x27060                             |     goto label_0;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x397dc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.zbx_check_hostname ()            | void zbx_check_hostname (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000397dc push {r3, r4, r5, r6, r7, lr}     |     
    0x000397de mov r7, r1                        |     r7 = r1;
    0x000397e0 ldrb r4, [r0]                     |     r4 = *(r0);
                                                 |     if (r4 == 0) {
    0x000397e2 cbz r4, 0x3981e                   |         goto label_2;
                                                 |     }
    0x000397e4 mov r5, r0                        |     r5 = r0;
    0x000397e6 rsb.w r6, r0, 1                   |     r6 = 1 - r0;
    0x000397ea b 0x397f2                         |     
                                                 |     while (r2 != r0) {
    0x000397ec ldrb r4, [r5, 1]!                 |         r4 = *((r5 += 1));
                                                 |         if (r4 == 0) {
    0x000397f0 cbz r4, 0x39816                   |             goto label_3;
                                                 |         }
    0x000397f2 mov r0, r4                        |         r0 = r4;
    0x000397f4 bl 0x37ae8                        |         r0 = is_hostname_char ();
    0x000397f8 adds r2, r0, 1                    |         r2 = r0 + 1;
    0x000397fa add.w r3, r6, r5                  |         r3 = r6 + r5;
    0x000397fe mov r4, r0                        |         r4 = r0;
    0x00039800 bne 0x397ec                       |         
                                                 |     }
                                                 |     if (r7 == 0) {
    0x00039802 cbz r7, 0x39820                   |         goto label_0;
                                                 |     }
    0x00039804 ldr r1, [pc, 0x54]                |     
    0x00039806 movs r0, 0                        |     r0 = 0;
    0x00039808 ldrb r2, [r5]                     |     r2 = *(r5);
    0x0003980a add r1, pc                        |     r1 = 0x7306a;
    0x0003980c bl 0x396b0                        |     zbx_dsprintf ()
    0x00039810 str r0, [r7]                      |     *(r7) = r0;
    0x00039812 mov r0, r4                        |     r0 = r4;
    0x00039814 pop {r3, r4, r5, r6, r7, pc}      |     
                                                 | label_3:
    0x00039816 cmp r3, 0x80                      |     
                                                 |     if (r3 > 0x80) {
    0x00039818 bgt 0x39842                       |         goto label_4;
                                                 |     }
                                                 |     do {
                                                 | label_1:
    0x0003981a mov r0, r4                        |         r0 = r4;
    0x0003981c pop {r3, r4, r5, r6, r7, pc}      |         
                                                 |         if (r1 == 0) {
                                                 | label_2:
    0x0003981e cbnz r1, 0x39828                  |             
                                                 | label_0:
    0x00039820 mov.w r4, -1                      |             r4 = -1;
    0x00039824 mov r0, r4                        |             r0 = r4;
    0x00039826 pop {r3, r4, r5, r6, r7, pc}      |             
                                                 |         }
    0x00039828 ldr r3, [pc, 0x34]                |         
    0x0003982a mov r2, r4                        |         r2 = r4;
    0x0003982c ldr r0, [pc, 0x34]                |         
    0x0003982e mov.w r1, 0x374                   |         r1 = case.0x3207a.11;
    0x00039832 mov.w r4, -1                      |         r4 = -1;
    0x00039836 add r3, pc                        |         r3 = 0x7309a;
    0x00039838 add r0, pc                        |         r0 = 0x730a0;
    0x0003983a bl 0x35d28                        |         zbx_strdup2 ();
    0x0003983e str r0, [r7]                      |         *(r7) = r0;
    0x00039840 b 0x3981a                         |         
                                                 |     } while (1);
                                                 | label_4:
    0x00039842 cmp r7, 0                         |     
                                                 |     if (r7 == 0) {
    0x00039844 beq 0x39820                       |         goto label_0;
                                                 |     }
    0x00039846 ldr r1, [pc, 0x20]                |     
    0x00039848 mov r0, r4                        |     r0 = r4;
    0x0003984a movs r2, 0x80                     |     r2 = 0x80;
    0x0003984c mov.w r4, -1                      |     r4 = -1;
    0x00039850 add r1, pc                        |     r1 = 0x730be;
    0x00039852 bl 0x396b0                        |     zbx_dsprintf ()
    0x00039856 str r0, [r7]                      |     *(r7) = r0;
    0x00039858 b 0x3981a                         |     goto label_1;
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2b35c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.zbx_dshm_destroy ()                  | void zbx_dshm_destroy (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002b35c push {r3, r4, r5, r6, r7, lr}         |     
    0x0002b35e mov r4, r0                            |     r4 = r0;
    0x0002b360 ldr r3, [pc, 0x8c]                    |     
    0x0002b362 mov r6, r1                            |     r6 = r1;
    0x0002b364 ldr r2, [pc, 0x8c]                    |     r2 = *(0x2b3f4);
    0x0002b366 add r3, pc                            |     r3 = 0x5675a;
    0x0002b368 ldr r7, [r3, r2]                      |     r7 = *(0x5675a);
    0x0002b36a ldr r3, [r7]                          |     r3 = *(0x5675a);
    0x0002b36c cmp r3, 3                             |     
                                                     |     if (r3 > 3) {
    0x0002b36e bgt 0x2b3c0                           |         goto label_1;
                                                     |     }
    0x0002b370 add.w r0, r4, 0xc                     |     r0 = r4 + 0xc;
    0x0002b374 bl 0x2a388                            |     zbx_mutex_destroy ();
    0x0002b378 ldr r0, [r4]                          |     r0 = *(r4);
    0x0002b37a adds r2, r0, 1                        |     r2 = r0 + 1;
    0x0002b37c it eq                                 |     
                                                     |     if (r2 != r0) {
    0x0002b37e moveq r5, 0                           |         r5 = 0;
                                                     |     }
    0x0002b380 bne 0x2b38c                           |     
                                                     |     while (r3 != r0) {
                                                     | label_0:
    0x0002b382 ldr r3, [r7]                          |         r3 = *(r7);
    0x0002b384 cmp r3, 3                             |         
                                                     |         if (r3 > 3) {
    0x0002b386 bgt 0x2b3d4                           |             goto label_2;
                                                     |         }
    0x0002b388 mov r0, r5                            |         r0 = r5;
    0x0002b38a pop {r3, r4, r5, r6, r7, pc}          |         
    0x0002b38c movs r2, 0                            |         r2 = 0;
    0x0002b38e mov r1, r2                            |         r1 = r2;
    0x0002b390 blx 0xbfcc                            |         r0 = open64 ();
    0x0002b394 adds r3, r0, 1                        |         r3 = r0 + 1;
    0x0002b396 mov r5, r0                            |         r5 = r0;
    0x0002b398 ittt ne                               |         
                                                     |         if (r3 == r0) {
    0x0002b39a movne r3, -1                          |             r3 = -1;
                                                     |         }
                                                     |         if (r3 == r0) {
    0x0002b39e movne r5, 0                           |             r5 = 0;
                                                     |         }
                                                     |         if (r3 != r0) {
    0x0002b3a0 str r3, [r4]                          |             *(r4) = r3;
                                                     |         }
    0x0002b3a2 bne 0x2b382                           |         
                                                     |     }
    0x0002b3a4 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x0002b3a8 ldr r0, [r0]                          |     r0 = *(r0);
    0x0002b3aa ldr r4, [r6]                          |     r4 = *(r6);
    0x0002b3ac bl 0x26fdc                            |     zbx_strerror ();
    0x0002b3b0 ldr r1, [pc, 0x44]                    |     
    0x0002b3b2 mov r2, r0                            |     r2 = r0;
    0x0002b3b4 mov r0, r4                            |     r0 = r4;
    0x0002b3b6 add r1, pc                            |     r1 = 0x567b2;
    0x0002b3b8 bl 0x396b0                            |     zbx_dsprintf ()
    0x0002b3bc str r0, [r6]                          |     *(r6) = r0;
    0x0002b3be b 0x2b382                             |     goto label_0;
                                                     | label_1:
    0x0002b3c0 ldr r2, [pc, 0x38]                    |     
    0x0002b3c2 ldr r1, [pc, 0x3c]                    |     
    0x0002b3c4 ldr r3, [r0]                          |     r3 = *(r0);
    0x0002b3c6 movs r0, 4                            |     r0 = 4;
    0x0002b3c8 add r2, pc                            |     r2 = 0x567c8;
    0x0002b3ca adds r2, 0x10                         |     r2 += 0x10;
    0x0002b3cc add r1, pc                            |     r1 = 0x567d2;
    0x0002b3ce bl 0x271b0                            |     zbx_zabbix_log ();
    0x0002b3d0 cdp2 p7, 0xe, c14, c15, c13, 6        |     __asm ("cdp2 p7, 0xe, c14, c15, c13, 6");
                                                     | label_2:
    0x0002b3d4 mov r0, r5                            |     r0 = r5;
    0x0002b3d6 bl 0x3a204                            |     zbx_result_string ();
    0x0002b3da ldr r2, [pc, 0x28]                    |     
    0x0002b3dc mov r3, r0                            |     r3 = r0;
    0x0002b3de ldr r1, [pc, 0x28]                    |     
    0x0002b3e0 movs r0, 4                            |     r0 = 4;
    0x0002b3e2 add r2, pc                            |     r2 = 0x567ec;
    0x0002b3e4 add r1, pc                            |     r1 = 0x567f2;
    0x0002b3e6 adds r2, 0x10                         |     r2 += 0x10;
    0x0002b3e8 bl 0x271b0                            |     zbx_zabbix_log ();
    0x0002b3ec mov r0, r5                            |     r0 = r5;
    0x0002b3ee pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2b540 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.zbx_dshm_realloc ()                              | void zbx_dshm_realloc (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0002b540 ldr r3, [pc, 0x160]                               |     
    0x0002b542 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0002b546 mov r6, r0                                        |     r6 = r0;
    0x0002b548 ldr r5, [pc, 0x15c]                               |     r5 = *(0x2b6a8);
    0x0002b54a sub sp, 8                                         |     
    0x0002b54c add r3, pc                                        |     r3 = 0x56bf4;
    0x0002b54e mov r4, r1                                        |     r4 = r1;
    0x0002b550 mov r8, r2                                        |     r8 = r2;
    0x0002b552 ldr.w sb, [r3, r5]                                |     sb = *(0x56bf4);
    0x0002b556 ldr.w r3, [sb]                                    |     r3 = *(0x56bf4);
    0x0002b55a cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0002b55c bgt 0x2b5cc                                       |         goto label_2;
                                                                 |     }
                                                                 | label_0:
    0x0002b55e ldr r0, [r6]                                      |     r0 = *(r6);
    0x0002b560 adds r4, 7                                        |     r4 += 7;
    0x0002b562 bic r4, r4, 7                                     |     r4 = BIT_MASK (r4, 7);
    0x0002b566 adds r5, r0, 1                                    |     r5 = r0 + 1;
                                                                 |     if (r5 == r0) {
    0x0002b568 beq 0x2b5c8                                       |         goto label_3;
                                                                 |     }
    0x0002b56a movs r2, 0                                        |     r2 = 0;
    0x0002b56c mov r1, r2                                        |     r1 = r2;
    0x0002b56e blx 0xbf0c                                        |     r0 = strcasecmp (r0, r1);
    0x0002b572 mov r7, r0                                        |     r7 = r0;
    0x0002b574 adds r0, r7, 1                                    |     r0 = r7 + 1;
                                                                 |     if (r0 == r7) {
    0x0002b576 beq 0x2b666                                       |         goto label_4;
                                                                 |     }
                                                                 |     do {
    0x0002b578 mov r0, r4                                        |         r0 = r4;
    0x0002b57a bl 0x2b9f8                                        |         r0 = zbx_shm_create ();
    0x0002b57e adds r1, r0, 1                                    |         r1 = r0 + 1;
    0x0002b580 mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r1 == r0) {
    0x0002b582 beq 0x2b60a                                       |             goto label_5;
                                                                 |         }
    0x0002b584 movs r2, 0                                        |         r2 = 0;
    0x0002b586 mov r1, r2                                        |         r1 = r2;
    0x0002b588 blx 0xbf0c                                        |         r0 = strcasecmp (r0, r1);
    0x0002b58c cmp.w r0, -1                                      |         
    0x0002b590 mov sl, r0                                        |         sl = r0;
                                                                 |         if (r0 == -1) {
    0x0002b592 beq 0x2b620                                       |             goto label_6;
                                                                 |         }
    0x0002b594 mov r2, r7                                        |         r2 = r7;
    0x0002b596 ldr r3, [r6, 8]                                   |         r3 = *((r6 + 8));
    0x0002b598 mov r1, r4                                        |         r1 = r4;
    0x0002b59a blx r3                                            |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r1, r2, r3);
    0x0002b59c mov r0, sl                                        |         r0 = sl;
    0x0002b59e blx 0xc218                                        |         r0 = fclose (r0);
    0x0002b5a2 adds r2, r0, 1                                    |         r2 = r0 + 1;
                                                                 |         if (r2 == r0) {
    0x0002b5a4 beq 0x2b64c                                       |             goto label_7;
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x0002b5a6 cbz r7, 0x2b5b2                                   |             
    0x0002b5a8 ldr r0, [r6]                                      |             r0 = *(r6);
    0x0002b5aa bl 0x2ba4c                                        |             r0 = zbx_shm_destroy ();
    0x0002b5ae adds r3, r0, 1                                    |             r3 = r0 + 1;
                                                                 |             if (r3 == r0) {
    0x0002b5b0 beq 0x2b688                                       |                 goto label_8;
                                                                 |             }
                                                                 |         }
    0x0002b5b2 str r5, [r6]                                      |         *(r6) = r5;
    0x0002b5b4 movs r5, 0                                        |         r5 = 0;
    0x0002b5b6 str r4, [r6, 4]                                   |         *((r6 + 4)) = r4;
                                                                 | label_1:
    0x0002b5b8 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x0002b5bc cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x0002b5be bgt 0x2b5e6                                       |             goto label_9;
                                                                 |         }
    0x0002b5c0 mov r0, r5                                        |         r0 = r5;
    0x0002b5c2 add sp, 8                                         |         
    0x0002b5c4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_3:
    0x0002b5c8 movs r7, 0                                        |         r7 = 0;
    0x0002b5ca b 0x2b578                                         |         
                                                                 |     } while (1);
                                                                 | label_2:
    0x0002b5cc ldr r2, [pc, 0xdc]                                |     
    0x0002b5ce movs r3, 0                                        |     r3 = 0;
    0x0002b5d0 str r1, [sp]                                      |     *(sp) = r1;
    0x0002b5d2 ldr r1, [pc, 0xdc]                                |     
    0x0002b5d4 add r2, pc                                        |     r2 = 0x56c84;
    0x0002b5d6 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0002b5d8 adds r2, 0x3c                                     |     r2 += 0x3c;
    0x0002b5da ldr r3, [r0]                                      |     r3 = *(r0);
    0x0002b5dc add r1, pc                                        |     r1 = 0x56c92;
    0x0002b5de movs r0, 4                                        |     r0 = 4;
    0x0002b5e0 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0002b5e4 b 0x2b55e                                         |     goto label_0;
                                                                 | label_9:
    0x0002b5e6 mov r0, r5                                        |     r0 = r5;
    0x0002b5e8 bl 0x3a204                                        |     zbx_result_string ();
    0x0002b5ec ldr r2, [pc, 0xc4]                                |     
    0x0002b5ee mov r3, r0                                        |     r3 = r0;
    0x0002b5f0 ldr r4, [r6]                                      |     r4 = *(r6);
    0x0002b5f2 movs r0, 4                                        |     r0 = 4;
    0x0002b5f4 ldr r1, [pc, 0xc0]                                |     
    0x0002b5f6 add r2, pc                                        |     r2 = 0x56cae;
    0x0002b5f8 adds r2, 0x3c                                     |     r2 += 0x3c;
    0x0002b5fa str r4, [sp]                                      |     *(sp) = r4;
    0x0002b5fc add r1, pc                                        |     r1 = 0x56cb8;
    0x0002b5fe bl 0x271b0                                        |     zbx_zabbix_log ();
    0x0002b602 mov r0, r5                                        |     r0 = r5;
    0x0002b604 add sp, 8                                         |     
    0x0002b606 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_5:
    0x0002b60a ldr r3, [pc, 0xb0]                                |     
    0x0002b60c movs r2, 0                                        |     r2 = 0;
    0x0002b60e ldr r0, [pc, 0xb0]                                |     
    0x0002b610 movs r1, 0xea                                     |     r1 = 0xea;
    0x0002b612 add r3, pc                                        |     r3 = 0x56cd4;
    0x0002b614 add r0, pc                                        |     r0 = 0x56cda;
    0x0002b616 bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002b61a str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0002b61e b 0x2b5b8                                         |     goto label_1;
                                                                 |     if (r7 != 0) {
                                                                 | label_6:
    0x0002b620 cbz r7, 0x2b628                                   |         
    0x0002b622 mov r0, r7                                        |         r0 = r7;
    0x0002b624 blx 0xc218                                        |         r0 = fclose (r0);
                                                                 |     }
    0x0002b628 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002b62c ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002b62e mov.w r5, -1                                      |     r5 = -1;
    0x0002b632 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x0002b636 bl 0x26fdc                                        |     zbx_strerror ();
    0x0002b63a ldr r1, [pc, 0x88]                                |     
    0x0002b63c mov r2, r0                                        |     r2 = r0;
    0x0002b63e mov r0, r4                                        |     r0 = r4;
    0x0002b640 add r1, pc                                        |     r1 = 0x56d0a;
    0x0002b642 bl 0x396b0                                        |     zbx_dsprintf ()
    0x0002b646 str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0002b64a b 0x2b5b8                                         |     goto label_1;
                                                                 | label_7:
    0x0002b64c ldr r3, [pc, 0x78]                                |     
    0x0002b64e mov r5, r0                                        |     r5 = r0;
    0x0002b650 ldr r0, [pc, 0x78]                                |     
    0x0002b652 movs r1, 0xfc                                     |     r1 = 0xfc;
    0x0002b654 ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x0002b658 add r3, pc                                        |     r3 = 0x56d24;
    0x0002b65a add r0, pc                                        |     r0 = 0x56d2a;
    0x0002b65c bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002b660 str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0002b664 b 0x2b5b8                                         |     goto label_1;
                                                                 | label_4:
    0x0002b666 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x0002b66a ldr r0, [r0]                                      |     r0 = *(r0);
    0x0002b66c mov r5, r7                                        |     r5 = r7;
    0x0002b66e ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x0002b672 bl 0x26fdc                                        |     zbx_strerror ();
    0x0002b676 ldr r1, [pc, 0x58]                                |     
    0x0002b678 mov r2, r0                                        |     r2 = r0;
    0x0002b67a mov r0, r4                                        |     r0 = r4;
    0x0002b67c add r1, pc                                        |     r1 = 0x56d52;
    0x0002b67e bl 0x396b0                                        |     zbx_dsprintf ()
    0x0002b680 invalid                                           |     
    0x0002b684 movs r0, r0                                       |     
    0x0002b686 b 0x2b5b8                                         |     goto label_1;
                                                                 | label_8:
    0x0002b688 ldr r3, [pc, 0x48]                                |     
    0x0002b68a mov r5, r0                                        |     r5 = r0;
    0x0002b68c ldr r0, [pc, 0x48]                                |     
    0x0002b68e movw r1, 0x103                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0002b692 ldr.w r2, [r8]                                    |     r2 = *(r8);
    0x0002b696 add r3, pc                                        |     r3 = 0x56d6e;
    0x0002b698 add r0, pc                                        |     r0 = 0x56d74;
    0x0002b69a bl 0x35d28                                        |     zbx_strdup2 ();
    0x0002b69e str.w r0, [r8]                                    |     __asm ("str.w r0, [r8]");
    0x0002b6a0 movs r0, r0                                       |     
    0x0002b6a2 b 0x2b5b8                                         |     goto label_1;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2b42c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_dshm_validate_ref ()                 | void zbx_dshm_validate_ref (uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                         |     int16_t var_0h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
    0x0002b42c ldr r3, [pc, 0xf0]                        |     
    0x0002b42e push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0002b430 rors r0, r6                               |     __asm ("rors r0, r6");
    0x0002b432 mov r7, r2                                |     r7 = r2;
    0x0002b434 ldr r2, [pc, 0xec]                        |     r2 = *(0x2b524);
    0x0002b436 mov r6, r0                                |     r6 = r0;
    0x0002b438 add r3, pc                                |     r3 = 0x5695c;
    0x0002b43a mov r5, r1                                |     r5 = r1;
    0x0002b43c ldr r0, [r0]                              |     r0 = *(r0);
    0x0002b43e sub sp, 8                                 |     
    0x0002b440 ldr.w r8, [r3, r2]                        |     r8 = *(0x5695c);
    0x0002b444 ldr r1, [r1]                              |     r1 = *(r1);
    0x0002b446 ldr.w r3, [r8]                            |     r3 = *(0x5695c);
    0x0002b44a cmp r3, 4                                 |     
                                                         |     if (r3 > 4) {
    0x0002b44c bgt 0x2b4bc                               |         goto label_3;
                                                         |     }
    0x0002b44e cmp r1, r0                                |     
                                                         |     if (r1 == r0) {
    0x0002b450 beq 0x2b4b2                               |         goto label_4;
                                                         |     }
    0x0002b452 adds r1, 1                                |     r1++;
                                                         |     if (r1 != 1) {
    0x0002b454 beq 0x2b46e                               |         
                                                         | label_0:
    0x0002b456 ldr r0, [r5, 4]                           |         r0 = *((r5 + 4));
    0x0002b458 blx 0xc218                                |         r0 = fclose (r0);
    0x0002b45c adds r1, r0, 1                            |         r1 = r0 + 1;
    0x0002b45e mov r4, r0                                |         r4 = r0;
                                                         |         if (r1 == r0) {
    0x0002b460 beq 0x2b504                               |             goto label_5;
                                                         |         }
    0x0002b462 ldr r0, [r6]                              |         r0 = *(r6);
    0x0002b464 mov.w r3, -1                              |         r3 = -1;
    0x0002b468 movs r2, 0                                |         r2 = 0;
    0x0002b46a strd r3, r2, [r5]                         |         __asm ("strd r3, r2, [r5]");
                                                         |     }
                                                         | label_1:
    0x0002b46e movs r2, 0                                |     r2 = 0;
    0x0002b470 mov r1, r2                                |     r1 = r2;
    0x0002b472 blx 0xbf0c                                |     r0 = strcasecmp (r0, r1);
    0x0002b476 adds r3, r0, 1                            |     r3 = r0 + 1;
    0x0002b478 str r0, [r5, 4]                           |     *((r5 + 4)) = r0;
                                                         |     if (r3 == r0) {
    0x0002b47a beq 0x2b4e2                               |         goto label_6;
                                                         |     }
    0x0002b47c ldr r3, [r6]                              |     r3 = *(r6);
    0x0002b47e movs r4, 0                                |     r4 = 0;
    0x0002b480 str r3, [r5]                              |     *(r5) = r3;
                                                         |     do {
                                                         | label_2:
    0x0002b482 ldr.w r3, [r8]                            |         r3 = *(r8);
    0x0002b486 cmp r3, 4                                 |         
                                                         |         if (r3 <= 4) {
    0x0002b488 bgt 0x2b492                               |             
    0x0002b48a mov r0, r4                                |             r0 = r4;
    0x0002b48c add sp, 8                                 |             
    0x0002b48e pop.w {r4, r5, r6, r7, r8, pc}            |             
    0x0002b490 strh r0, [r6, 0xe]                        |             *((r6 + 0xe)) = r0;
                                                         |         }
    0x0002b492 mov r0, r4                                |         r0 = r4;
    0x0002b494 bl 0x3a204                                |         zbx_result_string ();
    0x0002b498 ldr r2, [pc, 0x8c]                        |         
    0x0002b49a mov r3, r0                                |         r3 = r0;
    0x0002b49c ldr r1, [pc, 0x8c]                        |         
    0x0002b49e movs r0, 5                                |         r0 = 5;
    0x0002b4a0 add r2, pc                                |         r2 = 0x569cc;
    0x0002b4a2 add r1, pc                                |         r1 = 0x569d2;
    0x0002b4a4 adds r2, 0x24                             |         r2 += 0x24;
    0x0002b4a6 bl 0x271b0                                |         zbx_zabbix_log ();
    0x0002b4aa mov r0, r4                                |         r0 = r4;
    0x0002b4ac add sp, 8                                 |         
    0x0002b4ae pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_4:
    0x0002b4b2 movs r4, 0                                |         r4 = 0;
    0x0002b4b4 mov r0, r4                                |         r0 = r4;
    0x0002b4b6 add sp, 8                                 |         
    0x0002b4b8 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_3:
    0x0002b4bc ldr r2, [pc, 0x70]                        |         
    0x0002b4be mov r3, r0                                |         r3 = r0;
    0x0002b4c0 str r1, [sp]                              |         *(sp) = r1;
    0x0002b4c2 movs r0, 5                                |         r0 = 5;
    0x0002b4c4 ldr r1, [pc, 0x6c]                        |         
    0x0002b4c6 add r2, pc                                |         r2 = 0x569fa;
    0x0002b4c8 adds r2, 0x24                             |         r2 += 0x24;
    0x0002b4ca add r1, pc                                |         r1 = 0x56a02;
    0x0002b4cc bl 0x271b0                                |         zbx_zabbix_log ();
    0x0002b4d0 ldr r1, [r5]                              |         r1 = *(r5);
    0x0002b4d2 ldr r0, [r6]                              |         r0 = *(r6);
    0x0002b4d4 cmp r0, r1                                |         
    0x0002b4d6 it eq                                     |         
                                                         |         if (r0 != r1) {
    0x0002b4d8 moveq r4, 0                               |             r4 = 0;
                                                         |         }
    0x0002b4da beq 0x2b482                               |         
                                                         |     } while (r0 == r1);
    0x0002b4dc adds r1, 1                                |     r1++;
                                                         |     if (r1 != 1) {
    0x0002b4de bne 0x2b456                               |         goto label_0;
                                                         |     }
    0x0002b4e0 b 0x2b46e                                 |     goto label_1;
                                                         | label_6:
    0x0002b4e2 mov r4, r0                                |     r4 = r0;
    0x0002b4e4 ldr r6, [r7]                              |     r6 = *(r7);
    0x0002b4e6 blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x0002b4ea ldr r0, [r0]                              |     r0 = *(r0);
    0x0002b4ec bl 0x26fdc                                |     zbx_strerror ();
    0x0002b4f0 ldr r1, [pc, 0x44]                        |     
    0x0002b4f2 mov r2, r0                                |     r2 = r0;
    0x0002b4f4 mov r0, r6                                |     r0 = r6;
    0x0002b4f6 add r1, pc                                |     r1 = 0x56a32;
    0x0002b4f8 bl 0x396b0                                |     zbx_dsprintf ()
    0x0002b4fc movs r3, 0                                |     r3 = 0;
    0x0002b4fe str r0, [r7]                              |     *(r7) = r0;
    0x0002b500 str r3, [r5, 4]                           |     *((r5 + 4)) = r3;
    0x0002b502 b 0x2b482                                 |     goto label_2;
                                                         | label_5:
    0x0002b504 blx 0xc15c                                |     r0 = fcn_0000c15c ();
    0x0002b508 ldr r0, [r0]                              |     r0 = *(r0);
    0x0002b50a ldr r5, [r7]                              |     r5 = *(r7);
    0x0002b50c bl 0x26fdc                                |     zbx_strerror ();
    0x0002b510 ldr r1, [pc, 0x28]                        |     
    0x0002b512 mov r2, r0                                |     r2 = r0;
    0x0002b514 mov r0, r5                                |     r0 = r5;
    0x0002b516 add r1, pc                                |     r1 = 0x56a56;
    0x0002b518 bl 0x396b0                                |     zbx_dsprintf ()
    0x0002b51c str r0, [r7]                              |     *(r7) = r0;
    0x0002b51e b 0x2b482                                 |     goto label_2;
                                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x17fa4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.zbx_execute_threaded_metric ()                   | void zbx_execute_threaded_metric (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_81ch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h_2;
                                                                 |     char * s1;
                                                                 |     int16_t var_1ch_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00017fa4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00017fa8 mov r7, r0                                        |     r7 = r0;
    0x00017faa ldr r6, [pc, 0x38c]                               |     
    0x00017fac mov sl, r2                                        |     sl = r2;
    0x00017fae ldr r5, [pc, 0x38c]                               |     r5 = *(0x1833e);
    0x00017fb0 add r6, pc                                        |     r6 = 0x302ee;
    0x00017fb2 vpush {d8, d9}                                    |     __asm ("vpush {d8, d9}");
    0x00017fb6 ldr r4, [pc, 0x388]                               |     
    0x00017fb8 subw sp, sp, 0x824                                |     __asm ("subw sp, sp, case.0x3207a.11");
    0x00017fbc ldr r5, [r6, r5]                                  |     
    0x00017fbe ldr r3, [pc, 0x384]                               |     r3 = *(0x18346);
    0x00017fc0 add r4, pc                                        |     r4 = 0x30306;
    0x00017fc2 ldr r5, [r5]                                      |     r5 = *(0x302ee);
    0x00017fc4 str.w r5, [sp, 0x81c]                             |     __asm ("str.w r5, [var_81ch]");
    0x00017fc8 mov.w r5, 0                                       |     r5 = 0;
    0x00017fcc mov r5, r1                                        |     r5 = r1;
    0x00017fce ldr r3, [r4, r3]                                  |     
    0x00017fd0 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00017fd2 ldr r3, [r3]                                      |     r3 = *(0x30306);
    0x00017fd4 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00017fd6 bgt.w 0x1812c                                     |         goto label_13;
                                                                 |     }
    0x00017fda add.w sb, sp, 0x14                                |     sb += s1;
    0x00017fde mov r0, sb                                        |     r0 = sb;
    0x00017fe0 blx 0xc260                                        |     strtok (r0, r1);
    0x00017fe4 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 == 1) {
    0x00017fe6 beq.w 0x1814e                                     |         goto label_14;
                                                                 |     }
                                                                 | label_1:
    0x00017fea bl 0x2a3d4                                        |     r0 = zbx_fork ();
    0x00017fee cmp.w r0, -1                                      |     
    0x00017ff2 mov r8, r0                                        |     r8 = r0;
                                                                 |     if (r0 == -1) {
    0x00017ff4 beq.w 0x18228                                     |         goto label_15;
                                                                 |     }
    0x00017ff8 ldr r0, [pc, 0x34c]                               |     
    0x00017ffa mov.w r3, 0x800                                   |     r3 = case.0x3207a.11;
    0x00017ffe movs r2, 0                                        |     r2 = 0;
    0x00018000 movw r1, 0x70b                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00018004 add r0, pc                                        |     r0 = 0x30350;
    0x00018006 bl 0x35c28                                        |     r0 = zbx_malloc2 ();
    0x0001800a mov r6, r0                                        |     r6 = r0;
    0x0001800c cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x00018010 beq.w 0x18414                                     |         goto label_16;
                                                                 |     }
    0x00018014 ldr.w r0, [sb, 4]                                 |     r0 = *((sb + 4));
    0x00018018 movs r5, 0                                        |     r5 = 0;
    0x0001801a blx 0xc47c                                        |     fcn_0000c47c ();
    0x0001801e ldr r3, [pc, 0x32c]                               |     r3 = *(0x1834e);
    0x00018020 add r7, sp, 0x1c                                  |     r7 += var_1ch_2;
    0x00018022 ldr.w fp, [pc, 0x32c]                             |     
    0x00018026 vldr s16, [pc, 0x30c]                             |     __asm ("vldr s16, case.0x3207a.11");
    0x0001802a ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x0001802c vmov.f64 d9, 1.500000e+00                         |     __asm ("vmov.f64 d9, 1");
    0x00018030 add fp, pc                                        |     fp = 0x30386;
    0x00018032 ldr r0, [r3]                                      |     r0 = *(0x1834e);
    0x00018034 bl 0x37e00                                        |     zbx_alarm_on ();
    0x00018038 b 0x1804a                                         |     
                                                                 |     while (r3 > r4) {
                                                                 | label_0:
    0x0001803a adds r0, r6, r5                                   |         r0 = r6 + r5;
    0x0001803c mov r2, r4                                        |         r2 = r4;
    0x0001803e mov r1, r7                                        |         r1 = r7;
    0x00018040 add r5, r4                                        |         r5 += r4;
    0x00018042 blx 0xbd78                                        |         fcn_0000bd78 ();
    0x00018046 movs r3, 0                                        |         r3 = 0;
    0x00018048 strb r3, [r6, r5]                                 |         *((r6 + r5)) = r3;
    0x0001804a ldr.w r0, [sb]                                    |         r0 = *(sb);
    0x0001804e mov.w r2, 0x800                                   |         r2 = case.0x3207a.11;
    0x00018052 mov r1, r7                                        |         r1 = r7;
    0x00018054 blx 0xbcac                                        |         r0 = fcn_0000bcac ();
    0x00018058 mov r4, r0                                        |         r4 = r0;
                                                                 |         if (r0 == 0) {
    0x0001805a cbz r0, 0x180c8                                   |             goto label_4;
                                                                 |         }
    0x0001805c bl 0x37e28                                        |         r0 = zbx_alarm_timed_out ();
                                                                 |         if (r0 == 0) {
    0x00018060 cbz r0, 0x1809c                                   |             goto label_17;
                                                                 |         }
    0x00018062 adds r0, r4, 1                                    |         r0 = r4 + 1;
                                                                 |         if (r0 == r4) {
    0x00018064 beq.w 0x181c6                                     |             goto label_18;
                                                                 |         }
    0x00018068 vmov r3, s16                                      |         __asm ("vmov r3, s16");
    0x0001806c subs r3, r3, r5                                   |         r3 -= r5;
    0x0001806e cmp r3, r4                                        |         
    0x00018070 bgt 0x1803a                                       |         
                                                                 |     }
                                                                 |     do {
    0x00018072 vcvt.f64.u32 d7, s16                              |         __asm ("vcvt.f64.u32 d7, s16");
    0x00018076 vmul.f64 d7, d7, d9                               |         __asm ("vmul.f64 d7, d7, d9");
    0x0001807a vcvt.u32.f64 s16, d7                              |         __asm ("vcvt.u32.f64 s16, d7");
    0x0001807e vmov r3, s16                                      |         __asm ("vmov r3, s16");
    0x00018082 subs r3, r3, r5                                   |         r3 -= r5;
    0x00018084 cmp r3, r4                                        |         
    0x00018086 ble 0x18072                                       |         
                                                                 |     } while (r3 <= r4);
    0x00018088 mov r2, r6                                        |     r2 = r6;
    0x0001808a vmov r3, s16                                      |     __asm ("vmov r3, s16");
    0x0001808e movw r1, 0x73d                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00018092 mov r0, fp                                        |     r0 = fp;
    0x00018094 bl 0x35cb8                                        |     r0 = zbx_realloc2 ();
    0x00018098 mov r6, r0                                        |     r6 = r0;
    0x0001809a b 0x1803a                                         |     goto label_0;
                                                                 | label_17:
    0x0001809c ldr.w r3, [sl, 0x28]                              |     r3 = *((sl + 0x28));
    0x000180a0 mov r2, r0                                        |     r2 = r0;
    0x000180a2 ldr r0, [pc, 0x2b0]                               |     
    0x000180a4 movw r1, 0x72a                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000180a8 movs r4, 1                                        |     r4 = 1;
    0x000180aa orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000180ae str.w r3, [sl, 0x28]                              |     __asm ("str.w r3, [sl, 0x28]");
    0x000180b2 add r0, pc                                        |     r0 = 0x3040c;
    0x000180b4 ldr r3, [pc, 0x2a0]                               |     
    0x000180b6 add r3, pc                                        |     r3 = 0x30412;
    0x000180b8 bl 0x35d28                                        |     zbx_strdup2 ();
    0x000180bc movs r1, 9                                        |     r1 = 9;
    0x000180be str.w r0, [sl, 0x20]                              |     __asm ("str.w r0, [sl, 0x20]");
    0x000180c2 mov r0, r8                                        |     r0 = r8;
    0x000180c4 blx 0xc0c8                                        |     r0 = exit (r0);
                                                                 | label_4:
    0x000180c8 bl 0x37e10                                        |     zbx_alarm_off ();
    0x000180cc ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x000180d0 add r5, sp, 0x10                                  |     r5 += var_10h_2;
    0x000180d2 blx 0xc47c                                        |     fcn_0000c47c ();
    0x000180d6 b 0x180e2                                         |     
                                                                 |     while (r0 == 1) {
    0x000180d8 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x000180dc ldr r0, [r0]                                      |         r0 = *(r0);
    0x000180de cmp r0, 4                                         |         
                                                                 |         if (r0 != 4) {
    0x000180e0 bne 0x181a6                                       |             goto label_19;
                                                                 |         }
    0x000180e2 movs r2, 0                                        |         r2 = 0;
    0x000180e4 mov r1, r5                                        |         r1 = r5;
    0x000180e6 mov r0, r8                                        |         r0 = r8;
    0x000180e8 blx 0xbfa8                                        |         fread (r0, r1, r2, r3);
    0x000180ec adds r0, 1                                        |         r0++;
    0x000180ee beq 0x180d8                                       |         
                                                                 |     }
    0x000180f0 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000180f2 beq.w 0x181fe                                     |         goto label_20;
                                                                 |     }
                                                                 |     if (r6 != 0) {
                                                                 | label_3:
    0x000180f6 cbz r6, 0x180fe                                   |         
                                                                 | label_7:
    0x000180f8 mov r0, r6                                        |         r0 = r6;
    0x000180fa blx 0xbd14                                        |         gai_strerror ();
                                                                 |     }
                                                                 | label_6:
    0x000180fe ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00018100 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00018102 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x00018104 bgt 0x1817e                                       |         goto label_21;
                                                                 |     }
                                                                 | label_2:
    0x00018106 ldr r2, [pc, 0x254]                               |     
    0x00018108 ldr r3, [pc, 0x230]                               |     r3 = *(0x1833c);
    0x0001810a add r2, pc                                        |     r2 = 0x3046c;
    0x0001810c ldr r3, [r2, r3]                                  |     r3 = *(0x3046c);
    0x0001810e ldr r2, [r3]                                      |     r2 = *(0x3046c);
    0x00018110 ldr.w r3, [sp, 0x81c]                             |     r3 = var_81ch;
    0x00018114 eors r2, r3                                       |     r2 ^= r3;
    0x00018116 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x0001811a bne.w 0x184c8                                     |         goto label_22;
                                                                 |     }
    0x0001811e mov r0, r4                                        |     r0 = r4;
    0x00018120 addw sp, sp, 0x824                                |     __asm ("addw sp, var_0h");
    0x00018124 vpop {d8, d9}                                     |     __asm ("vpop {d8, d9}");
    0x00018128 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_13:
    0x0001812c ldr r2, [pc, 0x230]                               |     
    0x0001812e movs r0, 4                                        |     r0 = 4;
    0x00018130 ldr r3, [r1]                                      |     r3 = *(r1);
    0x00018132 add.w sb, sp, 0x14                                |     sb += s1;
    0x00018136 ldr r1, [pc, 0x22c]                               |     
    0x00018138 add r2, pc                                        |     r2 = 0x3049c;
    0x0001813a adds r2, 0x54                                     |     r2 += 0x54;
    0x0001813c add r1, pc                                        |     r1 = 0x304a6;
    0x0001813e bl 0x271b0                                        |     zbx_zabbix_log ();
    0x00018142 mov r0, sb                                        |     r0 = sb;
    0x00018144 blx 0xc260                                        |     strtok (r0, r1);
    0x00018148 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x0001814a bne.w 0x17fea                                     |         goto label_1;
                                                                 |     }
                                                                 | label_14:
    0x0001814e ldr.w r3, [sl, 0x28]                              |     r3 = *((sl + 0x28));
    0x00018152 movs r4, 1                                        |     r4 = 1;
    0x00018154 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x00018158 str.w r3, [sl, 0x28]                              |     __asm ("str.w r3, [sl, 0x28]");
    0x0001815c blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x00018160 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00018162 bl 0x275f8                                        |     strerror_from_system ();
    0x00018166 ldr r1, [pc, 0x200]                               |     
    0x00018168 mov r2, r0                                        |     r2 = r0;
    0x0001816a movs r0, 0                                        |     r0 = 0;
    0x0001816c add r1, pc                                        |     r1 = 0x304da;
    0x0001816e bl 0x396b0                                        |     zbx_dsprintf ()
    0x00018172 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00018174 str.w r0, [sl, 0x20]                              |     __asm ("str.w r0, [sl, 0x20]");
    0x00018178 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0001817a cmp r3, 3                                         |     
                                                                 |     if (r3 <= 3) {
    0x0001817c ble 0x18106                                       |         goto label_2;
                                                                 |     }
                                                                 | label_21:
    0x0001817e mov r0, r4                                        |     r0 = r4;
    0x00018180 bl 0x3a1e0                                        |     zbx_sysinfo_ret_string ();
    0x00018184 ldr.w r2, [sl, 0x28]                              |     r2 = *((sl + 0x28));
    0x00018188 mov r3, r0                                        |     r3 = r0;
    0x0001818a lsls r2, r2, 0x1a                                 |     r2 <<= 0x1a;
                                                                 |     if (r2 < r2) {
    0x0001818c bmi 0x181f8                                       |         goto label_23;
                                                                 |     }
    0x0001818e ldr r0, [pc, 0x1dc]                               |     
    0x00018190 add r0, pc                                        |     r0 = 0x30502;
                                                                 | label_5:
    0x00018192 ldr r2, [pc, 0x1dc]                               |     
    0x00018194 ldr r1, [pc, 0x1dc]                               |     
    0x00018196 str r0, [sp]                                      |     *(sp) = r0;
    0x00018198 movs r0, 4                                        |     r0 = 4;
    0x0001819a add r2, pc                                        |     r2 = 0x30510;
    0x0001819c add r1, pc                                        |     r1 = 0x30514;
    0x0001819e adds r2, 0x54                                     |     r2 += 0x54;
    0x000181a0 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000181a4 b 0x18106                                         |     goto label_2;
                                                                 | label_19:
    0x000181a6 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000181a8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000181aa cmp r3, 1                                         |     
    0x000181ac it le                                             |     
                                                                 |     if (r3 <= 1) {
    0x000181ae movle r4, 1                                       |         r4 = 1;
                                                                 |         goto label_24;
                                                                 |     }
                                                                 |     if (r3 <= 1) {
                                                                 | label_24:
    0x000181b0 ble 0x180f6                                       |         goto label_3;
                                                                 |     }
    0x000181b2 bl 0x26fdc                                        |     zbx_strerror ();
    0x000181b6 ldr r1, [pc, 0x1c0]                               |     
    0x000181b8 mov r2, r0                                        |     r2 = r0;
    0x000181ba movs r0, 2                                        |     r0 = 2;
    0x000181bc movs r4, 1                                        |     r4 = 1;
    0x000181be add r1, pc                                        |     r1 = 0x3053c;
    0x000181c0 bl 0x271b0                                        |     zbx_zabbix_log ();
    0x000181c4 b 0x180f6                                         |     goto label_3;
                                                                 | label_18:
    0x000181c6 ldr.w r3, [sl, 0x28]                              |     r3 = *((sl + 0x28));
    0x000181ca movs r4, 1                                        |     r4 = 1;
    0x000181cc orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000181d0 str.w r3, [sl, 0x28]                              |     __asm ("str.w r3, [sl, 0x28]");
    0x000181d4 blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000181d8 ldr r0, [r0]                                      |     r0 = *(r0);
    0x000181da bl 0x26fdc                                        |     zbx_strerror ();
    0x000181de ldr r1, [pc, 0x19c]                               |     
    0x000181e0 mov r2, r0                                        |     r2 = r0;
    0x000181e2 movs r0, 0                                        |     r0 = 0;
    0x000181e4 add r1, pc                                        |     r1 = 0x30566;
    0x000181e6 bl 0x396b0                                        |     zbx_dsprintf ()
    0x000181ea movs r1, 9                                        |     r1 = 9;
    0x000181ec str.w r0, [sl, 0x20]                              |     __asm ("str.w r0, [sl, 0x20]");
    0x000181f0 mov r0, r8                                        |     r0 = r8;
    0x000181f2 blx 0xc0c8                                        |     exit (r0);
    0x000181f6 b 0x180c8                                         |     goto label_4;
                                                                 | label_23:
    0x000181f8 ldr.w r0, [sl, 0x20]                              |     r0 = *((sl + 0x20));
    0x000181fc b 0x18192                                         |     goto label_5;
                                                                 | label_20:
    0x000181fe ldr r2, [r5]                                      |     r2 = *(r5);
    0x00018200 lsls r1, r2, 0x19                                 |     r1 = r2 << 0x19;
                                                                 |     if (r1 != r2) {
    0x00018202 bne 0x182d8                                       |         goto label_25;
                                                                 |     }
    0x00018204 tst.w r2, 0xff00                                  |     
                                                                 |     if ((r2 & 0xff00) != 0) {
    0x00018208 beq 0x18262                                       |         
    0x0001820a ldr.w r3, [sl, 0x28]                              |         r3 = *((sl + 0x28));
    0x0001820e mov r0, r4                                        |         r0 = r4;
    0x00018210 ldr r1, [pc, 0x16c]                               |         
    0x00018212 movs r4, 1                                        |         r4 = 1;
    0x00018214 orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00018218 add r1, pc                                        |         r1 = 0x3059c;
    0x0001821a str.w r3, [sl, 0x28]                              |         __asm ("str.w r3, [sl, 0x28]");
    0x0001821e bl 0x396b0                                        |         zbx_dsprintf ()
    0x00018222 str.w r0, [sl, 0x20]                              |         __asm ("str.w r0, [sl, 0x20]");
    0x00018226 b 0x180f6                                         |         goto label_3;
                                                                 | label_15:
    0x00018228 ldr.w r0, [sb]                                    |         r0 = *(sb);
    0x0001822c movs r4, 1                                        |         r4 = 1;
    0x0001822e blx 0xc47c                                        |         fcn_0000c47c ();
    0x00018232 ldr.w r0, [sb, 4]                                 |         r0 = *((sb + 4));
    0x00018236 blx 0xc47c                                        |         fcn_0000c47c ();
    0x0001823a ldr.w r3, [sl, 0x28]                              |         r3 = *((sl + 0x28));
    0x0001823e orr r3, r3, 0x20                                  |         r3 |= 0x20;
    0x00018242 str.w r3, [sl, 0x28]                              |         __asm ("str.w r3, [sl, 0x28]");
    0x00018246 blx 0xc15c                                        |         r0 = fcn_0000c15c ();
    0x0001824a ldr r0, [r0]                                      |         r0 = *(r0);
    0x0001824c bl 0x275f8                                        |         strerror_from_system ();
    0x00018250 ldr r1, [pc, 0x130]                               |         
    0x00018252 mov r2, r0                                        |         r2 = r0;
    0x00018254 movs r0, 0                                        |         r0 = 0;
    0x00018256 add r1, pc                                        |         r1 = 0x305de;
    0x00018258 bl 0x396b0                                        |         zbx_dsprintf ()
    0x0001825c str.w r0, [sl, 0x20]                              |         __asm ("str.w r0, [sl, 0x20]");
    0x00018260 b 0x180fe                                         |         goto label_6;
                                                                 |     }
    0x00018262 ldrb r7, [r6, 4]                                  |     r7 = *((r6 + 4));
    0x00018264 mov r5, r6                                        |     r5 = r6;
    0x00018266 ldr r4, [r5], 5                                   |     r4 = *(r5);
                                                                 |     r5 += 5;
    0x0001826a cmp r7, 0x6d                                      |     
                                                                 |     if (r7 == 0x6d) {
    0x0001826c beq 0x182fe                                       |         goto label_26;
                                                                 |     }
    0x0001826e ldr r1, [pc, 0x118]                               |     
    0x00018270 mov r0, r5                                        |     r0 = r5;
    0x00018272 add r1, pc                                        |     r1 = 0x30600;
    0x00018274 blx 0xbc58                                        |     r0 = fcn_0000bc58 ();
    0x00018278 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0001827a beq 0x182fe                                       |         goto label_26;
                                                                 |     }
    0x0001827c subs r7, 0x64                                     |     r7 -= 0x64;
    0x0001827e cmp r7, 0x11                                      |     
                                                                 |     if (r7 > 0x11) {
    0x00018280 bhi.w 0x180f6                                     |         goto label_3;
                                                                 |     }
    0x00018284 adr r3, 8                                         |     r3 = 8;
    0x00018286 ldr.w r7, [r3, r7, lsl 2]                         |     offset_0 = r7 << 2;
                                                                 |     r7 = *((r3 + offset_0));
    0x0001828a add r3, r7                                        |     r3 += r7;
    0x0001828c bx r3                                             |     return uint32_t (*r3)() ();
                                                                 | label_25:
    0x000182d8 ldr.w r3, [sl, 0x28]                              |     r3 = *((sl + 0x28));
    0x000182dc mov r0, r4                                        |     r0 = r4;
    0x000182de ldr r1, [pc, 0xac]                                |     
    0x000182e0 movs r4, 1                                        |     r4 = 1;
    0x000182e2 orr r3, r3, 0x20                                  |     r3 |= 0x20;
    0x000182e4 lsls r0, r4, 0xc                                  |     r0 = r4 << 0xc;
    0x000182e6 add r1, pc                                        |     r1 = 0x30678;
    0x000182e8 str.w r3, [sl, 0x28]                              |     __asm ("str.w r3, [sl, 0x28]");
    0x000182ec bl 0x396b0                                        |     zbx_dsprintf ()
    0x000182f0 movs r1, 9                                        |     r1 = 9;
    0x000182f2 str.w r0, [sl, 0x20]                              |     __asm ("str.w r0, [sl, 0x20]");
    0x000182f4 movs r0, r4                                       |     r0 = r4;
    0x000182f6 mov r0, r8                                        |     r0 = r8;
    0x000182f8 blx 0xc0c8                                        |     exit (r0);
    0x000182fc b 0x180f6                                         |     goto label_3;
                                                                 | label_26:
    0x000182fe ldr.w r2, [sl, 0x28]                              |     r2 = *((sl + 0x28));
    0x00018302 mov r3, r5                                        |     r3 = r5;
    0x00018304 ldr r0, [pc, 0x88]                                |     
    0x00018306 mov.w r1, 0x6a8                                   |     r1 = case.0x3207a.11;
    0x0001830a orr r2, r2, 0x20                                  |     r2 |= 0x20;
    0x0001830e str.w r2, [sl, 0x28]                              |     __asm ("str.w r2, [sl, 0x28]");
    0x00018312 add r0, pc                                        |     r0 = 0x306a6;
    0x00018314 movs r2, 0                                        |     r2 = 0;
    0x00018316 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00018318 stc2 p8, c15, [r7, -0x328]                        |     __asm ("stc2 p8, c15, case.0x3207a.11");
    0x0001831c movs r0, r4                                       |     r0 = r4;
    0x0001831e b 0x180f8                                         |     goto label_7;
                                                                 | label_16:
    0x00018414 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x00018416 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00018418 cmp r3, 3                                         |     
                                                                 |     if (r3 > 3) {
    0x0001841a bgt 0x18516                                       |         goto label_27;
                                                                 |     }
                                                                 | label_11:
    0x0001841c bl 0x2c150                                        |     zbx_set_metric_thread_signal_handler ();
    0x00018420 ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00018424 blx 0xc47c                                        |     fcn_0000c47c ();
    0x00018428 mov r1, sl                                        |     r1 = sl;
    0x0001842a mov r0, r5                                        |     r0 = r5;
    0x0001842c blx r7                                            |     r0 = uint32_t (*r7)(uint32_t, uint32_t) (r0, r1);
    0x0001842e mov fp, r0                                        |     
    0x00018430 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00018432 bne 0x18500                                       |         goto label_28;
                                                                 |     }
    0x00018434 ldr.w r3, [sl, 0x28]                              |     r3 = *((sl + 0x28));
    0x00018438 lsls r5, r3, 0x1c                                 |     r5 = r3 << 0x1c;
                                                                 |     if (r5 < r3) {
    0x0001843a bmi 0x184fc                                       |         goto label_29;
                                                                 |     }
    0x0001843c lsls r4, r3, 0x1d                                 |     r4 = r3 << 0x1d;
                                                                 |     if (r4 < r3) {
    0x0001843e bmi 0x184f8                                       |         goto label_30;
                                                                 |     }
    0x00018440 lsls r0, r3, 0x1f                                 |     r0 = r3 << 0x1f;
                                                                 |     if (r0 < r3) {
    0x00018442 bmi 0x18530                                       |         goto label_31;
                                                                 |     }
    0x00018444 lsls r1, r3, 0x1e                                 |     r1 = r3 << 0x1e;
                                                                 |     if (r1 >= r3) {
    0x00018446 bpl 0x1850a                                       |         goto label_32;
                                                                 |     }
    0x00018448 movs r7, 0x64                                     |     r7 = 0x64;
                                                                 | label_9:
    0x0001844a movs r1, 8                                        |     r1 = 8;
    0x0001844c mov r0, sl                                        |     r0 = sl;
    0x0001844e bl 0x17b2c                                        |     r0 = get_result_value_by_type ();
    0x00018452 mov r5, r0                                        |     r5 = r0;
    0x00018454 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00018456 beq 0x18524                                       |         goto label_33;
                                                                 |     }
                                                                 | label_10:
    0x00018458 ldr r0, [r5]                                      |     r0 = *(r5);
    0x0001845a blx 0xc114                                        |     r0 = fcn_0000c114 ();
    0x0001845e adds r4, r0, 6                                    |     r4 = r0 + 6;
    0x00018460 str r0, [sp, 0xc]                                 |     var_ch = r0;
    0x00018462 cmp.w r4, 0x800                                   |     
                                                                 |     if (r4 < 0x800) {
    0x00018466 bls 0x18498                                       |         goto label_34;
                                                                 |     }
    0x00018468 vmov.f64 d16, 1.500000e+00                        |     __asm ("vmov.f64 d16, 1");
    0x0001846c mov.w r3, 0x800                                   |     r3 = case.0x3207a.11;
                                                                 |     do {
    0x00018470 vmov s15, r3                                      |         __asm ("vmov s15, r3");
    0x00018474 vcvt.f64.u32 d7, s15                              |         __asm ("vcvt.f64.u32 d7, s15");
    0x00018478 vmul.f64 d7, d7, d16                              |         __asm ("vmul.f64 d7, d7, d16");
    0x0001847c vcvt.u32.f64 s15, d7                              |         __asm ("vcvt.u32.f64 s15, d7");
    0x00018480 vmov r3, s15                                      |         __asm ("vmov r3, s15");
    0x00018484 cmp r4, r3                                        |         
    0x00018486 bhi 0x18470                                       |         
                                                                 |     } while (r4 > r3);
    0x00018488 ldr r0, [pc, 0xd4]                                |     
    0x0001848a mov r2, r6                                        |     r2 = r6;
    0x0001848c movw r1, 0x681                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00018490 add r0, pc                                        |     r0 = 0x309f4;
    0x00018492 bl 0x35cb8                                        |     r0 = zbx_realloc2 ();
    0x00018496 mov r6, r0                                        |     r6 = r0;
                                                                 | label_34:
    0x00018498 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x0001849a adds r0, r6, 5                                    |     r0 = r6 + 5;
    0x0001849c str.w fp, [r6]                                    |     __asm ("str.w fp, [r6]");
    0x000184a0 strb r7, [r6, 4]                                  |     *((r6 + 4)) = r7;
    0x000184a2 adds r2, 1                                        |     r2++;
    0x000184a4 ldr r1, [r5]                                      |     r1 = *(r5);
    0x000184a6 blx 0xbd78                                        |     fcn_0000bd78 ();
                                                                 | label_12:
    0x000184aa ldr.w r7, [sb, 4]                                 |     r7 = *((sb + 4));
    0x000184ae mov fp, r6                                        |     
                                                                 |     do {
                                                                 | label_8:
    0x000184b0 mov r2, r4                                        |         r2 = r4;
    0x000184b2 mov r1, fp                                        |         r1 = fp;
    0x000184b4 mov r0, r7                                        |         r0 = r7;
    0x000184b6 blx 0xc1f4                                        |         r0 = memchr (r0, r1, r2);
    0x000184ba adds r3, r0, 1                                    |         r3 = r0 + 1;
    0x000184bc mov r5, r0                                        |         r5 = r0;
                                                                 |         if (r3 == r0) {
    0x000184be beq 0x184cc                                       |             goto label_35;
                                                                 |         }
    0x000184c0 subs r4, r4, r0                                   |         r4 -= r0;
    0x000184c2 add fp, r0                                        |         
    0x000184c4 bne 0x184b0                                       |         
                                                                 |     } while (r4 != r4);
    0x000184c6 b 0x184d8                                         |     goto label_36;
                                                                 | label_22:
    0x000184c8 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_35:
    0x000184cc blx 0xc15c                                        |     r0 = fcn_0000c15c ();
    0x000184d0 ldr r3, [r0]                                      |     r3 = *(r0);
    0x000184d2 cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x000184d4 beq 0x184b0                                       |         goto label_8;
                                                                 |     }
    0x000184d6 mov r8, r5                                        |     r8 = r5;
                                                                 | label_36:
    0x000184d8 mov r0, r6                                        |     r0 = r6;
    0x000184da blx 0xbd14                                        |     gai_strerror ();
    0x000184de mov r0, sl                                        |     r0 = sl;
    0x000184e0 bl 0x16ee0                                        |     free_result ();
    0x000184e4 ldr.w r0, [sb, 4]                                 |     r0 = *((sb + 4));
    0x000184e8 blx 0xc47c                                        |     fcn_0000c47c ();
    0x000184ec subs.w r0, r8, 0                                  |     r0 = r8 - 0;
    0x000184f0 it ne                                             |     
                                                                 |     if (r0 == r8) {
    0x000184f2 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x000184f4 blx 0xc0f0                                        |     fcn_0000c0f0 ();
                                                                 | label_30:
    0x000184f8 movs r7, 0x73                                     |     r7 = 0x73;
    0x000184fa b 0x1844a                                         |     goto label_9;
                                                                 | label_29:
    0x000184fc movs r7, 0x74                                     |     r7 = 0x74;
    0x000184fe b 0x1844a                                         |     goto label_9;
                                                                 | label_28:
    0x00018500 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00018504 beq 0x18534                                       |         
    0x00018506 ldr.w r3, [sl, 0x28]                              |         r3 = *((sl + 0x28));
                                                                 | label_32:
    0x0001850a lsls r2, r3, 0x1a                                 |         r2 = r3 << 0x1a;
                                                                 |         if (r2 < r3) {
    0x0001850c bpl 0x18524                                       |             
    0x0001850e add.w r5, sl, 0x20                                |             r5 = sl + 0x20;
    0x00018512 movs r7, 0x6d                                     |             r7 = 0x6d;
    0x00018514 b 0x18458                                         |             goto label_10;
                                                                 | label_27:
    0x00018516 ldr r1, [pc, 0x4c]                                |             
    0x00018518 movs r0, 4                                        |             r0 = 4;
    0x0001851a ldr r2, [r5]                                      |             r2 = *(r5);
    0x0001851c add r1, pc                                        |             r1 = 0x30a86;
    0x0001851e bl 0x271b0                                        |             zbx_zabbix_log ();
    0x00018522 b 0x1841c                                         |             goto label_11;
                                                                 |         }
                                                                 | label_33:
    0x00018524 movs r3, 0x2d                                     |         r3 = 0x2d;
    0x00018526 movs r4, 5                                        |         r4 = 5;
    0x00018528 str.w fp, [r6]                                    |         __asm ("str.w fp, [r6]");
    0x0001852c strb r3, [r6, 4]                                  |         *((r6 + 4)) = r3;
    0x0001852e b 0x184aa                                         |         goto label_12;
                                                                 | label_31:
    0x00018530 movs r7, 0x75                                     |         r7 = 0x75;
    0x00018532 b 0x1844a                                         |         goto label_9;
                                                                 |     }
    0x00018534 ldr r3, [pc, 0x30]                                |     
    0x00018536 movw r2, 0x5b2                                    |     r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0001853a ldr r1, [pc, 0x30]                                |     
    0x0001853c ldr r0, [pc, 0x30]                                |     
    0x0001853e add r3, pc                                        |     r3 = 0x30aaa;
    0x00018540 add r1, pc                                        |     r1 = 0x30ab2;
    0x00018542 adds r3, 0x38                                     |     r3 += 0x38;
    0x00018544 add r0, pc                                        |     r0 = 0x30ab8;
    0x00018546 blx 0xc4a0                                        |     fcn_0000c4a0 ();
    0x0001854a nop                                               |     
    0x0001854c ldm r0!, {r2, r5}                                 |     r2 = *(r0!);
                                                                 |     r5 = *((r0! + 4));
    0x0001854e movs r2, r0                                       |     r2 = r0;
    0x00018550 stm r7!, {r1, r2, r4, r5, r6, r7}                 |     *(r7!) = r1;
                                                                 |     *((r7! + 4)) = r2;
                                                                 |     *((r7! + 8)) = r4;
                                                                 |     *((r7! + 12)) = r5;
                                                                 |     *((r7! + 16)) = r6;
                                                                 |     *((r7! + 20)) = r7;
    0x00018552 movs r2, r0                                       |     r2 = r0;
    0x00018554 ldm r4!, {r3, r5}                                 |     r3 = *(r4!);
                                                                 |     r5 = *((r4! + 4));
    0x00018556 movs r2, r0                                       |     r2 = r0;
    0x00018558 stm r7!, {r1, r2, r3, r6, r7}                     |     *(r7!) = r1;
                                                                 |     *((r7! + 4)) = r2;
                                                                 |     *((r7! + 8)) = r3;
                                                                 |     *((r7! + 12)) = r6;
                                                                 |     *((r7! + 16)) = r7;
    0x0001855a movs r2, r0                                       |     r2 = r0;
    0x0001855c ldm r2!, {r1, r3, r4, r6, r7}                     |     r1 = *(r2!);
                                                                 |     r3 = *((r2! + 4));
                                                                 |     r4 = *((r2! + 8));
                                                                 |     r6 = *((r2! + 12));
                                                                 |     r7 = *((r2! + 16));
    0x0001855e movs r2, r0                                       |     r2 = r0;
    0x00018560 stm r7!, {r3, r6}                                 |     *(r7!) = r3;
                                                                 |     *((r7! + 4)) = r6;
    0x00018562 movs r2, r0                                       |     r2 = r0;
    0x00018564 ldm r2, {r2, r5}                                  |     r2 = *(r2);
                                                                 |     r5 = *((r2 + 4));
    0x00018566 movs r2, r0                                       |     r2 = r0;
    0x00018568 ldm r2!, {r1, r4, r5, r6, r7}                     |     r1 = *(r2!);
                                                                 |     r4 = *((r2! + 4));
                                                                 |     r5 = *((r2! + 8));
                                                                 |     r6 = *((r2! + 12));
                                                                 |     r7 = *((r2! + 16));
    0x0001856a movs r2, r0                                       |     r2 = r0;
    0x0001856c stm r6!, {r3, r4, r7}                             |     *(r6!) = r3;
                                                                 |     *((r6! + 4)) = r4;
                                                                 |     *((r6! + 8)) = r7;
    0x0001856e movs r2, r0                                       |     r2 = r0;
    0x00018570 ldm r1!, {r2, r5, r7}                             |     r2 = *(r1!);
                                                                 |     r5 = *((r1! + 4));
                                                                 |     r7 = *((r1! + 8));
    0x00018572 movs r2, r0                                       |     r2 = r0;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3724c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.zbx_interval_preproc ()                          | void zbx_interval_preproc (int16_t arg_10h, int16_t arg_14h, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     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;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0003724c svcmi 0xf0e92d                                    |     __asm ("svcmi case.0x3207a.11");
    0x00037250 sub sp, 0x2c                                      |     
    0x00037252 mov r8, r0                                        |     r8 = r0;
    0x00037254 str r1, [sp, 0x10]                                |     var_10h = r1;
    0x00037256 movs r1, 0x3b                                     |     r1 = 0x3b;
    0x00037258 strd r2, r3, [sp, 0x20]                           |     __asm ("strd r2, r3, [var_24h]");
    0x0003725c blx 0xc138                                        |     r0 = fcn_0000c138 ();
    0x00037260 mov r6, r0                                        |     r6 = r0;
    0x00037262 sub.w r2, r0, r8                                  |     r2 = r0 - r8;
    0x00037266 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00037268 beq.w 0x37444                                     |         goto label_12;
                                                                 |     }
                                                                 | label_5:
    0x0003726c ldr r1, [sp, 0x10]                                |     r1 = var_10h;
    0x0003726e mov r0, r8                                        |     r0 = r8;
    0x00037270 bl 0x36684                                        |     is_time_suffix ();
    0x00037274 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x00037276 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00037278 bne.w 0x37480                                     |         goto label_13;
                                                                 |     }
    0x0003727c ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x0003727e cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00037280 beq 0x3736c                                       |         goto label_14;
                                                                 |     }
    0x00037282 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00037284 beq.w 0x3744a                                     |         goto label_15;
                                                                 |     }
    0x00037288 ldr r3, [pc, 0x220]                               |     
    0x0003728a add r3, pc                                        |     r3 = 0x6e73a;
    0x0003728c str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0003728e ldr r3, [pc, 0x220]                               |     
    0x00037290 add r3, pc                                        |     r3 = 0x6e746;
    0x00037292 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00037294 blx 0xc0d4                                        |     feof (r0);
    0x00037298 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0003729a mov sl, r0                                        |     sl = r0;
    0x0003729c mov sb, r3                                        |     sb = r3;
    0x0003729e str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 | label_0:
    0x000372a0 add.w r8, r6, 1                                   |     r8 = r6 + 1;
    0x000372a4 movs r1, 0x3b                                     |     r1 = 0x3b;
    0x000372a6 mov r0, r8                                        |     r0 = r8;
    0x000372a8 blx 0xc138                                        |     fcn_0000c138 ();
    0x000372ac ldrb r2, [r6, 1]                                  |     r2 = *((r6 + 1));
    0x000372ae mov r6, r0                                        |     r6 = r0;
    0x000372b0 ldr.w r3, [sl]                                    |     r3 = *(sl);
    0x000372b4 ldrh.w r5, [r3, r2, lsl 1]                        |     offset_0 = r2 << 1;
                                                                 |     r5 = *((r3 + offset_0));
    0x000372b8 ands r5, r5, 0x800                                |     r5 &= case.0x3207a.11;
                                                                 |     if (r5 == r5) {
    0x000372bc beq 0x37374                                       |         goto label_16;
                                                                 |     }
    0x000372be ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x000372c0 movs r3, 0x18                                     |     r3 = 0x18;
    0x000372c2 movs r2, 0                                        |     r2 = 0;
    0x000372c4 movw r1, 0x85f                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x000372c8 bl 0x35c28                                        |     zbx_malloc2 ();
    0x000372cc sub.w r4, r6, r8                                  |     r4 = r6 - r8;
    0x000372d0 mov fp, r0                                        |     
    0x000372d2 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x000372d4 beq.w 0x3741a                                     |         goto label_17;
                                                                 |     }
                                                                 | label_2:
    0x000372d8 cmp r4, 0                                         |     
                                                                 |     if (r4 <= 0) {
    0x000372da ble 0x373ba                                       |         goto label_18;
                                                                 |     }
    0x000372dc mov r2, r8                                        |     r2 = r8;
    0x000372de b 0x372e4                                         |     
                                                                 |     while (r5 != 0x2f) {
    0x000372e0 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 == 1) {
    0x000372e2 beq 0x373b4                                       |             goto label_19;
                                                                 |         }
    0x000372e4 mov r7, r2                                        |         r7 = r2;
    0x000372e6 ldrb r5, [r2], 1                                  |         r5 = *(r2);
                                                                 |         r2++;
    0x000372ea cmp r5, 0x2f                                      |         
    0x000372ec it ne                                             |         
                                                                 |         if (r5 != 0x2f) {
    0x000372ee cmpne r5, 0                                       |             __asm ("cmpne r5, 0");
                                                                 |         }
    0x000372f0 bne 0x372e0                                       |         
                                                                 |     }
    0x000372f2 sub.w r2, r7, r8                                  |     r2 = r7 - r8;
    0x000372f6 add.w r1, fp, 0x10                                |     r1 += arg_10h;
    0x000372fa mov r0, r8                                        |     r0 = r8;
    0x000372fc bl 0x36684                                        |     r0 = is_time_suffix ();
    0x00037300 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00037302 bne 0x373c6                                       |         goto label_20;
                                                                 |     }
    0x00037304 cmp r5, 0x2f                                      |     
    0x00037306 add.w r2, r4, -1                                  |     r2 = r4 + -1;
    0x0003730a add.w r1, r7, 1                                   |     r1 = r7 + 1;
    0x0003730c lsls r1, r0, 4                                    |     r1 = r0 << 4;
                                                                 |     if (r1 != r0) {
    0x0003730e bne 0x373c6                                       |         goto label_20;
                                                                 |     }
    0x00037310 mov r0, fp                                        |     r0 = fp;
    0x00037312 bl 0x36a64                                        |     r0 = fcn_00036a64 (r0, r1, r2);
    0x00037316 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00037318 bne 0x373c6                                       |         goto label_20;
                                                                 |     }
    0x0003731a ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0003731c ldr r2, [r3]                                      |     r2 = *(r3);
                                                                 |     if (r2 == 0) {
    0x0003731e cbnz r2, 0x3732a                                  |         
    0x00037320 ldr.w r2, [fp, 0x10]                              |         r2 = *(arg_10h);
    0x00037324 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x00037326 beq.w 0x3745a                                     |             goto label_21;
                                                                 |         }
                                                                 |     }
    0x0003732a str.w sb, [fp, 0x14]                              |     __asm ("str.w sb, [arg_14h]");
    0x0003732e mov sb, fp                                        |     sb = fp;
    0x00037330 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x00037332 bne 0x372a0                                       |         goto label_0;
                                                                 |     }
                                                                 | label_1:
    0x00037334 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00037336 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00037338 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0003733a orrs.w r3, r3, sb                                 |     r3 |= sb;
                                                                 |     if (r3 == r3) {
    0x0003733e beq.w 0x3744e                                     |         goto label_22;
                                                                 |     }
                                                                 | label_6:
    0x00037342 mov.w r3, 0x5180                                  |     
    0x00037346 movt r3, 1                                        |     r3 = 0xNaN;
    0x0003734a cmp r2, r3                                        |     
                                                                 |     if (r2 > r3) {
    0x0003734c bgt.w 0x37466                                     |         goto label_23;
                                                                 |     }
    0x00037350 ldr r0, [pc, 0x160]                               |     
    0x00037352 movs r3, 8                                        |     r3 = 8;
    0x00037354 movs r2, 0                                        |     r2 = 0;
    0x00037356 movw r1, 0x887                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0003735a add r0, pc                                        |     r0 = 0x6e812;
    0x0003735c bl 0x35c28                                        |     zbx_malloc2 ();
    0x00037360 ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00037362 str.w sb, [r0]                                    |     __asm ("str.w sb, [r0]");
    0x00037366 str r0, [r3]                                      |     *(r3) = r0;
    0x00037368 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0003736a str r3, [r0, 4]                                   |     *((r0 + 4)) = r3;
                                                                 | label_14:
    0x0003736c ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0003736e add sp, 0x2c                                      |     
    0x00037370 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_16:
    0x00037374 mov r2, r5                                        |     r2 = r5;
    0x00037376 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00037378 movs r3, 0x1c                                     |     r3 = 0x1c;
    0x0003737a movw r1, 0x871                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x0003737e bl 0x35c28                                        |     zbx_malloc2 ();
    0x00037382 sub.w r2, r6, r8                                  |     r2 = r6 - r8;
    0x00037386 mov r4, r0                                        |     r4 = r0;
    0x00037388 str r5, [r0]                                      |     *(r0) = r5;
    0x0003738a str r5, [r0, 4]                                   |     *((r0 + 4)) = r5;
    0x0003738c str r5, [r0, 8]                                   |     *((r0 + 8)) = r5;
    0x0003738e str r5, [r0, 0xc]                                 |     *((r0 + 0xc)) = r5;
    0x00037390 str r5, [r0, 0x10]                                |     *((r0 + 0x10)) = r5;
    0x00037392 str r5, [r0, 0x14]                                |     *((r0 + 0x14)) = r5;
    0x00037394 str r5, [r0, 0x18]                                |     *((r0 + 0x18)) = r5;
    0x00037396 cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00037398 beq 0x37424                                       |         goto label_24;
                                                                 |     }
    0x0003739a mov r1, r8                                        |     r1 = r8;
    0x0003739c mov r0, r4                                        |     r0 = r4;
    0x0003739e bl 0x36e20                                        |     r0 = fcn_00036e20 (r0, r1, r2);
    0x000373a2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000373a4 bne 0x37438                                       |         goto label_25;
                                                                 |     }
                                                                 | label_3:
    0x000373a6 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000373a8 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x000373aa str r3, [r4, 0x18]                                |     *((r4 + 0x18)) = r3;
    0x000373ac cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000373ae bne.w 0x372a0                                     |         goto label_0;
                                                                 |     }
    0x000373b2 b 0x37334                                         |     goto label_1;
                                                                 | label_19:
    0x000373b4 sub.w r3, r2, r8                                  |     r3 = r2 - r8;
    0x000373b8 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 | label_18:
    0x000373ba ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x000373bc add.w r1, fp, 0x10                                |     r1 += arg_10h;
    0x000373c0 mov r0, r8                                        |     r0 = r8;
    0x000373c2 bl 0x36684                                        |     is_time_suffix ();
                                                                 | label_20:
    0x000373c6 cmp.w fp, 0                                       |     
                                                                 |     if (fp != 0) {
    0x000373ca bne 0x3745a                                       |         goto label_21;
                                                                 |     }
    0x000373cc ldr r2, [pc, 0xe8]                                |     
    0x000373ce add r2, pc                                        |     r2 = 0x6e88a;
                                                                 | label_4:
    0x000373d0 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
                                                                 |     if (r3 != 0) {
    0x000373d2 cbz r3, 0x373f2                                   |         
                                                                 | label_9:
    0x000373d4 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x000373d6 ldr r4, [r3]                                      |         r4 = *(r3);
    0x000373d8 sub.w r3, r6, r8                                  |         r3 = r6 - r8;
    0x000373dc cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x000373de beq 0x37472                                       |             goto label_11;
                                                                 |         }
                                                                 | label_8:
    0x000373e0 ldr r1, [pc, 0xd8]                                |         
    0x000373e2 mov r0, r4                                        |         r0 = r4;
    0x000373e4 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x000373e8 add r1, pc                                        |         r1 = 0x6e8a8;
    0x000373ea bl 0x396b0                                        |         zbx_dsprintf ()
    0x000373ee ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x000373f0 str r0, [r3]                                      |         *(r3) = r0;
                                                                 |     }
                                                                 | label_7:
    0x000373f2 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x000373f6 beq 0x37406                                       |         goto label_10;
                                                                 |     }
    0x000373f8 mov r4, sb                                        |     r4 = sb;
                                                                 |     do {
    0x000373fa mov r0, r4                                        |         r0 = r4;
    0x000373fc ldr r4, [r4, 0x14]                                |         r4 = *((r4 + 0x14));
    0x000373fe blx 0xbd14                                        |         gai_strerror ();
    0x00037402 cmp r4, 0                                         |         
    0x00037404 bne 0x373fa                                       |         
                                                                 |     } while (r4 != 0);
                                                                 | label_10:
    0x00037406 ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x00037408 mov.w r3, -1                                      |     r3 = -1;
    0x0003740c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0003740e bl 0x34dc4                                        |     fcn_00034dc4 (r0);
    0x00037412 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00037414 add sp, 0x2c                                      |     
    0x00037416 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_17:
    0x0003741a mov r0, r8                                        |     r0 = r8;
    0x0003741c blx 0xc114                                        |     r0 = fcn_0000c114 ();
    0x00037420 mov r4, r0                                        |     r4 = r0;
    0x00037422 b 0x372d8                                         |     goto label_2;
                                                                 | label_24:
    0x00037424 mov r0, r8                                        |     r0 = r8;
    0x00037426 blx 0xc114                                        |     fcn_0000c114 ();
    0x0003742a mov r1, r8                                        |     r1 = r8;
    0x0003742c mov r2, r0                                        |     r2 = r0;
    0x0003742e mov r0, r4                                        |     r0 = r4;
    0x00037430 bl 0x36e20                                        |     r0 = fcn_00036e20 (r0, r1, r2);
    0x00037434 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00037436 beq 0x373a6                                       |         goto label_3;
                                                                 |     }
                                                                 | label_25:
    0x00037438 mov r0, r4                                        |     r0 = r4;
    0x0003743a bl 0x34dc4                                        |     fcn_00034dc4 (r0);
    0x0003743e ldr r2, [pc, 0x80]                                |     
    0x00037440 add r2, pc                                        |     r2 = 0x6e906;
    0x00037442 b 0x373d0                                         |     goto label_4;
                                                                 | label_12:
    0x00037444 mvn r2, 0x80000000                                |     r2 = ~case.0x3207a.11;
    0x00037448 b 0x3726c                                         |     goto label_5;
                                                                 | label_15:
    0x0003744a ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0003744c ldr r2, [r3]                                      |     r2 = *(r3);
                                                                 |     if (r2 == 0) {
                                                                 | label_22:
    0x0003744e cbz r2, 0x37496                                   |         goto label_26;
                                                                 |     }
    0x00037450 mov.w sb, 0                                       |     sb = 0;
    0x00037454 str.w sb, [sp, 0xc]                               |     __asm ("str.w sb, [var_ch]");
    0x00037458 b 0x37342                                         |     goto label_6;
                                                                 | label_21:
    0x0003745a mov r0, fp                                        |     r0 = fp;
    0x0003745c blx 0xbd14                                        |     gai_strerror ();
    0x00037460 ldr r2, [pc, 0x60]                                |     
    0x00037462 add r2, pc                                        |     r2 = 0x6e92a;
    0x00037464 b 0x373d0                                         |     goto label_4;
                                                                 | label_23:
    0x00037466 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00037468 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003746a beq 0x373f2                                       |         goto label_7;
                                                                 |     }
    0x0003746c ldr r2, [pc, 0x58]                                |     
    0x0003746e ldr r4, [r3]                                      |     r4 = *(r3);
    0x00037470 add r2, pc                                        |     r2 = 0x6e93c;
                                                                 | label_11:
    0x00037472 mov r0, r8                                        |     r0 = r8;
    0x00037474 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00037476 blx 0xc114                                        |     fcn_0000c114 ();
    0x0003747a ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0003747c mov r3, r0                                        |     r3 = r0;
    0x0003747e b 0x373e0                                         |     goto label_8;
                                                                 | label_13:
    0x00037480 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
                                                                 |     if (r3 == 0) {
    0x00037482 cbz r3, 0x37490                                   |         goto label_27;
                                                                 |     }
    0x00037484 ldr r2, [pc, 0x44]                                |     
    0x00037486 movs r3, 0                                        |     r3 = 0;
    0x00037488 mov sb, r3                                        |     sb = r3;
    0x0003748a str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0003748c add r2, pc                                        |     r2 = 0x6e95c;
    0x0003748e b 0x373d4                                         |     goto label_9;
                                                                 |     do {
                                                                 | label_27:
    0x00037490 movs r3, 0                                        |         r3 = 0;
    0x00037492 str r3, [sp, 0xc]                                 |         var_ch = r3;
    0x00037494 b 0x37406                                         |         goto label_10;
                                                                 | label_26:
    0x00037496 ldr r3, [sp, 0x24]                                |         r3 = var_24h;
    0x00037498 cmp r3, 0                                         |         
    0x0003749a beq 0x37490                                       |         
                                                                 |     } while (r3 == 0);
    0x0003749c ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x0003749e mov sb, r2                                        |     sb = r2;
    0x000374a0 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x000374a2 ldr r2, [pc, 0x2c]                                |     
    0x000374a4 ldr r4, [r3]                                      |     r4 = *(r3);
    0x000374a6 add r2, pc                                        |     r2 = 0x6e97c;
    0x000374a8 b 0x37472                                         |     goto label_11;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x31110 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.zbx_json_validate ()             | void zbx_json_validate (int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00031110 push {r3, r4, r5, r6, r7, lr}     |     
    0x00031112 mov r4, r0                        |     r4 = r0;
    0x00031114 ldrb r5, [r0]                     |     r5 = *(r0);
    0x00031116 mov r6, r1                        |     r6 = r1;
    0x00031118 cmp r5, 0                         |     
                                                 |     if (r5 == 0) {
    0x0003111a beq 0x31190                       |         goto label_1;
                                                 |     }
    0x0003111c ldr r7, [pc, 0x8c]                |     
    0x0003111e add r7, pc                        |     r7 = 0x622ce;
    0x00031120 b 0x31128                         |     
                                                 |     while (r0 != 0) {
    0x00031122 ldrb r5, [r4, 1]!                 |         r5 = *((r4 += 1));
                                                 |         if (r5 == 0) {
    0x00031126 cbz r5, 0x31190                   |             goto label_1;
                                                 |         }
    0x00031128 mov r1, r5                        |         r1 = r5;
    0x0003112a mov r0, r7                        |         r0 = r7;
    0x0003112c blx 0xc138                        |         r0 = fcn_0000c138 ();
    0x00031130 cmp r0, 0                         |         
    0x00031132 bne 0x31122                       |         
                                                 |     }
    0x00031134 cmp r5, 0x5b                      |     
                                                 |     if (r5 != 0x5b) {
    0x00031136 bne 0x31178                       |         goto label_2;
                                                 |     }
    0x00031138 mov r1, r6                        |     r1 = r6;
    0x0003113a mov r0, r4                        |     r0 = r4;
    0x0003113c bl 0x31078                        |     r0 = fcn_00031078 (r0, r1);
    0x00031140 mov r5, r0                        |     r5 = r0;
                                                 |     if (r0 == 0) {
    0x00031142 cbz r0, 0x3118a                   |         goto label_3;
                                                 |     }
                                                 | label_0:
    0x00031144 ldrb r1, [r4, r5]                 |     r1 = *((r4 + r5));
    0x00031146 add r4, r5                        |     r4 += r5;
                                                 |     if (r1 == 0) {
    0x00031148 cbz r1, 0x3118c                   |         goto label_4;
                                                 |     }
    0x0003114a ldr r7, [pc, 0x64]                |     
    0x0003114c add r7, pc                        |     r7 = 0x62302;
    0x0003114e b 0x31156                         |     
                                                 |     while (r0 != 0) {
    0x00031150 ldrb r1, [r4, 1]!                 |         r1 = *((r4 += 1));
                                                 |         if (r1 == 0) {
    0x00031154 cbz r1, 0x3118c                   |             goto label_4;
                                                 |         }
    0x00031156 mov r0, r7                        |         r0 = r7;
    0x00031158 blx 0xc138                        |         r0 = fcn_0000c138 ();
    0x0003115c cmp r0, 0                         |         
    0x0003115e bne 0x31150                       |         
                                                 |     }
                                                 |     if (r6 == 0) {
    0x00031160 cbz r6, 0x3118a                   |         goto label_3;
                                                 |     }
    0x00031162 ldr r2, [pc, 0x50]                |     
    0x00031164 mov r3, r4                        |     r3 = r4;
    0x00031166 ldr r1, [pc, 0x50]                |     
    0x00031168 mov r5, r0                        |     r5 = r0;
    0x0003116a ldr r0, [r6]                      |     r0 = *(r6);
    0x0003116c add r2, pc                        |     r2 = 0x62326;
    0x0003116e add r1, pc                        |     r1 = 0x6232c;
    0x00031170 bl 0x396b0                        |     zbx_dsprintf ()
    0x00031174 str r0, [r6]                      |     *(r6) = r0;
    0x00031176 b 0x3118c                         |     goto label_4;
                                                 | label_2:
    0x00031178 cmp r5, 0x7b                      |     
                                                 |     if (r5 != 0x7b) {
    0x0003117a bne 0x31190                       |         goto label_1;
                                                 |     }
    0x0003117c mov r1, r6                        |     r1 = r6;
    0x0003117e mov r0, r4                        |     r0 = r4;
    0x00031180 bl 0x30efc                        |     r0 = fcn_00030efc (r0, r1);
    0x00031184 mov r5, r0                        |     r5 = r0;
    0x00031186 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00031188 bne 0x31144                       |         goto label_0;
                                                 |     }
                                                 |     do {
                                                 | label_3:
    0x0003118a movs r5, 0                        |         r5 = 0;
                                                 | label_4:
    0x0003118c mov r0, r5                        |         r0 = r5;
    0x0003118e pop {r3, r4, r5, r6, r7, pc}      |         
                                                 | label_1:
    0x00031190 cmp r6, 0                         |         
    0x00031192 beq 0x3118a                       |         
                                                 |     } while (r6 == 0);
    0x00031194 ldr r2, [pc, 0x24]                |     
    0x00031196 mov r3, r4                        |     r3 = r4;
    0x00031198 ldr r1, [pc, 0x24]                |     
    0x0003119a movs r5, 0                        |     r5 = 0;
    0x0003119c ldr r0, [r6]                      |     r0 = *(r6);
    0x0003119e add r2, pc                        |     r2 = 0x6235e;
    0x000311a0 add r1, pc                        |     r1 = 0x62364;
    0x000311a2 bl 0x396b0                        |     zbx_dsprintf ()
    0x000311a6 str r0, [r6]                      |     *(r6) = r0;
    0x000311a8 mov r0, r5                        |     r0 = r5;
    0x000311aa pop {r3, r4, r5, r6, r7, pc}      |     
                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2a150 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.zbx_locks_create ()                  | void zbx_locks_create (int16_t arg1) {
                                                     |     r0 = arg1;
    0x0002a150 push {r3, r4, r5, r6, r7, lr}         |     
    0x0002a152 mov.w r2, 0x180                       |     r2 = case.0x3207a.11;
    0x0002a156 mov r7, r0                            |     r7 = r0;
    0x0002a158 movs r1, 0xf                          |     r1 = 0xf;
    0x0002a15a movs r0, 0                            |     r0 = 0;
    0x0002a15c blx 0xc184                            |     fcn_0000c184 (r0);
    0x0002a160 ldr r3, [pc, 0xa0]                    |     
    0x0002a162 mov r6, r0                            |     r6 = r0;
    0x0002a164 add r3, pc                            |     r3 = 0x5436c;
    0x0002a166 str r0, [r3]                          |     *(r3) = r0;
    0x0002a168 adds r0, 1                            |     r0++;
    0x0002a16a it ne                                 |     
                                                     |     if (r0 == 1) {
    0x0002a16c movne r5, 0                           |         r5 = 0;
                                                     |     }
                                                     |     if (r0 == 1) {
    0x0002a16e beq 0x2a1e4                           |         goto label_1;
                                                     |     }
                                                     |     do {
    0x0002a170 mov r1, r5                            |         r1 = r5;
    0x0002a172 movs r3, 1                            |         r3 = 1;
    0x0002a174 movs r2, 0x10                         |         r2 = 0x10;
    0x0002a176 mov r0, r6                            |         r0 = r6;
    0x0002a178 blx 0xc2a8                            |         r0 = sigemptyset ();
    0x0002a17c adds r3, r0, 1                        |         r3 = r0 + 1;
    0x0002a17e mov r4, r0                            |         r4 = r0;
    0x0002a180 add.w r5, r5, 1                       |         r5++;
                                                     |         if (r3 == r0) {
    0x0002a184 beq 0x2a190                           |             goto label_2;
                                                     |         }
    0x0002a186 cmp r5, 0xf                           |         
    0x0002a188 bne 0x2a170                           |         
                                                     |     } while (r5 != 0xf);
    0x0002a18a movs r4, 0                            |     r4 = 0;
                                                     | label_0:
    0x0002a18c mov r0, r4                            |     r0 = r4;
    0x0002a18e pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_2:
    0x0002a190 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x0002a194 mov r5, r0                            |     r5 = r0;
    0x0002a196 ldr r0, [r0]                          |     r0 = *(r0);
    0x0002a198 ldr r6, [r7]                          |     r6 = *(r7);
    0x0002a19a bl 0x26fdc                            |     zbx_strerror ();
    0x0002a19e ldr r1, [pc, 0x68]                    |     
    0x0002a1a0 mov r2, r0                            |     r2 = r0;
    0x0002a1a2 mov r0, r6                            |     r0 = r6;
    0x0002a1a4 add r1, pc                            |     r1 = 0x543b2;
    0x0002a1a6 bl 0x396b0                            |     zbx_dsprintf ()
    0x0002a1aa ldr r1, [pc, 0x60]                    |     
    0x0002a1ac movs r3, 0                            |     r3 = 0;
    0x0002a1ae str r0, [r7]                          |     *(r7) = r0;
    0x0002a1b0 mov r2, r3                            |     r2 = r3;
    0x0002a1b2 add r1, pc                            |     r1 = 0x543c4;
    0x0002a1b4 ldr r6, [r1]                          |     r6 = *(0x543c4);
    0x0002a1b6 mov r1, r3                            |     r1 = r3;
    0x0002a1b8 mov r0, r6                            |     r0 = r6;
    0x0002a1ba blx 0xc2a8                            |     sigemptyset ();
    0x0002a1be adds r0, 1                            |     r0++;
    0x0002a1c0 beq 0x2a1d0                           |     
                                                     |     while (1) {
    0x0002a1c2 ldr r3, [pc, 0x4c]                    |         
    0x0002a1c4 mov.w r2, -1                          |         r2 = -1;
    0x0002a1c8 mov r0, r4                            |         r0 = r4;
    0x0002a1ca add r3, pc                            |         r3 = 0x543e0;
    0x0002a1cc str r2, [r3]                          |         *(r3) = r2;
    0x0002a1ce pop {r3, r4, r5, r6, r7, pc}          |         
    0x0002a1d0 ldr r0, [r5]                          |         r0 = *(r5);
    0x0002a1d2 bl 0x26fdc                            |         r0 = zbx_strerror ();
    0x0002a1d6 mov r2, r0                            |         r2 = r0;
    0x0002a1d8 ldr r0, [pc, 0x38]                    |         
    0x0002a1da mov r1, r6                            |         r1 = r6;
    0x0002a1dc add r0, pc                            |         r0 = 0x543f4;
    0x0002a1de bl 0x38c64                            |         zbx_error ();
    0x0002a1e2 b 0x2a1c2                             |         
                                                     |     }
                                                     | label_1:
    0x0002a1e4 blx 0xc15c                            |     r0 = fcn_0000c15c ();
    0x0002a1e8 ldr r0, [r0]                          |     r0 = *(r0);
    0x0002a1ea mov r4, r6                            |     r4 = r6;
    0x0002a1ec ldr r5, [r7]                          |     r5 = *(r7);
    0x0002a1ee bl 0x26fdc                            |     zbx_strerror ();
    0x0002a1f2 ldr r1, [pc, 0x24]                    |     
    0x0002a1f4 mov r2, r0                            |     r2 = r0;
    0x0002a1f6 mov r0, r5                            |     r0 = r5;
    0x0002a1f8 add r1, pc                            |     r1 = 0x54416;
    0x0002a1fa bl 0x396b0                            |     zbx_dsprintf ()
    0x0002a1fe str r0, [r7]                          |     *(r7) = r0;
    0x0002a200 b 0x2a18c                             |     goto label_0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x12234 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.zbx_procstat_get_util ()                         | void zbx_procstat_get_util (int16_t arg_0h, int16_t arg_4h, int16_t arg_10h, int16_t arg_20h, int16_t arg_28h, int16_t arg_2ch, int16_t arg_48h, int16_t arg_4ch, int16_t arg_54h, int16_t arg_58h, int16_t arg_5ch, int16_t arg_250h, int16_t arg_298h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00012234 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00012238 mov r5, r0                                        |     r5 = r0;
    0x0001223a ldr.w r4, [pc, 0x410]                             |     r4 = *(0x0001264c);
    0x0001223e mov r7, r2                                        |     r7 = r2;
    0x00012240 mov r6, r1                                        |     r6 = r1;
    0x00012242 ldr.w r3, [pc, 0x40c]                             |     
    0x00012246 add r4, pc                                        |     r4 += pc;
    0x00012248 vpush {d8}                                        |     __asm ("vpush {d8}");
    0x0001224c sub sp, 0x1c                                      |     
    0x0001224e ldr.w sb, [pc, 0x404]                             |     
    0x00012252 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x00012254 ldr.w sl, [sp, 0x4c]                              |     sl = *(arg_4ch);
    0x00012258 add sb, pc                                        |     sb = 0x248b2;
    0x0001225a ldr r3, [r3]                                      |     r3 = *(0x12652);
    0x0001225c str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001225e mov.w r3, 0                                       |     r3 = 0;
    0x00012262 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x00012264 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00012266 ldr r3, [pc, 0x3f0]                               |     r3 = *(0x1265a);
    0x00012268 ldr.w r8, [sb, r3]                                |     r8 = *(0x248b2);
    0x0001226c ldr r3, [sp, 0x58]                                |     r3 = *(arg_58h);
    0x0001226e ldr.w r0, [r8]                                    |     r0 = *(0x248b2);
    0x00012272 str r3, [sp, 8]                                   |     var_8h = r3;
    0x00012274 ldr r3, [sp, 0x5c]                                |     r3 = *(arg_5ch);
    0x00012276 adds r0, 0xc                                      |     r0 += 0xc;
    0x00012278 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001227a bl 0x2b40c                                        |     zbx_dshm_lock ();
    0x0001227e bl 0x11e9c                                        |     fcn_00011e9c (r0, r1, r2);
    0x00012282 ldr.w r3, [r8]                                    |     
    0x00012286 ldr r2, [pc, 0x3d4]                               |     
    0x00012288 ldr r3, [r3, 0xc]                                 |     r3 = *(0x248be);
    0x0001228a add r2, pc                                        |     r2 = 0x248ec;
    0x0001228c ldr r4, [r2, 4]                                   |     r4 = *(0x248f0);
    0x0001228e adds r3, 1                                        |     r3++;
                                                                 |     if (r3 == 1) {
    0x00012290 beq 0x122ea                                       |         goto label_4;
                                                                 |     }
    0x00012292 ldr r3, [r4]                                      |     r3 = *(r4);
    0x00012294 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00012296 beq.w 0x12482                                     |         goto label_5;
                                                                 |     }
                                                                 |     do {
    0x0001229a add.w fp, r4, r3                                  |         
    0x0001229e ldr.w r1, [fp]                                    |         r1 = *(fp);
                                                                 |         if (r1 != 0) {
    0x000122a2 cbz r1, 0x122a6                                   |             
    0x000122a4 add r1, r4                                        |             r1 += r4;
                                                                 |         }
    0x000122a6 mov r0, r5                                        |         r0 = r5;
    0x000122a8 bl 0x3b0b4                                        |         r0 = zbx_strcmp_null ();
                                                                 |         if (r0 == 0) {
    0x000122ac cbnz r0, 0x122dc                                  |             
    0x000122ae ldr.w r1, [fp, 4]                                 |             r1 = *(arg_4h);
                                                                 |             if (r1 != 0) {
    0x000122b2 cbz r1, 0x122b6                                   |                 
    0x000122b4 add r1, r4                                        |                 r1 += r4;
                                                                 |             }
    0x000122b6 mov r0, r6                                        |             r0 = r6;
    0x000122b8 bl 0x3b0b4                                        |             r0 = zbx_strcmp_null ();
                                                                 |             if (r0 != 0) {
    0x000122bc cbnz r0, 0x122dc                                  |                 goto label_6;
                                                                 |             }
    0x000122be ldr.w r1, [fp, 8]                                 |             r1 = *(arg_48h);
                                                                 |             if (r1 != 0) {
    0x000122c2 cbz r1, 0x122c6                                   |                 
    0x000122c4 add r1, r4                                        |                 r1 += r4;
                                                                 |             }
    0x000122c6 mov r0, r7                                        |             r0 = r7;
    0x000122c8 bl 0x3b0b4                                        |             r0 = zbx_strcmp_null ();
                                                                 |             if (r0 != 0) {
    0x000122cc cbnz r0, 0x122dc                                  |                 goto label_6;
                                                                 |             }
    0x000122ce ldrd r1, r2, [fp, 0x10]                           |             __asm ("ldrd r1, r2, [arg_10h]");
    0x000122d2 ldr r3, [sp, 4]                                   |             r3 = var_4h;
    0x000122d4 cmp sl, r2                                        |             
    0x000122d6 it eq                                             |             
                                                                 |             if (sl == r2) {
    0x000122d8 cmpeq r3, r1                                      |                 __asm ("cmpeq r3, r1");
                                                                 |             }
                                                                 |             if (sl == r2) {
    0x000122da beq 0x1232a                                       |                 goto label_7;
                                                                 |             }
                                                                 |         }
                                                                 | label_6:
    0x000122dc ldr.w r3, [fp, 0x2c]                              |         r3 = *(arg_2ch);
    0x000122e0 cmp r3, 0                                         |         
    0x000122e2 bne 0x1229a                                       |         
                                                                 |     } while (r3 != 0);
    0x000122e4 ldr r3, [pc, 0x378]                               |     
    0x000122e6 add r3, pc                                        |     r3 = 0x2494a;
    0x000122e8 ldr r4, [r3, 4]                                   |     r4 = *(0x2494e);
                                                                 | label_4:
    0x000122ea cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x000122ec beq.w 0x12482                                     |         goto label_5;
                                                                 |     }
    0x000122f0 ldr r3, [r4]                                      |     r3 = *(r4);
    0x000122f2 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000122f4 beq.w 0x12482                                     |         goto label_5;
                                                                 |     }
    0x000122f8 add r3, r4                                        |     r3 += r4;
    0x000122fa movs r2, 0                                        |     r2 = 0;
                                                                 | label_1:
    0x000122fc ldr r3, [r3, 0x2c]                                |     r3 = *((r3 + 0x2c));
    0x000122fe adds r2, 1                                        |     r2++;
    0x00012300 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00012302 bne.w 0x12586                                     |         goto label_8;
                                                                 |     }
    0x00012306 cmp.w r2, 0x400                                   |     
                                                                 |     if (r2 != 0x400) {
    0x0001230a bne.w 0x12482                                     |         goto label_5;
                                                                 |     }
    0x0001230e ldr r4, [sp, 0xc]                                 |     r4 = var_ch;
    0x00012310 movw r1, 0x41d                                    |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00012314 ldr r3, [pc, 0x34c]                               |     
    0x00012316 mov.w r5, -1                                      |     r5 = -1;
    0x0001231a ldr r0, [pc, 0x34c]                               |     
    0x0001231c ldr r2, [r4]                                      |     r2 = *(r4);
    0x0001231e add r3, pc                                        |     r3 = 0x24986;
    0x00012320 add r0, pc                                        |     r0 = 0x2498e;
    0x00012322 bl 0x35d28                                        |     zbx_strdup2 ();
    0x00012326 str r0, [r4]                                      |     *(r4) = r0;
    0x00012328 b 0x1242c                                         |     goto label_0;
                                                                 | label_7:
    0x0001232a blx 0xbdb4                                        |     fcn_0000bdb4 ();
    0x0001232e ldr.w r5, [fp, 0x28]                              |     r5 = *(arg_28h);
    0x00012332 str.w r0, [fp, 0x20]                              |     __asm ("str.w r0, [arg_20h]");
    0x00012336 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x00012338 bne.w 0x1258a                                     |         goto label_9;
                                                                 |     }
    0x0001233c ldr.w r2, [fp, 0x1c]                              |     r2 = *(arg_5ch);
    0x00012340 cmp r2, 1                                         |     
                                                                 |     if (r2 <= 1) {
    0x00012342 ble.w 0x12580                                     |         goto label_3;
                                                                 |     }
    0x00012346 ldr r3, [sp, 0x50]                                |     r3 = *(arg_10h);
    0x00012348 ldr.w r1, [fp, 0x18]                              |     r1 = *(arg_58h);
    0x0001234c cmp r2, r3                                        |     
    0x0001234e it le                                             |     
                                                                 |     if (r2 > r3) {
    0x00012350 addle r3, r2, -1                                  |         r3 = r2 + -1;
                                                                 |     }
    0x00012354 add r2, r1                                        |     r2 += r1;
    0x00012356 add.w r4, r2, -1                                  |     r4 = r2 + -1;
    0x0001235a it le                                             |     
                                                                 |     if (r2 > r3) {
    0x0001235c strle r3, [sp, 0x50]                              |         *(arg_10h) = r3;
                                                                 |     }
    0x0001235e ldr r3, [sp, 0x50]                                |     r3 = *(arg_10h);
    0x00012360 cmp.w r4, 0x384                                   |     
    0x00012364 it gt                                             |     
                                                                 |     if (r4 > 0x384) {
    0x00012366 subwgt r4, r2, 0x386                              |         __asm ("subwgt r4, r2, case.0x3207a.11");
                                                                 |     }
    0x0001236a lsls r0, r4, 1                                    |     r0 = r4 << 1;
    0x0001236c subs r7, r4, r3                                   |     r7 = r4 - r3;
    0x0001236e ldr r3, [sp, 0x54]                                |     r3 = *(arg_54h);
    0x00012370 it mi                                             |     
                                                                 |     if (r7 < r4) {
    0x00012372 addwmi r7, r7, 0x385                              |         __asm ("addwmi r7, r7, case.0x3207a.11");
                                                                 |     }
    0x00012376 lsls r2, r7, 1                                    |     r2 = r7 << 1;
    0x00012378 ands r6, r3, 1                                    |     r6 = r3 & 1;
    0x0001237c it eq                                             |     
                                                                 |     if (r6 != r3) {
    0x0001237e moveq sl, r6                                      |         sl = r6;
                                                                 |     }
                                                                 |     if (r6 != r3) {
    0x00012380 beq 0x123a2                                       |         
    0x00012382 adds r1, r0, r4                                   |         r1 = r0 + r4;
    0x00012384 add.w ip, r2, r7                                  |         
    0x00012388 add.w r1, fp, r1, lsl 3                           |         r1 = fp + (r1 << 3);
    0x0001238c add.w ip, fp, ip, lsl 3                           |         
    0x00012390 ldrd r6, r3, [r1, 0x30]                           |         __asm ("ldrd r6, r3, [r1, 0x30]");
    0x00012394 ldr.w r1, [ip, 0x30]                              |         r1 = *((ip + 0x30));
    0x00012398 subs r6, r6, r1                                   |         r6 -= r1;
    0x0001239a ldr.w r1, [ip, 0x34]                              |         r1 = *((ip + 0x34));
    0x0001239e sbc.w sl, r3, r1                                  |         __asm ("sbc.w sl, r3, r1");
                                                                 |     }
    0x000123a2 ldr r3, [sp, 0x54]                                |     r3 = *(arg_54h);
    0x000123a4 lsls r3, r3, 0x1e                                 |     r3 <<= 0x1e;
    0x000123a6 bmi 0x12458                                       |     
                                                                 |     while (1) {
    0x000123a8 add r0, r4                                        |         r0 += r4;
    0x000123aa add r2, r7                                        |         r2 += r7;
    0x000123ac add.w r0, fp, r0, lsl 3                           |         r0 = fp + (r0 << 3);
    0x000123b0 add.w r3, fp, r2, lsl 3                           |         r3 = fp + (r2 << 3);
    0x000123b4 ldrd r2, r4, [r0, 0x40]                           |         __asm ("ldrd r2, r4, [r0, 0x40]");
    0x000123b8 mov.w ip, 0xca00                                  |         
    0x000123bc ldrd r3, r1, [r3, 0x40]                           |         __asm ("ldrd r3, r1, [r3, 0x40]");
    0x000123c0 movt ip, 0x3b9a                                   |         
    0x000123c4 movs r0, 2                                        |         r0 = 2;
    0x000123c6 asrs r7, r4, 0x1f                                 |         r7 = r4 >> 0x1f;
    0x000123c8 subs r4, r4, r1                                   |         r4 -= r1;
    0x000123ca sub.w r3, r2, r3                                  |         r3 = r2 - r3;
    0x000123ce sbc.w r7, r7, r1, asr 31                          |         __asm ("sbc.w r7, r7, r1, asr 31");
    0x000123d2 smlal r4, r7, r3, ip                              |         __asm ("smlal r4, r7, r3, ip");
    0x000123d6 blx 0xbe88                                        |         dup2 ();
    0x000123da movs r1, 0xe8                                     |         r1 = 0xe8;
    0x000123dc mov.w r3, 0x1000                                  |         r3 = case.0x3207a.11;
    0x000123e0 mul r1, r6, r1                                    |         r1 = r6 * r1;
    0x000123e4 movt r3, 0xd4a5                                   |         r3 = (r3 & 0xFFFF) | 0xNaN0000;
    0x000123e8 mov sb, r0                                        |         sb = r0;
    0x000123ea mla r1, r3, sl, r1                                |         __asm ("mla r1, r3, sl, r1");
    0x000123ee umull r0, r3, r6, r3                              |         r0:r3 = r6 * r3;
    0x000123f2 add r1, r3                                        |         r1 += r3;
    0x000123f4 bl 0x4152c                                        |         r0 = fcn_0004152c (r0, r1, r2);
    0x000123f8 vmov d8, r0, r1                                   |         __asm ("vmov d8, r0, r1");
    0x000123fc mul r1, sb, r7                                    |         r1 = sb * r7;
    0x00012400 asr.w r3, sb, 0x1f                                |         r3 = sb >> 0x1f;
    0x00012404 mla r1, r4, r3, r1                                |         __asm ("mla r1, r4, r3, r1");
    0x00012408 umull r0, r4, sb, r4                              |         r0:r4 = sb * r4;
    0x0001240c add r1, r4                                        |         r1 += r4;
    0x0001240e bl 0x4152c                                        |         r0 = fcn_0004152c (r0, r1, r2);
    0x00012412 vmov d16, r0, r1                                  |         __asm ("vmov d16, r0, r1");
    0x00012416 vdiv.f64 d0, d8, d16                              |         __asm ("vdiv.f64 d0, d8, d16");
    0x0001241a blx 0xc120                                        |         fcn_0000c120 ();
    0x0001241e vmov.f64 d17, 1.000000e+01                        |         __asm ("vmov.f64 d17, 1");
    0x00012422 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00012424 vdiv.f64 d16, d0, d17                             |         __asm ("vdiv.f64 d16, d0, d17");
    0x00012428 vstr d16, [r3]                                    |         __asm ("vstr d16, [r3]");
                                                                 | label_0:
    0x0001242c ldr.w r0, [r8]                                    |         r0 = *(r8);
    0x00012430 adds r0, 0xc                                      |         r0 += 0xc;
    0x00012432 bl 0x2b41c                                        |         zbx_dshm_unlock ();
    0x00012436 ldr r2, [pc, 0x234]                               |         
    0x00012438 ldr r3, [pc, 0x214]                               |         r3 = *(0x12650);
    0x0001243a add r2, pc                                        |         r2 = 0x24aac;
    0x0001243c ldr r3, [r2, r3]                                  |         r3 = *(0x24aac);
    0x0001243e ldr r2, [r3]                                      |         r2 = *(0x24aac);
    0x00012440 ldr r3, [sp, 0x14]                                |         r3 = var_14h;
    0x00012442 eors r2, r3                                       |         r2 ^= r3;
    0x00012444 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00012448 bne.w 0x12628                                     |             goto label_10;
                                                                 |         }
    0x0001244c mov r0, r5                                        |         r0 = r5;
    0x0001244e add sp, 0x1c                                      |         
    0x00012450 vpop {d8}                                         |         __asm ("vpop {d8}");
    0x00012454 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00012458 adds r1, r0, r4                                   |         r1 = r0 + r4;
    0x0001245a add.w ip, r2, r7                                  |         
    0x0001245e add.w r1, fp, r1, lsl 3                           |         r1 = fp + (r1 << 3);
    0x00012462 add.w ip, fp, ip, lsl 3                           |         
    0x00012466 ldrd r3, lr, [r1, 0x38]                           |         __asm ("ldrd r3, lr, [r1, 0x38]");
    0x0001246a ldr.w r1, [ip, 0x38]                              |         r1 = *((ip + 0x38));
    0x0001246e subs r1, r3, r1                                   |         r1 = r3 - r1;
    0x00012470 ldr.w r3, [ip, 0x3c]                              |         r3 = *((ip + 0x3c));
    0x00012474 sbc.w lr, lr, r3                                  |         __asm ("sbc.w lr, lr, r3");
    0x00012478 adds r1, r1, r6                                   |         r1 += r6;
    0x0001247a adc.w sl, sl, lr                                  |         __asm ("adc.w sl, sl, lr");
    0x0001247e mov r6, r1                                        |         r6 = r1;
    0x00012480 b 0x123a8                                         |         
                                                                 |     }
                                                                 | label_5:
    0x00012482 ldr r3, [pc, 0x1ec]                               |     
    0x00012484 movs r2, 0                                        |     r2 = 0;
    0x00012486 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00012488 ldr.w r3, [sb, r3]                                |     r3 = *((sb + r3));
    0x0001248c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0001248e ldr r3, [r3]                                      |     r3 = *(0x12672);
    0x00012490 cmp r3, 3                                         |     
    0x00012492 bgt.w 0x125a8                                     |     
                                                                 |     while (1) {
    0x00012496 ldr.w sb, [r8]                                    |         sb = *(r8);
    0x0001249a ldr.w r4, [sb, 0x10]                              |         r4 = *((sb + 0x10));
    0x0001249e clz r4, r4                                        |         r4 &= r4;
    0x000124a2 lsrs r4, r4, 5                                    |         r4 >>= 5;
    0x000124a4 lsls r4, r4, 4                                    |         r4 <<= 4;
                                                                 |         if (r5 != 0) {
    0x000124a6 cbz r5, 0x124b8                                   |             
    0x000124a8 mov r0, r5                                        |             r0 = r5;
    0x000124aa blx 0xc114                                        |             r0 = fcn_0000c114 ();
    0x000124ae add.w r3, r0, 8                                   |             r3 = r0 + 8;
    0x000124b2 bic r3, r3, 7                                     |             r3 = BIT_MASK (r3, 7);
    0x000124b6 add r4, r3                                        |             r4 += r3;
                                                                 |         }
                                                                 |         if (r6 != 0) {
    0x000124b8 cbz r6, 0x124ca                                   |             
    0x000124ba mov r0, r6                                        |             r0 = r6;
    0x000124bc blx 0xc114                                        |             r0 = fcn_0000c114 ();
    0x000124c0 add.w r3, r0, 8                                   |             r3 = r0 + 8;
    0x000124c4 bic r3, r3, 7                                     |             r3 = BIT_MASK (r3, 7);
    0x000124c8 add r4, r3                                        |             r4 += r3;
                                                                 |         }
                                                                 |         if (r7 != 0) {
    0x000124ca cbz r7, 0x124dc                                   |             
    0x000124cc mov r0, r7                                        |             r0 = r7;
    0x000124ce blx 0xc114                                        |             r0 = fcn_0000c114 ();
    0x000124d2 add.w r3, r0, 8                                   |             r3 = r0 + 8;
    0x000124d6 bic r3, r3, 7                                     |             r3 = BIT_MASK (r3, 7);
    0x000124da add r4, r3                                        |             r4 += r3;
                                                                 |         }
    0x000124dc ldr r3, [pc, 0x194]                               |         
    0x000124de add.w r2, r4, 0x5480                              |         r2 = r4 + case.0x3207a.11;
    0x000124e2 adds r2, 0x28                                     |         r2 += 0x28;
    0x000124e4 add r3, pc                                        |         r3 = 0x24b5c;
    0x000124e6 ldr.w fp, [r3, 4]                                 |         fp = *(0x24b60);
    0x000124ea cmp.w fp, 0                                       |         
                                                                 |         if (fp == 0) {
    0x000124ee beq 0x125ba                                       |             goto label_11;
                                                                 |         }
    0x000124f0 ldrd r4, r1, [fp, 4]                              |         __asm ("ldrd r4, r1, [arg_4h]");
    0x000124f4 adds r0, r2, r4                                   |         r0 = r2 + r4;
    0x000124f6 cmp r1, r0                                        |         
                                                                 |         if (r1 <= r0) {
    0x000124f8 blo 0x125ba                                       |             goto label_11;
                                                                 |         }
                                                                 | label_2:
    0x000124fa add.w r2, r4, 0x5480                              |         r2 = r4 + case.0x3207a.11;
    0x000124fe adds r2, 0x28                                     |         r2 += 0x28;
    0x00012500 cmp r2, r1                                        |         
                                                                 |         if (r2 > r1) {
    0x00012502 bhi.w 0x1262c                                     |             goto label_12;
                                                                 |         }
    0x00012506 add.w sb, fp, r4                                  |         sb = fp + r4;
    0x0001250a str.w r2, [fp, 4]                                 |         __asm ("str.w r2, [arg_4h]");
                                                                 |         if (r4 == 0) {
    0x0001250e cbnz r4, 0x12512                                  |             
    0x00012510 mov sb, r4                                        |             sb = r4;
                                                                 |         }
    0x00012512 ldr r3, [pc, 0x164]                               |         
    0x00012514 movw r2, 0x54a8                                   |         r2 = (r2 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00012518 movs r1, 0                                        |         r1 = 0;
    0x0001251a mov r0, sb                                        |         r0 = sb;
    0x0001251c add r3, pc                                        |         r3 = 0x24b9a;
    0x0001251e str r3, [sp, 8]                                   |         var_8h = r3;
    0x00012520 blx 0xc1ac                                        |         statvfs64 ();
    0x00012524 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00012526 ldr r0, [r3, 4]                                   |         r0 = *(0x24b9e);
                                                                 |         if (r5 != 0) {
    0x00012528 cbz r5, 0x12536                                   |             
    0x0001252a mov r1, r5                                        |             r1 = r5;
    0x0001252c bl 0x11f4c                                        |             fcn_00011f4c (r0, r1, r2);
    0x00012530 ldr r3, [sp, 8]                                   |             r3 = var_8h;
    0x00012532 mov r5, r0                                        |             r5 = r0;
    0x00012534 ldr r0, [r3, 4]                                   |             r0 = *((r3 + 4));
                                                                 |         }
    0x00012536 str.w r5, [sb]                                    |         __asm ("str.w r5, [sb]");
                                                                 |         if (r6 != 0) {
    0x0001253a cbz r6, 0x1254a                                   |             
    0x0001253c mov r1, r6                                        |             r1 = r6;
    0x0001253e bl 0x11f4c                                        |             fcn_00011f4c (r0, r1, r2);
    0x00012542 ldr r2, [pc, 0x138]                               |             
    0x00012544 mov r6, r0                                        |             r6 = r0;
    0x00012546 add r2, pc                                        |             r2 = 0x24bc8;
    0x00012548 ldr r0, [r2, 4]                                   |             r0 = *(0x24bcc);
                                                                 |         }
    0x0001254a str.w r6, [sb, 4]                                 |         __asm ("str.w r6, [sb, 4]");
                                                                 |         if (r7 != 0) {
    0x0001254e cbz r7, 0x12558                                   |             
    0x00012550 mov r1, r7                                        |             r1 = r7;
    0x00012552 bl 0x11f4c                                        |             r0 = fcn_00011f4c (r0, r1, r2);
    0x00012556 mov r7, r0                                        |             r7 = r0;
                                                                 |         }
    0x00012558 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x0001255a movs r0, 0                                        |         r0 = 0;
    0x0001255c str.w r7, [sb, 8]                                 |         __asm ("str.w r7, [sb, 8]");
    0x00012560 strd r3, sl, [sb, 0x10]                           |         __asm ("strd r3, sl, [sb, 0x10]");
    0x00012564 blx 0xbdb4                                        |         fcn_0000bdb4 ();
    0x00012568 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0001256a ldr.w r1, [fp]                                    |         r1 = *(fp);
    0x0001256e str.w r0, [sb, 0x20]                              |         __asm ("str.w r0, [sb, 0x20]");
    0x00012572 ldr r2, [r3]                                      |         r2 = *(r3);
    0x00012574 str.w r1, [sb, 0x2c]                              |         __asm ("str.w r1, [sb, 0x2c]");
    0x00012578 str.w r4, [fp]                                    |         __asm ("str.w r4, [fp]");
    0x0001257c cmp r2, 3                                         |         
                                                                 |         if (r2 > 3) {
    0x0001257e bgt 0x125e6                                       |             goto label_13;
                                                                 |         }
                                                                 | label_3:
    0x00012580 mov.w r5, -1                                      |         r5 = -1;
    0x00012584 b 0x1242c                                         |         goto label_0;
                                                                 | label_8:
    0x00012586 add r3, r4                                        |         r3 += r4;
    0x00012588 b 0x122fc                                         |         goto label_1;
                                                                 | label_9:
    0x0001258a ldr r6, [sp, 0xc]                                 |         r6 = var_ch;
    0x0001258c rsbs r0, r5, 0                                    |         r0 = r5 - ;
    0x0001258e mov.w r5, -1                                      |         r5 = -1;
    0x00012592 ldr r4, [r6]                                      |         r4 = *(r6);
    0x00012594 bl 0x26fdc                                        |         zbx_strerror ();
    0x00012598 ldr r1, [pc, 0xe4]                                |         
    0x0001259a mov r2, r0                                        |         r2 = r0;
    0x0001259c mov r0, r4                                        |         r0 = r4;
    0x0001259e add r1, pc                                        |         r1 = 0x24c22;
    0x000125a0 bl 0x396b0                                        |         zbx_dsprintf ()
    0x000125a4 str r0, [r6]                                      |         *(r6) = r0;
    0x000125a6 b 0x1242c                                         |         goto label_0;
    0x000125a8 ldr r2, [pc, 0xd8]                                |         
    0x000125aa movs r0, 4                                        |         r0 = 4;
    0x000125ac ldr r1, [pc, 0xd8]                                |         
    0x000125ae add r2, pc                                        |         r2 = 0x24c36;
    0x000125b0 adds r2, 0x24                                     |         r2 += 0x24;
    0x000125b2 add r1, pc                                        |         r1 = 0x24c3e;
    0x000125b4 bl 0x271b0                                        |         zbx_zabbix_log ();
    0x000125b8 b 0x12496                                         |         
                                                                 |     }
                                                                 | label_11:
    0x000125ba mov r0, fp                                        |     r0 = fp;
    0x000125bc str r2, [sp, 8]                                   |     var_8h = r2;
    0x000125be bl 0x11e40                                        |     fcn_00011e40 (r0);
    0x000125c2 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x000125c4 adds r1, r2, r0                                   |     r1 = r2 + r0;
    0x000125c6 add.w r0, sb, 0xc                                 |     r0 = sb + 0xc;
    0x000125ca add r2, sp, 0x10                                  |     r2 += var_10h;
    0x000125cc bl 0x2b540                                        |     zbx_dshm_realloc ();
    0x000125d0 adds r0, 1                                        |     r0++;
                                                                 |     if (r0 != 1) {
    0x000125d2 beq 0x125f8                                       |         
    0x000125d4 bl 0x11e9c                                        |         fcn_00011e9c (r0, r1, r2);
    0x000125d8 ldr r3, [pc, 0xb0]                                |         
    0x000125da add r3, pc                                        |         r3 = 0x24c6a;
    0x000125dc ldr.w fp, [r3, 4]                                 |         fp = *(0x24c6e);
    0x000125e0 ldrd r4, r1, [fp, 4]                              |         __asm ("ldrd r4, r1, [arg_4h]");
    0x000125e4 b 0x124fa                                         |         goto label_2;
                                                                 | label_13:
    0x000125e6 ldr r2, [pc, 0xa8]                                |         
    0x000125e8 movs r0, 4                                        |         r0 = 4;
    0x000125ea ldr r1, [pc, 0xa8]                                |         
    0x000125ec add r2, pc                                        |         r2 = 0x24c82;
    0x000125ee add r1, pc                                        |         r1 = 0x24c88;
    0x000125f0 adds r2, 0x24                                     |         r2 += 0x24;
    0x000125f2 bl 0x271b0                                        |         zbx_zabbix_log ();
    0x000125f6 b 0x12580                                         |         goto label_3;
                                                                 |     }
    0x000125f8 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000125fa ldr r3, [r3]                                      |     r3 = *(r3);
    0x000125fc cmp r3, 0                                         |     
                                                                 |     if (r3 > 0) {
    0x000125fe ble 0x1260c                                       |         
    0x00012600 ldr r1, [pc, 0x94]                                |         
    0x00012602 movs r0, 1                                        |         r0 = 1;
    0x00012604 ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x00012606 add r1, pc                                        |         r1 = 0x24ca2;
    0x00012608 bl 0x271b0                                        |         zbx_zabbix_log ();
                                                                 |     }
    0x0001260c ldr r0, [sp, 0x10]                                |     r0 = var_10h;
                                                                 |     if (r0 != 0) {
    0x0001260e cbz r0, 0x12618                                   |         
    0x00012610 blx 0xbd14                                        |         gai_strerror ();
    0x00012614 movs r3, 0                                        |         r3 = 0;
    0x00012616 str r3, [sp, 0x10]                                |         var_10h = r3;
                                                                 |     }
    0x00012618 ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x0001261c adds r0, 0xc                                      |     r0 += 0xc;
    0x0001261e bl 0x2b41c                                        |     zbx_dshm_unlock ();
    0x00012622 movs r0, 1                                        |     r0 = 1;
    0x00012624 blx 0xc0f0                                        |     fcn_0000c0f0 ();
                                                                 | label_10:
    0x00012628 blx 0xbe48                                        |     fcn_0000be48 ();
                                                                 | label_12:
    0x0001262c ldr r0, [pc, 0x6c]                                |     
    0x0001262e ldr r3, [pc, 0x70]                                |     
    0x00012630 ldr r2, [pc, 0x70]                                |     
    0x00012632 ldr r1, [pc, 0x74]                                |     
    0x00012634 add r0, pc                                        |     r0 = 0x24cd4;
    0x00012636 add r3, pc                                        |     r3 = 0x24cdc;
    0x00012638 add r2, pc                                        |     r2 = 0x24ce0;
    0x0001263a add r1, pc                                        |     r1 = 0x24ce8;
    0x0001263c bl 0x38c64                                        |     zbx_error ();
    0x00012640 bl 0x2b778                                        |     zbx_backtrace ();
    0x00012644 movs r0, 1                                        |     r0 = 1;
    0x00012646 blx 0xc0f0                                        |     fcn_0000c0f0 ();
    0x0001264a nop                                               |     
    0x0001264c add r1, sp, 0x298                                 |     r1 += arg_298h;
    0x0001264e movs r4, r0                                       |     r4 = r0;
    0x00012650 lsls r4, r2, 0xc                                  |     r4 = r2 << 0xc;
    0x00012652 movs r0, r0                                       |     
    0x00012654 add r1, sp, 0x250                                 |     r1 += arg_250h;
    0x00012656 movs r4, r0                                       |     r4 = r0;
    0x00012658 lsls r4, r4, 0xd                                  |     r4 <<= 0xd;
    0x0001265a movs r0, r0                                       |     
    0x0001265c invalid                                           |     
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x36fc8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_validate_interval ()                 | void zbx_validate_interval (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_10h_2;
                                                         |     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_2ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00036fc8 blmi 0xfe649a2c                           |     __asm ("blmi 0xfe649a2c");
    0x00036fcc push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00036fd0 sub sp, 0x34                              |     
    0x00036fd2 add r2, pc                                |     r2 += pc;
    0x00036fd4 mov r5, r0                                |     r5 = r0;
    0x00036fd6 mov r8, r1                                |     r8 = r1;
    0x00036fd8 ldr r3, [r2, r3]                          |     r3 = *((r2 + r3));
    0x00036fda ldr r3, [r3]                              |     r3 = *(r3);
    0x00036fdc str r3, [sp, 0x2c]                        |     var_2ch = r3;
    0x00036fde mov.w r3, 0                               |     r3 = 0;
    0x00036fe2 ldrb r3, [r0]                             |     r3 = *(r0);
    0x00036fe4 cmp r3, 0x7b                              |     
                                                         |     if (r3 == 0x7b) {
    0x00036fe6 bne 0x3702c                               |         
    0x00036fe8 ldrb r3, [r0, 1]                          |         r3 = *((r0 + 1));
    0x00036fea cmp r3, 0x24                              |         
                                                         |         if (r3 != 0x24) {
    0x00036fec bne 0x3702c                               |             goto label_14;
                                                         |         }
    0x00036fee movs r2, 0                                |         r2 = 0;
    0x00036ff0 add r3, sp, 0x1c                          |         r3 += var_1ch;
    0x00036ff2 str r2, [sp]                              |         *(sp) = r2;
    0x00036ff4 add r1, sp, 0x14                          |         r1 += var_14h;
    0x00036ff6 add r2, sp, 0x18                          |         r2 += var_18h;
    0x00036ff8 bl 0x3b0cc                                |         r0 = zbx_user_macro_parse ();
                                                         |         if (r0 != 0) {
    0x00036ffc cbnz r0, 0x3702c                          |             goto label_14;
                                                         |         }
    0x00036ffe ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x00037000 adds r3, 1                                |         r3++;
    0x00037002 adds r4, r5, r3                           |         r4 = r5 + r3;
    0x00037004 str r3, [sp, 0x10]                        |         var_10h = r3;
    0x00037006 ldrb r3, [r5, r3]                         |         r3 = *((r5 + r3));
                                                         |         if (r3 == 0) {
    0x00037008 cbnz r3, 0x37026                          |             
                                                         | label_1:
    0x0003700a ldr r2, [pc, 0x224]                       |             
    0x0003700c ldr r3, [pc, 0x21c]                       |             r3 = *(0x3722c);
    0x0003700e add r2, pc                                |             r2 = 0x6e244;
    0x00037010 ldr r3, [r2, r3]                          |             r3 = *(0x6e244);
    0x00037012 ldr r2, [r3]                              |             r2 = *(0x6e244);
    0x00037014 ldr r3, [sp, 0x2c]                        |             r3 = var_2ch;
    0x00037016 eors r2, r3                               |             r2 ^= r3;
    0x00037018 mov.w r3, 0                               |             r3 = 0;
                                                         |             if (r2 != r3) {
    0x0003701c bne.w 0x37222                             |                 goto label_15;
                                                         |             }
    0x00037020 add sp, 0x34                              |             
    0x00037022 pop.w {r4, r5, r6, r7, r8, sb, pc}        |             
                                                         |         }
    0x00037026 cmp r3, 0x3b                              |         
                                                         |         if (r3 == 0x3b) {
    0x00037028 beq.w 0x371b0                             |             goto label_16;
                                                         |         }
                                                         |     }
                                                         | label_14:
    0x0003702c add r3, sp, 8                             |     r3 += var_8h;
    0x0003702e movs r2, 0x3b                             |     r2 = 0x3b;
    0x00037030 add r1, sp, 0x10                          |     r1 += var_10h;
    0x00037032 mov r0, r5                                |     r0 = r5;
    0x00037034 bl 0x36784                                |     r0 = fcn_00036784 (r0, r1, r2, r3);
    0x00037038 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0003703a bne.w 0x371e6                             |         goto label_17;
                                                         |     }
    0x0003703e ldr r4, [sp, 0x10]                        |     r4 = var_10h;
    0x00037040 ldrb r3, [r5, r4]                         |     r3 = *((r5 + r4));
    0x00037042 add r4, r5                                |     r4 += r5;
    0x00037044 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00037046 beq.w 0x37194                             |         goto label_18;
                                                         |     }
                                                         | label_10:
    0x0003704a ldr.w sb, [pc, 0x1e8]                     |     
    0x0003704e add r7, sp, 0x18                          |     r7 += var_18h;
    0x00037050 add sb, pc                                |     sb = 0x6e28a;
                                                         |     do {
                                                         | label_0:
    0x00037052 ldrb r3, [r4, 1]                          |         r3 = *((r4 + 1));
    0x00037054 adds r5, r4, 1                            |         r5 = r4 + 1;
    0x00037056 cmp r3, 0x7b                              |         
                                                         |         if (r3 != 0x7b) {
    0x00037058 bne 0x370fc                               |             goto label_19;
                                                         |         }
    0x0003705a ldrb r3, [r4, 2]                          |         r3 = *((r4 + 2));
    0x0003705c cmp r3, 0x24                              |         
                                                         |         if (r3 != 0x24) {
    0x0003705e bne 0x370fc                               |             goto label_19;
                                                         |         }
    0x00037060 add r6, sp, 0x1c                          |         r6 += var_1ch;
    0x00037062 movs r4, 0                                |         r4 = 0;
    0x00037064 mov r3, r6                                |         r3 = r6;
    0x00037066 mov r2, r7                                |         r2 = r7;
    0x00037068 add r1, sp, 0x14                          |         r1 += var_14h;
    0x0003706a mov r0, r5                                |         r0 = r5;
    0x0003706c str r4, [sp]                              |         *(sp) = r4;
    0x0003706e bl 0x3b0cc                                |         r0 = zbx_user_macro_parse ();
    0x00037072 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00037074 bne 0x370fc                               |             goto label_19;
                                                         |         }
    0x00037076 ldr r4, [sp, 0x14]                        |         r4 = var_14h;
    0x00037078 adds r4, 1                                |         r4++;
    0x0003707a ldrb r2, [r5, r4]                         |         r2 = *((r5 + r4));
    0x0003707c str r4, [sp, 0x10]                        |         var_10h = r4;
    0x0003707e add r4, r5                                |         r4 += r5;
    0x00037080 cmp r2, 0x2f                              |         
                                                         |         if (r2 == 0x2f) {
    0x00037082 beq.w 0x3718e                             |             goto label_20;
                                                         |         }
                                                         |         if (r2 == 0) {
    0x00037086 cbz r2, 0x370d2                           |             goto label_3;
                                                         |         }
    0x00037088 cmp r2, 0x3b                              |         
    0x0003708a beq 0x37052                               |         
                                                         |     } while (r2 == 0x3b);
                                                         | label_2:
    0x0003708c movs r2, 0                                |     r2 = 0;
    0x0003708e movs r3, 0x1c                             |     r3 = 0x1c;
    0x00037090 movw r1, 0x817                            |     r1 = (r1 & 0xFFFF0000) | (case.0x3207a.11 & 0xFFFF);
    0x00037094 mov r0, sb                                |     r0 = sb;
    0x00037096 bl 0x35c28                                |     zbx_malloc2 ();
    0x0003709a movs r3, 0                                |     r3 = 0;
    0x0003709c mov r6, r0                                |     r6 = r0;
    0x0003709e movs r1, 0x3b                             |     r1 = 0x3b;
    0x000370a0 mov r0, r5                                |     r0 = r5;
    0x000370a2 str r3, [r6]                              |     *(r6) = r3;
    0x000370a4 str r3, [r6, 4]                           |     *((r6 + 4)) = r3;
    0x000370a6 str r3, [r6, 8]                           |     *((r6 + 8)) = r3;
    0x000370a8 str r3, [r6, 0xc]                         |     *((r6 + 0xc)) = r3;
    0x000370aa str r3, [r6, 0x10]                        |     *((r6 + 0x10)) = r3;
    0x000370ac str r3, [r6, 0x14]                        |     *((r6 + 0x14)) = r3;
    0x000370ae str r3, [r6, 0x18]                        |     *((r6 + 0x18)) = r3;
    0x000370b0 blx 0xc138                                |     r0 = fcn_0000c138 ();
    0x000370b4 mov r4, r0                                |     r4 = r0;
    0x000370b6 subs r2, r0, r5                           |     r2 = r0 - r5;
    0x000370b8 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x000370ba beq 0x3719c                               |         goto label_21;
                                                         |     }
                                                         | label_8:
    0x000370bc mov r1, r5                                |     r1 = r5;
    0x000370be mov r0, r6                                |     r0 = r6;
    0x000370c0 bl 0x36e20                                |     r0 = fcn_00036e20 (r0, r1, r2);
    0x000370c4 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x000370c6 bne 0x371b6                               |         goto label_22;
                                                         |     }
    0x000370c8 mov r0, r6                                |     r0 = r6;
    0x000370ca bl 0x34dc4                                |     fcn_00034dc4 (r0);
                                                         | label_4:
    0x000370ce cmp r4, 0                                 |     
                                                         |     if (r4 != 0) {
    0x000370d0 bne 0x37052                               |         goto label_0;
                                                         |     }
                                                         | label_3:
    0x000370d2 ldr r2, [sp, 8]                           |     r2 = var_8h;
                                                         | label_6:
    0x000370d4 mov.w r3, 0x5180                          |     
    0x000370d8 movt r3, 1                                |     r3 = 0xNaN;
    0x000370dc cmp r2, r3                                |     
    0x000370de it le                                     |     
                                                         |     if (r2 <= r3) {
    0x000370e0 movle r0, 0                               |         r0 = 0;
                                                         |         goto label_23;
                                                         |     }
                                                         |     if (r2 <= r3) {
                                                         | label_23:
    0x000370e2 ble 0x3700a                               |         goto label_1;
                                                         |     }
                                                         | label_7:
    0x000370e4 ldr r1, [pc, 0x150]                       |     
    0x000370e6 ldr.w r0, [r8]                            |     r0 = *(r8);
    0x000370ea add r1, pc                                |     r1 = 0x6e326;
    0x000370ec bl 0x396b0                                |     r0 = zbx_dsprintf ()
    0x000370f0 mov r3, r0                                |     r3 = r0;
    0x000370f2 mov.w r0, -1                              |     r0 = -1;
    0x000370f6 str.w r3, [r8]                            |     __asm ("str.w r3, [r8]");
    0x000370fa b 0x3700a                                 |     goto label_1;
                                                         | label_19:
    0x000370fc add r3, sp, 0xc                           |     r3 += var_ch;
    0x000370fe movs r2, 0x2f                             |     r2 = 0x2f;
    0x00037100 add r1, sp, 0x10                          |     r1 += var_10h;
    0x00037102 mov r0, r5                                |     r0 = r5;
    0x00037104 bl 0x36784                                |     r0 = fcn_00036784 (r0, r1, r2, r3);
    0x00037108 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0003710a bne 0x3708c                               |         goto label_2;
                                                         |     }
    0x0003710c ldr r2, [sp, 0x10]                        |     r2 = var_10h;
    0x0003710e ldrb r3, [r5, r2]                         |     r3 = *((r5 + r2));
    0x00037110 adds r4, r5, r2                           |     r4 = r5 + r2;
    0x00037112 cmp r3, 0x2f                              |     
                                                         |     if (r3 != 0x2f) {
    0x00037114 bne 0x3708c                               |         goto label_2;
                                                         |     }
    0x00037116 ldrd r1, r3, [sp, 8]                      |     __asm ("ldrd r1, r3, [var_8h]");
    0x0003711a orrs r3, r1                               |     r3 |= r1;
                                                         |     if (r3 == r1) {
    0x0003711c beq 0x371ca                               |         goto label_24;
                                                         |     }
    0x0003711e add r6, sp, 0x1c                          |     r6 += var_1ch;
                                                         | label_5:
    0x00037120 ldrb r3, [r4, 1]                          |     r3 = *((r4 + 1));
    0x00037122 adds r5, r4, 1                            |     r5 = r4 + 1;
    0x00037124 cmp r3, 0x7b                              |     
                                                         |     if (r3 != 0x7b) {
    0x00037126 bne 0x37152                               |         goto label_25;
                                                         |     }
    0x00037128 ldrb r3, [r4, 2]                          |     r3 = *((r4 + 2));
    0x0003712a cmp r3, 0x24                              |     
                                                         |     if (r3 != 0x24) {
    0x0003712c bne 0x37152                               |         goto label_25;
                                                         |     }
    0x0003712e movs r3, 0                                |     r3 = 0;
    0x00037130 mov r2, r7                                |     r2 = r7;
    0x00037132 str r3, [sp]                              |     *(sp) = r3;
    0x00037134 add r1, sp, 0x14                          |     r1 += var_14h;
    0x00037136 mov r3, r6                                |     r3 = r6;
    0x00037138 mov r0, r5                                |     r0 = r5;
    0x0003713a bl 0x3b0cc                                |     r0 = zbx_user_macro_parse ();
                                                         |     if (r0 != 0) {
    0x0003713e cbnz r0, 0x37152                          |         goto label_25;
                                                         |     }
    0x00037140 ldr r4, [sp, 0x14]                        |     r4 = var_14h;
    0x00037142 adds r4, 1                                |     r4++;
    0x00037144 ldrb r3, [r5, r4]                         |     r3 = *((r5 + r4));
    0x00037146 str r4, [sp, 0x10]                        |     var_10h = r4;
    0x00037148 add r4, r5                                |     r4 += r5;
    0x0003714a cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x0003714c beq 0x370d2                               |         goto label_3;
                                                         |     }
    0x0003714e cmp r3, 0x3b                              |     
                                                         |     if (r3 == 0x3b) {
    0x00037150 beq 0x370ce                               |         goto label_4;
                                                         |     }
                                                         | label_25:
    0x00037152 movs r1, 0x3b                             |     r1 = 0x3b;
    0x00037154 mov r0, r5                                |     r0 = r5;
    0x00037156 blx 0xc138                                |     fcn_0000c138 ();
    0x00037158 vext.16 d20, d0, d4, 3                    |     __asm ("vext.16 d20, d0, d4, 3");
    0x0003715c subs r2, r0, r5                           |     r2 = r0 - r5;
                                                         |     if (r0 == 0) {
    0x0003715e cbz r0, 0x371a6                           |         goto label_26;
                                                         |     }
                                                         | label_9:
    0x00037160 mov r0, r6                                |     r0 = r6;
    0x00037162 mov r1, r5                                |     r1 = r5;
    0x00037164 bl 0x36a64                                |     r0 = fcn_00036a64 (r0, r1, r2);
    0x00037168 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0003716a beq 0x370ce                               |         goto label_4;
                                                         |     }
    0x0003716c ldr.w r6, [r8]                            |     r6 = *(r8);
    0x00037170 subs r2, r4, r5                           |     r2 = r4 - r5;
    0x00037172 cmp r4, 0                                 |     
                                                         |     if (r4 == 0) {
    0x00037174 beq 0x3720e                               |         goto label_27;
                                                         |     }
                                                         | label_13:
    0x00037176 ldr r1, [pc, 0xc4]                        |     
    0x00037178 add r1, pc                                |     r1 = 0x6e3ba;
                                                         | label_11:
    0x0003717a mov r3, r5                                |     r3 = r5;
    0x0003717c mov r0, r6                                |     r0 = r6;
    0x0003717e bl 0x396b0                                |     r0 = zbx_dsprintf ()
    0x00037182 mov r3, r0                                |     r3 = r0;
                                                         | label_12:
    0x00037184 mov.w r0, -1                              |     r0 = -1;
    0x00037188 str.w r3, [r8]                            |     __asm ("str.w r3, [r8]");
    0x0003718c b 0x3700a                                 |     goto label_1;
                                                         | label_20:
    0x0003718e movs r3, 1                                |     r3 = 1;
    0x00037190 str r3, [sp, 0xc]                         |     var_ch = r3;
    0x00037192 b 0x37120                                 |     goto label_5;
                                                         | label_18:
    0x00037194 ldr r2, [sp, 8]                           |     r2 = var_8h;
    0x00037196 cmp r2, 0                                 |     
                                                         |     if (r2 != 0) {
    0x00037198 bne 0x370d4                               |         goto label_6;
                                                         |     }
    0x0003719a b 0x370e4                                 |     goto label_7;
                                                         | label_21:
    0x0003719c mov r0, r5                                |     r0 = r5;
    0x0003719e blx 0xc114                                |     r0 = fcn_0000c114 ();
    0x000371a2 mov r2, r0                                |     r2 = r0;
    0x000371a4 b 0x370bc                                 |     goto label_8;
                                                         | label_26:
    0x000371a6 mov r0, r5                                |     r0 = r5;
    0x000371a8 blx 0xc114                                |     r0 = fcn_0000c114 ();
    0x000371ac mov r2, r0                                |     r2 = r0;
    0x000371ae b 0x37160                                 |     goto label_9;
                                                         | label_16:
    0x000371b0 movs r3, 1                                |     r3 = 1;
    0x000371b2 str r3, [sp, 8]                           |     var_8h = r3;
    0x000371b4 b 0x3704a                                 |     goto label_10;
                                                         | label_22:
    0x000371b6 mov r0, r6                                |     r0 = r6;
    0x000371b8 bl 0x34dc4                                |     fcn_00034dc4 (r0);
    0x000371bc ldr.w r6, [r8]                            |     r6 = *(r8);
    0x000371c0 subs r2, r4, r5                           |     r2 = r4 - r5;
    0x000371c2 cbz r4, 0x371dc                           |     
                                                         |     while (1) {
    0x000371c4 ldr r1, [pc, 0x78]                        |         
    0x000371c6 add r1, pc                                |         r1 = 0x6e40a;
    0x000371c8 b 0x3717a                                 |         goto label_11;
                                                         | label_24:
    0x000371ca ldr r1, [pc, 0x78]                        |         
    0x000371cc mov r3, r5                                |         r3 = r5;
    0x000371ce ldr.w r0, [r8]                            |         r0 = *(r8);
    0x000371d2 add r1, pc                                |         r1 = 0x6e41c;
    0x000371d4 bl 0x396b0                                |         r0 = zbx_dsprintf ()
    0x000371d8 mov r3, r0                                |         r3 = r0;
    0x000371da b 0x37184                                 |         goto label_12;
    0x000371dc mov r0, r5                                |         r0 = r5;
    0x000371de blx 0xc114                                |         r0 = fcn_0000c114 ();
    0x000371e2 mov r2, r0                                |         r2 = r0;
    0x000371e4 b 0x371c4                                 |         
                                                         |     }
                                                         | label_17:
    0x000371e6 movs r1, 0x3b                             |     r1 = 0x3b;
    0x000371e8 mov r0, r5                                |     r0 = r5;
    0x000371ea blx 0xc138                                |     fcn_0000c138 ();
    0x000371ee ldr.w r4, [r8]                            |     r4 = *(r8);
                                                         |     if (r0 == 0) {
    0x000371f2 cbz r0, 0x37218                           |         goto label_28;
                                                         |     }
    0x000371f4 subs r2, r0, r5                           |     r2 = r0 - r5;
                                                         |     do {
    0x000371f6 ldr r1, [pc, 0x50]                        |         
    0x000371f8 mov r3, r5                                |         r3 = r5;
    0x000371fa mov r0, r4                                |         r0 = r4;
    0x000371fc add r1, pc                                |         r1 = 0x6e44a;
    0x000371fe bl 0x396b0                                |         r0 = zbx_dsprintf ()
    0x00037202 mov r3, r0                                |         r3 = r0;
    0x00037204 mov.w r0, -1                              |         r0 = -1;
    0x00037208 str.w r3, [r8]                            |         __asm ("str.w r3, [r8]");
    0x0003720c b 0x3700a                                 |         goto label_1;
                                                         | label_27:
    0x0003720e mov r0, r5                                |         r0 = r5;
    0x00037210 blx 0xc114                                |         r0 = fcn_0000c114 ();
    0x00037214 mov r2, r0                                |         r2 = r0;
    0x00037216 b 0x37176                                 |         goto label_13;
                                                         | label_28:
    0x00037218 mov r0, r5                                |         r0 = r5;
    0x0003721a blx 0xc114                                |         r0 = fcn_0000c114 ();
    0x0003721e mov r2, r0                                |         r2 = r0;
    0x00037220 b 0x371f6                                 |         
                                                         |     } while (1);
                                                         | label_15:
    0x00037222 blx 0xbe48                                |     fcn_0000be48 ();
    0x00037226 nop                                       |     
    0x00037228 ldrb r2, [r3, r0]                         |     r2 = *((r3 + r0));
    0x0003722a movs r2, r0                               |     r2 = r0;
    0x0003722c lsls r4, r2, 0xc                          |     r4 = r2 << 0xc;
    0x0003722e movs r0, r0                               |     
    0x00037230 ldrh r6, [r3, r7]                         |     r6 = *((r3 + r7));
    0x00037232 movs r2, r0                               |     r2 = r0;
    0x00037234 subs r2, 0x74                             |     r2 -= 0x74;
    0x00037236 movs r1, r0                               |     r1 = r0;
    0x00037238 subs r4, 0xbe                             |     r4 -= 0xbe;
    0x0003723a movs r1, r0                               |     r1 = r0;
    0x0003723c subs r3, 0xf0                             |     r3 -= 0xf0;
    0x0003723e movs r1, r0                               |     r1 = r0;
    0x00037240 subs r3, 0xc2                             |     r3 -= 0xc2;
    0x00037242 movs r1, r0                               |     r1 = r0;
    0x00037244 subs r3, 0x72                             |     r3 -= 0x72;
    0x00037246 movs r1, r0                               |     r1 = r0;
    0x00037248 subs r3, 0x28                             |     r3 -= 0x28;
    0x0003724a movs r1, r0                               |     r1 = r0;
                                                         | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x2da60 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.zbx_validate_peer_list ()                | void zbx_validate_peer_list (int16_t arg_804h, int16_t arg1, int16_t arg2) {
                                                         |     int32_t var_804h;
                                                         |     int16_t var_80ch;
                                                         |     int16_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x0002da60 mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, case.0x3207a.11");
    0x0002da64 subw sp, sp, 0x80c                        |     __asm ("subw sp, sp, case.0x3207a.11");
    0x0002da68 ldr r4, [pc, 0xc8]                        |     
    0x0002da6a add.w sb, sp, 4                           |     sb += var_4h;
    0x0002da6e mov r8, r1                                |     r8 = r1;
    0x0002da70 mov.w r2, 0x800                           |     r2 = case.0x3207a.11;
    0x0002da74 ldr r3, [pc, 0xc0]                        |     r3 = *(0x2db38);
    0x0002da76 mov r1, r0                                |     r1 = r0;
    0x0002da78 add r4, pc                                |     r4 = 0x5b5b0;
    0x0002da7a mov r0, sb                                |     r0 = sb;
    0x0002da7c ldr r3, [r4, r3]                          |     
    0x0002da7e ldr r3, [r3]                              |     r3 = *(0x5b5b0);
    0x0002da80 str.w r3, [sp, 0x804]                     |     __asm ("str.w r3, [arg_804h]");
    0x0002da84 mov.w r3, 0                               |     r3 = 0;
    0x0002da88 bl 0x394f0                                |     zbx_strlcpy ();
    0x0002da8c ldrb.w r3, [sb]                           |     r3 = *(sb);
                                                         |     if (r3 == 0) {
    0x0002da90 cbz r3, 0x2dace                           |         goto label_2;
                                                         |     }
    0x0002da92 movs r7, 0                                |     r7 = 0;
                                                         |     do {
    0x0002da94 movs r1, 0x2c                             |         r1 = 0x2c;
    0x0002da96 mov r0, sb                                |         r0 = sb;
    0x0002da98 blx 0xc138                                |         r0 = fcn_0000c138 ();
    0x0002da9c mov r4, r0                                |         r4 = r0;
                                                         |         if (r0 != 0) {
    0x0002da9e cbz r0, 0x2daa2                           |             
    0x0002daa0 strb r7, [r0]                             |             *(r0) = r7;
                                                         |         }
    0x0002daa2 movs r1, 0x2f                             |         r1 = 0x2f;
    0x0002daa4 mov r0, sb                                |         r0 = sb;
    0x0002daa6 blx 0xc138                                |         r0 = fcn_0000c138 ();
    0x0002daaa mov r5, r0                                |         r5 = r0;
                                                         |         if (r0 == 0) {
    0x0002daac cbz r0, 0x2daf0                           |             goto label_3;
                                                         |         }
    0x0002daae mov r1, r0                                |         r1 = r0;
    0x0002dab0 movs r2, 0                                |         r2 = 0;
    0x0002dab2 mov r0, sb                                |         r0 = sb;
    0x0002dab4 strb r7, [r1], 1                          |         *(r1) = r7;
                                                         |         r1++;
    0x0002dab8 bl 0x2c404                                |         r0 = fcn_0002c404 (r0, r1, r2);
    0x0002dabc adds r2, r0, 1                            |         r2 = r0 + 1;
    0x0002dabe mov r6, r0                                |         r6 = r0;
                                                         |         if (r2 == r0) {
    0x0002dac0 beq 0x2db18                               |             goto label_4;
                                                         |         }
                                                         |         if (r4 == 0) {
                                                         | label_0:
    0x0002dac2 cbz r4, 0x2dace                           |             goto label_2;
                                                         |         }
    0x0002dac4 ldrb r3, [r4, 1]                          |         r3 = *((r4 + 1));
    0x0002dac6 add.w sb, r4, 1                           |         sb = r4 + 1;
    0x0002daca cmp r3, 0                                 |         
    0x0002dacc bne 0x2da94                               |         
                                                         |     } while (r3 != 0);
                                                         | label_2:
    0x0002dace movs r6, 0                                |     r6 = 0;
                                                         | label_1:
    0x0002dad0 ldr r2, [pc, 0x68]                        |     
    0x0002dad2 ldr r3, [pc, 0x64]                        |     r3 = *(0x2db3a);
    0x0002dad4 add r2, pc                                |     r2 = 0x5b614;
    0x0002dad6 ldr r3, [r2, r3]                          |     r3 = *(0x5b614);
    0x0002dad8 ldr r2, [r3]                              |     r2 = *(0x5b614);
    0x0002dada ldr.w r3, [sp, 0x804]                     |     r3 = *(arg_804h);
    0x0002dade eors r2, r3                               |     r2 ^= r3;
    0x0002dae0 mov.w r3, 0                               |     r3 = 0;
                                                         |     if (r2 != r3) {
    0x0002dae4 bne 0x2db2e                               |         goto label_5;
                                                         |     }
    0x0002dae6 mov r0, r6                                |     r0 = r6;
    0x0002dae8 addw sp, sp, 0x80c                        |     __asm ("addw sp, var_80ch");
    0x0002daec pop.w {r4, r5, r6, r7, r8, sb, pc}        |     
                                                         | label_3:
    0x0002daf0 mov r0, sb                                |     r0 = sb;
    0x0002daf2 bl 0x36208                                |     is_supported_ip ();
    0x0002daf6 adds r0, 1                                |     r0++;
                                                         |     if (r0 != 1) {
    0x0002daf8 bne 0x2dac2                               |         goto label_0;
                                                         |     }
    0x0002dafa mov r0, sb                                |     r0 = sb;
    0x0002dafc bl 0x3623c                                |     r0 = zbx_validate_hostname ();
    0x0002db00 adds r3, r0, 1                            |     r3 = r0 + 1;
    0x0002db02 mov r6, r0                                |     r6 = r0;
                                                         |     if (r3 != r0) {
    0x0002db04 bne 0x2dac2                               |         goto label_0;
                                                         |     }
    0x0002db06 ldr r1, [pc, 0x38]                        |     
    0x0002db08 mov r2, sb                                |     r2 = sb;
    0x0002db0a mov r0, r5                                |     r0 = r5;
    0x0002db0c add r1, pc                                |     r1 = 0x5b652;
    0x0002db0e bl 0x396b0                                |     zbx_dsprintf ()
    0x0002db12 str.w r0, [r8]                            |     __asm ("str.w r0, [r8]");
    0x0002db14 movs r0, r0                               |     
    0x0002db16 b 0x2dad0                                 |     goto label_1;
                                                         | label_4:
    0x0002db18 ldr r1, [pc, 0x28]                        |     
    0x0002db1a movs r3, 0x2f                             |     r3 = 0x2f;
    0x0002db1c mov r2, sb                                |     r2 = sb;
    0x0002db1e movs r0, 0                                |     r0 = 0;
    0x0002db20 strb r3, [r5]                             |     *(r5) = r3;
    0x0002db22 add r1, pc                                |     r1 = 0x5b66a;
    0x0002db24 bl 0x396b0                                |     zbx_dsprintf ()
    0x0002db28 str.w r0, [r8]                            |     __asm ("str.w r0, [r8]");
    0x0002db2c b 0x2dad0                                 |     goto label_1;
                                                         | label_5:
    0x0002db2e blx 0xbe48                                |     fcn_0000be48 ();
    0x0002db32 nop                                       |     
    0x0002db34 sbcs r0, r4, 2                            |     __asm ("sbcs r0, r4, 2");
    0x0002db38 lsls r4, r2, 0xc                          |     r4 = r2 << 0xc;
    0x0002db3a movs r0, r0                               |     
    0x0002db3c adds.w r0, r8, 2                          |     r0 = r8 + 2;
    0x0002db40 stm r4!, {r3, r4}                         |     *(r4!) = r3;
                                                         |     *((r4! + 4)) = r4;
    0x0002db42 movs r1, r0                               |     r1 = r0;
    0x0002db44 stm r4!, {r1}                             |     *(r4!) = r1;
    0x0002db46 movs r1, r0                               |     r1 = r0;
                                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/zabbix_agentd @ 0x3d288 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.zbx_variant_convert ()           | void zbx_variant_convert (int16_t arg1, uint32_t arg2) {
                                                 |     int16_t var_81ch;
                                                 |     int16_t var_ch;
                                                 |     int16_t var_80ch;
                                                 |     int16_t var_0h;
                                                 |     int16_t var_1ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
                                                 | label_3:
    0x0003d040 blmi 0xacf8ec                     |     __asm ("blmi 0xacf8ec");
    0x0003d044 push {r4, r5, r6, lr}             |     
    0x0003d046 sub.w sp, sp, 0x810               |     
    0x0003d04a add r2, pc                        |     r2 += pc;
    0x0003d04c ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x0003d04e ldr r3, [r3]                      |     r3 = *(r3);
    0x0003d050 str.w r3, [sp, 0x80c]             |     __asm ("str.w r3, [var_80ch]");
    0x0003d054 mov.w r3, 0                       |     r3 = 0;
    0x0003d058 ldrb r3, [r0]                     |     r3 = *(r0);
    0x0003d05a cmp r3, 2                         |     
    0x0003d05c it eq                             |     
                                                 |     if (r3 != 2) {
    0x0003d05e moveq r5, 0                       |         r5 = 0;
                                                 |     }
                                                 |     if (r3 == 2) {
    0x0003d060 beq 0x3d070                       |         goto label_1;
                                                 |     }
    0x0003d062 cmp r3, 3                         |     
    0x0003d064 mov r4, r0                        |     r4 = r0;
                                                 |     if (r3 == 3) {
    0x0003d066 beq 0x3d08e                       |         goto label_6;
                                                 |     }
    0x0003d068 cmp r3, 1                         |     
                                                 |     if (r3 == 1) {
    0x0003d06a beq 0x3d0a2                       |         goto label_7;
                                                 |     }
                                                 | label_0:
    0x0003d06c mov.w r5, -1                      |     r5 = -1;
                                                 |     do {
                                                 | label_1:
    0x0003d070 ldr r2, [pc, 0x7c]                |         
    0x0003d072 ldr r3, [pc, 0x78]                |         r3 = *(0x3d0ee);
    0x0003d074 add r2, pc                        |         r2 = 0x7a168;
    0x0003d076 ldr r3, [r2, r3]                  |         r3 = *(0x7a168);
    0x0003d078 ldr r2, [r3]                      |         r2 = *(0x7a168);
    0x0003d07a ldr.w r3, [sp, 0x80c]             |         r3 = var_80ch;
    0x0003d07e eors r2, r3                       |         r2 ^= r3;
    0x0003d080 mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0003d084 bne 0x3d0e4                       |             goto label_8;
                                                 |         }
    0x0003d086 mov r0, r5                        |         r0 = r5;
    0x0003d088 add.w sp, sp, 0x810               |         
    0x0003d08c pop {r4, r5, r6, pc}              |         
                                                 | label_6:
    0x0003d08e ldrd r0, r1, [r0, 8]              |         __asm ("ldrd r0, r1, [r0, 8]");
    0x0003d092 movs r5, 0                        |         r5 = 0;
    0x0003d094 bl 0x4152c                        |         fcn_0004152c (r0, r1, r2);
    0x0003d098 movs r3, 2                        |         r3 = 2;
    0x0003d09a strd r0, r1, [r4, 8]              |         __asm ("strd r0, r1, [r4, 8]");
    0x0003d09e strb r3, [r4]                     |         *(r4) = r3;
    0x0003d0a0 b 0x3d070                         |         
                                                 |     } while (1);
                                                 | label_7:
    0x0003d0a2 add r5, sp, 0xc                   |     r5 += var_ch;
    0x0003d0a4 mov.w r2, 0x800                   |     r2 = case.0x3207a.11;
    0x0003d0a8 ldr r1, [r0, 8]                   |     r1 = *((r0 + 8));
    0x0003d0aa mov r0, r5                        |     r0 = r5;
    0x0003d0ac bl 0x394f0                        |     zbx_strlcpy ();
    0x0003d0b0 ldr r1, [pc, 0x40]                |     
    0x0003d0b2 mov r0, r5                        |     r0 = r5;
    0x0003d0b4 mov r6, sp                        |     r6 = sp;
    0x0003d0b6 add r1, pc                        |     r1 = 0x7a1ae;
    0x0003d0b8 bl 0x3936c                        |     zbx_rtrim ();
    0x0003d0bc mov r0, r5                        |     r0 = r5;
    0x0003d0be bl 0x3cc9c                        |     zbx_trim_float ();
    0x0003d0c2 mov r0, r5                        |     r0 = r5;
    0x0003d0c4 mov r1, r6                        |     r1 = r6;
    0x0003d0c6 bl 0x365b0                        |     r0 = is_double ();
    0x0003d0ca mov r5, r0                        |     r5 = r0;
    0x0003d0cc cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0003d0ce bne 0x3d06c                       |         goto label_0;
                                                 |     }
    0x0003d0d0 mov r0, r4                        |     r0 = r4;
    0x0003d0d2 bl 0x3d020                        |     zbx_variant_clear ();
    0x0003d0d6 ldrd r2, r3, [r6]                 |     __asm ("ldrd r2, r3, [r6]");
    0x0003d0da movs r1, 2                        |     r1 = 2;
    0x0003d0dc strb r1, [r4]                     |     *(r4) = r1;
    0x0003d0de strd r2, r3, [r4, 8]              |     __asm ("strd r2, r3, [r4, 8]");
    0x0003d0e2 b 0x3d070                         |     goto label_1;
                                                 | label_8:
    0x0003d0e4 blx 0xbe48                        |     r0 = fcn_0000be48 ();
    0x0003d0e8 umull r0, r0, r2, r1              |     r0:r0 = r2 * r1;
    0x0003d0ec lsls r4, r2, 0xc                  |     r4 = r2 << 0xc;
    0x0003d0ee movs r0, r0                       |     
    0x0003d0f0 usada8 r0, r8, r1, r0             |     __asm ("usada8 r0, r8, r1, r0");
    0x0003d0f4 strd r0, r0, [r6, -0x0]!          |     __asm ("strd r0, r0, [r6, -0x0]!");
                                                 | label_2:
    0x0003d0f8 ldr r2, [pc, 0xd0]                |     
    0x0003d0fa ldr r3, [pc, 0xd4]                |     r3 = *(0x3d1d2);
    0x0003d0fc push {r4, r5, r6, lr}             |     
    0x0003d0fe sub.w sp, sp, 0x820               |     
    0x0003d102 add r2, pc                        |     r2 = 0x7a2d2;
    0x0003d104 mov r4, r0                        |     r4 = r0;
    0x0003d106 ldr r3, [r2, r3]                  |     
    0x0003d108 ldr r3, [r3]                      |     r3 = *(0x7a2d2);
    0x0003d10a str.w r3, [sp, 0x81c]             |     __asm ("str.w r3, [var_81ch]");
    0x0003d10e mov.w r3, 0                       |     r3 = 0;
    0x0003d112 ldrb r3, [r0]                     |     r3 = *(r0);
    0x0003d114 cmp r3, 2                         |     
                                                 |     if (r3 == 2) {
    0x0003d116 beq 0x3d146                       |         goto label_9;
                                                 |     }
    0x0003d118 cmp r3, 3                         |     
    0x0003d11a it eq                             |     
                                                 |     if (r3 == 3) {
    0x0003d11c moveq r5, 0                       |         r5 = 0;
                                                 |         goto label_10;
                                                 |     }
                                                 |     if (r3 == 3) {
                                                 | label_10:
    0x0003d11e beq 0x3d128                       |         void (*0x3d128)() ();
                                                 |     }
                                                 | label_9:
    0x0003d146 vldr d16, [r0, 8]                 |     __asm ("vldr d16, [r0, 8]");
    0x0003d14a vcmpe.f64 d16, 0                  |     __asm ("vcmpe.f64 d16, 0");
    0x0003d14e vmrs apsr_nzcv, fpscr             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                 |     if (r3 < 3) {
    0x0003d152 bmi 0x3d124                       |         void (*0x3d124)() ();
                                                 |     }
    0x0003d154 vmov r0, r1, d16                  |     __asm ("vmov r0, r1, d16");
    0x0003d158 movs r5, 0                        |     r5 = 0;
    0x0003d15a bl 0x415d8                        |     fcn_000415d8 (r0, r1);
    0x0003d15e movs r3, 3                        |     r3 = 3;
    0x0003d160 strd r0, r1, [r4, 8]              |     __asm ("strd r0, r1, [r4, 8]");
    0x0003d164 strb r3, [r4]                     |     *(r4) = r3;
    0x0003d166 b 0x3d128                         |     void (*0x3d128)() ();
    0x0003d288 ldr r2, [pc, 0xd8]                |     
    0x0003d28a ldr r3, [pc, 0xdc]                |     r3 = *(0x3d36a);
    0x0003d28c push {r4, r5, lr}                 |     
    0x0003d28e sub sp, 0x24                      |     
    0x0003d290 add r2, pc                        |     r2 = 0x7a5f8;
    0x0003d292 mov r5, r0                        |     r5 = r0;
    0x0003d294 ldr r3, [r2, r3]                  |     
    0x0003d296 ldr r3, [r3]                      |     r3 = *(0x7a5f8);
    0x0003d298 str r3, [sp, 0x1c]                |     var_1ch = r3;
    0x0003d29a mov.w r3, 0                       |     r3 = 0;
    0x0003d29e cmp r1, 3                         |     
                                                 |     if (r1 > 3) {
    0x0003d2a0 bhi 0x3d35c                       |         goto label_11;
                                                 |     }
                                                 |     /* switch table (4 cases) at 0x3d2a6 */
    0x0003d2a2 tbb [pc, r1]                      |     __asm ("tbb case.0x3207a.11");
    0x0003d2aa ldr r2, [pc, 0xc0]                |     
    0x0003d2ac ldr r3, [pc, 0xb8]                |     r3 = *(0x3d368);
    0x0003d2ae add r2, pc                        |     r2 = 0x7a620;
    0x0003d2b0 ldr r3, [r2, r3]                  |     r3 = *(0x7a620);
    0x0003d2b2 ldr r2, [r3]                      |     r2 = *(0x7a620);
    0x0003d2b4 ldr r3, [sp, 0x1c]                |     r3 = var_1ch;
    0x0003d2b6 eors r2, r3                       |     r2 ^= r3;
    0x0003d2b8 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r2 != r3) {
    0x0003d2bc bne 0x3d358                       |         goto label_12;
                                                 |     }
    0x0003d2be add sp, 0x24                      |     
    0x0003d2c0 pop.w {r4, r5, lr}                |     
    0x0003d2c4 b 0x3d0f8                         |     goto label_2;
    0x0003d2c6 ldr r2, [pc, 0xa8]                |     
    0x0003d2c8 ldr r3, [pc, 0x9c]                |     r3 = *(0x3d368);
    0x0003d2ca add r2, pc                        |     r2 = 0x7a640;
    0x0003d2cc ldr r3, [r2, r3]                  |     r3 = *(0x7a640);
    0x0003d2ce ldr r2, [r3]                      |     r2 = *(0x7a640);
    0x0003d2d0 ldr r3, [sp, 0x1c]                |     r3 = var_1ch;
    0x0003d2d2 eors r2, r3                       |     r2 ^= r3;
    0x0003d2d4 mov.w r3, 0                       |     r3 = 0;
                                                 |     if (r2 != r3) {
    0x0003d2d8 bne 0x3d358                       |         goto label_12;
                                                 |     }
    0x0003d2da add sp, 0x24                      |     
    0x0003d2dc pop.w {r4, r5, lr}                |     
    0x0003d2e0 b 0x3d040                         |     goto label_3;
    0x0003d2e2 ldrb r4, [r0]                     |     r4 = *(r0);
    0x0003d2e4 cmp r4, 2                         |     
                                                 |     if (r4 == 2) {
    0x0003d2e6 beq 0x3d336                       |         goto label_13;
                                                 |     }
    0x0003d2e8 cmp r4, 3                         |     
                                                 |     if (r4 == 3) {
    0x0003d2ea beq 0x3d316                       |         goto label_14;
                                                 |     }
    0x0003d2ec subs r0, r4, 1                    |     r0 = r4 - 1;
    0x0003d2ee it ne                             |     
                                                 |     if (r0 == r4) {
    0x0003d2f0 movne r0, -1                      |         r0 = -1;
                                                 |     }
    0x0003d2f4 b 0x3d2fe                         |     goto label_5;
    0x0003d2f6 mov r4, r1                        |     r4 = r1;
    0x0003d2f8 bl 0x3d020                        |     zbx_variant_clear ();
    0x0003d2fc mov r0, r4                        |     r0 = r4;
                                                 |     do {
                                                 | label_5:
    0x0003d2fe ldr r2, [pc, 0x74]                |         
    0x0003d300 ldr r3, [pc, 0x64]                |         r3 = *(0x3d368);
    0x0003d302 add r2, pc                        |         r2 = 0x7a67c;
    0x0003d304 ldr r3, [r2, r3]                  |         r3 = *(0x7a67c);
    0x0003d306 ldr r2, [r3]                      |         r2 = *(0x7a67c);
    0x0003d308 ldr r3, [sp, 0x1c]                |         r3 = var_1ch;
    0x0003d30a eors r2, r3                       |         r2 ^= r3;
    0x0003d30c mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x0003d310 bne 0x3d358                       |             goto label_12;
                                                 |         }
    0x0003d312 add sp, 0x24                      |         
    0x0003d314 pop {r4, r5, pc}                  |         
                                                 | label_14:
    0x0003d316 ldr r1, [pc, 0x60]                |         
    0x0003d318 ldrd r2, r3, [r0, 8]              |         __asm ("ldrd r2, r3, [r0, 8]");
    0x0003d31c movs r0, 0                        |         r0 = 0;
    0x0003d31e add r1, pc                        |         r1 = 0x7a69c;
    0x0003d320 bl 0x396b0                        |         r0 = zbx_dsprintf ()
    0x0003d324 mov r4, r0                        |         r4 = r0;
                                                 | label_4:
    0x0003d326 mov r0, r5                        |         r0 = r5;
    0x0003d328 bl 0x3d020                        |         zbx_variant_clear ();
    0x0003d32c movs r3, 1                        |         r3 = 1;
    0x0003d32e movs r0, 0                        |         r0 = 0;
    0x0003d330 str r4, [r5, 8]                   |         *((r5 + 8)) = r4;
    0x0003d332 strb r3, [r5]                     |         *(r5) = r3;
    0x0003d334 b 0x3d2fe                         |         
                                                 |     } while (1);
                                                 | label_13:
    0x0003d336 vldr d0, [r0, 8]                  |     __asm ("vldr d0, [r0, 8]");
    0x0003d33a movs r1, 0x19                     |     r1 = 0x19;
    0x0003d33c mov r0, sp                        |     r0 = sp;
    0x0003d33e bl 0x3cf64                        |     r0 = zbx_print_double ();
    0x0003d342 mov r3, r0                        |     r3 = r0;
    0x0003d344 ldr r0, [pc, 0x34]                |     
    0x0003d346 movs r2, 0                        |     r2 = 0;
    0x0003d348 movs r1, 0xde                     |     r1 = 0xde;
    0x0003d34a add r0, pc                        |     r0 = 0x7a6ca;
    0x0003d34c bl 0x35d28                        |     r0 = zbx_strdup2 ();
    0x0003d350 mov r4, r0                        |     r4 = r0;
    0x0003d352 bl 0x39304                        |     del_zeros ();
    0x0003d356 b 0x3d326                         |     goto label_4;
                                                 | label_12:
    0x0003d358 blx 0xbe48                        |     fcn_0000be48 ();
                                                 | label_11:
    0x0003d35c mov.w r0, -1                      |     r0 = -1;
    0x0003d360 b 0x3d2fe                         |     goto label_5;
                                                 | }

[*] Function sprintf used 155 times zabbix_agentd